diff --git a/README.md b/README.md index b83e4b6d..9a98cc83 100644 --- a/README.md +++ b/README.md @@ -49,8 +49,6 @@ $ npm run ganache-cli # Run contracts test suite $ npm run test -# If fails to bind due to mismatch versions run directly: -$ NODE_ENV=test truffle test ./test/propstoken-0-rewards.test.js --network test $ NODE_ENV=test truffle test ./test/propstoken-1-main.test.js --network test ``` @@ -101,29 +99,6 @@ Compile and deploy the new logic contract using ```bash zos push``` $ node scripts/upgrade/0_upgrade_via_multisig.js {test/rinkeby/mainnet} {multisig-address-contract-owner} ``` Once enough multisig participants accept the upgrade the contract will be upgraded. - -### Rewards Contract Setup - -Located under [scripts/setup](scripts/setup) directory. -Should be run from the controller or if controller is a multisig wallet as one of the participants in the multisig wallet. - -## setValidators -Only after each validator has set themselves up using updateEntity method of the contract manually or by using [props-ethsync:setup-validator](https://github.com/propsproject/props-ethsync#validator-setup) -```bash -# Setting the active validators for next day using a multisig wallet (use multisig-wallet-address = none if the account running is the controller) -$ node scripts/setup/0_set_validators.js {test/rinkeby/mainnet} {multisig-wallet-address} {validator1},{validator2},{validator3} {contract-address} -``` -Once enough multisig participants accept the transactions the contract will be updated with new set of validators (per contract logic). - -## setApplications -Only after each application has set themselves up using updateEntity method of the contract manually or by using [props-ethsync:setup-application](https://github.com/propsproject/props-ethsync/blob/master/lib/services/application_setup.ts) -```bash -# Setting the active applications for next day using a multisig wallet (use multisig-wallet-address = none if the account running is the controller) -$ node scripts/setup/1_set_applications.js {test/rinkeby/mainnet} {multisig-wallet-address} {application1},{application2},{application3} {contract-address} -``` -Once enough multisig participants accept the transactions the contract will be updated with new set of applications (per contract logic). - - ### Adjusting Gas Price and Gas Limits Located as gasPrice and gasLimit function in [scripts-utils/utils.js](scripts-utils/utils.js) @@ -132,3 +107,24 @@ Located as gasPrice and gasLimit function in [scripts-utils/utils.js](scripts-ut [solidity]: https://solidity.readthedocs.io/en/develop/ [truffle]: http://truffleframework.com/ + +## History +### March 2019 +Deployment and distribtion of token with ERC865 support for relays + +https://medium.com/@ZeppelinOrg/208e3b20d985 +### July 2019 +Upgrade of props token contract for supporting Props protocol and minting reward props to participating apps and validators. +- Selected validators transact daily and agree upon daily app rewards to be minted based upon app’s user activity. +- Apps can register themsleves with a rewards address +- Controller can whitelist new apps +- Parameters that control the rewards rate, and other settings controlled by Controller +- Participating validators: Coinbase, Peerstream and YouNow + +https://blog.openzeppelin.com/props-rewards-engine-contracts-audit/ +### March 2021 +Upgrade of props token contract to support the upgraded Props Protocol. +- Removed methods related to old protocol (storage remains) +- Added minter roles for the Protocol’s L2 > L1 bridge +- Added permit +- Added reclaimTokens for tokens accidently transferred to contract diff --git a/build/contracts/ECDSA.json b/build/contracts/ECDSA.json index 18c0aecf..a1254c64 100644 --- a/build/contracts/ECDSA.json +++ b/build/contracts/ECDSA.json @@ -1,8 +1,9 @@ { "contractName": "ECDSA", "abi": [], - "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582053b419f5a72ca0819a9d5b4fed40f5e2f5dacd11a44323b29b017ccf41e0edad0029", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582053b419f5a72ca0819a9d5b4fed40f5e2f5dacd11a44323b29b017ccf41e0edad0029", + "metadata": "{\"compiler\":{\"version\":\"0.4.25+commit.59dbf8f1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{},\"title\":\"Elliptic curve signature operations\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-eth/contracts/cryptography/ECDSA.sol\":\"ECDSA\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-eth/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0x223f5e7e2fe8d7082e3c49a2b930096369c2beb960d751c80e1495556952420a\",\"urls\":[\"bzzr://8a9559aaad12d8dddc40e7bb3db79dc533b239ad77c55f96a56bea9f28baa987\"]}},\"version\":1}", + "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820ac49f58b48f0ca4948a1b9c767c98c7a1a5d2a36e826ed80ba9a30f8148e3ed80029", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820ac49f58b48f0ca4948a1b9c767c98c7a1a5d2a36e826ed80ba9a30f8148e3ed80029", "sourceMap": "301:1678:6:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", "deployedSourceMap": "301:1678:6:-;;;;;;;;", "source": "pragma solidity ^0.4.24;\n\n\n/**\n * @title Elliptic curve signature operations\n * @dev Based on https://gist.github.com/axic/5b33912c6f61ae6fd96d6c4a47afde6d\n * TODO Remove this library once solidity supports passing a signature to ecrecover.\n * See https://github.com/ethereum/solidity/issues/864\n */\n\nlibrary ECDSA {\n\n /**\n * @dev Recover signer address from a message by using their signature\n * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address.\n * @param signature bytes signature, the signature is generated using web3.eth.sign()\n */\n function recover(bytes32 hash, bytes signature)\n internal\n pure\n returns (address)\n {\n bytes32 r;\n bytes32 s;\n uint8 v;\n\n // Check the signature length\n if (signature.length != 65) {\n return (address(0));\n }\n\n // Divide the signature in r, s and v variables\n // ecrecover takes the signature parameters, and the only way to get them\n // currently is to use assembly.\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n r := mload(add(signature, 32))\n s := mload(add(signature, 64))\n v := byte(0, mload(add(signature, 96)))\n }\n\n // Version of signature should be 27 or 28, but 0 and 1 are also possible versions\n if (v < 27) {\n v += 27;\n }\n\n // If the version is correct return the signer address\n if (v != 27 && v != 28) {\n return (address(0));\n } else {\n // solium-disable-next-line arg-overflow\n return ecrecover(hash, v, r, s);\n }\n }\n\n /**\n * toEthSignedMessageHash\n * @dev prefix a bytes32 value with \"\\x19Ethereum Signed Message:\"\n * and hash the result\n */\n function toEthSignedMessageHash(bytes32 hash)\n internal\n pure\n returns (bytes32)\n {\n // 32 is the length in bytes of hash,\n // enforced by the type signature above\n return keccak256(\n abi.encodePacked(\"\\x19Ethereum Signed Message:\\n32\", hash)\n );\n }\n}\n", @@ -11,14 +12,14 @@ "absolutePath": "openzeppelin-eth/contracts/cryptography/ECDSA.sol", "exportedSymbols": { "ECDSA": [ - 3461 + 648 ] }, - "id": 3462, + "id": 649, "nodeType": "SourceUnit", "nodes": [ { - "id": 3382, + "id": 569, "literals": [ "solidity", "^", @@ -34,16 +35,16 @@ "contractKind": "library", "documentation": "@title Elliptic curve signature operations\n@dev Based on https://gist.github.com/axic/5b33912c6f61ae6fd96d6c4a47afde6d\nTODO Remove this library once solidity supports passing a signature to ecrecover.\nSee https://github.com/ethereum/solidity/issues/864", "fullyImplemented": true, - "id": 3461, + "id": 648, "linearizedBaseContracts": [ - 3461 + 648 ], "name": "ECDSA", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3443, + "id": 630, "nodeType": "Block", "src": "694:868:6", "statements": [ @@ -52,10 +53,10 @@ "declarations": [ { "constant": false, - "id": 3392, + "id": 579, "name": "r", "nodeType": "VariableDeclaration", - "scope": 3444, + "scope": 631, "src": "700:9:6", "stateVariable": false, "storageLocation": "default", @@ -64,7 +65,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3391, + "id": 578, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "700:7:6", @@ -77,7 +78,7 @@ "visibility": "internal" } ], - "id": 3393, + "id": 580, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "700:9:6" @@ -87,10 +88,10 @@ "declarations": [ { "constant": false, - "id": 3395, + "id": 582, "name": "s", "nodeType": "VariableDeclaration", - "scope": 3444, + "scope": 631, "src": "715:9:6", "stateVariable": false, "storageLocation": "default", @@ -99,7 +100,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3394, + "id": 581, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "715:7:6", @@ -112,7 +113,7 @@ "visibility": "internal" } ], - "id": 3396, + "id": 583, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "715:9:6" @@ -122,10 +123,10 @@ "declarations": [ { "constant": false, - "id": 3398, + "id": 585, "name": "v", "nodeType": "VariableDeclaration", - "scope": 3444, + "scope": 631, "src": "730:7:6", "stateVariable": false, "storageLocation": "default", @@ -134,7 +135,7 @@ "typeString": "uint8" }, "typeName": { - "id": 3397, + "id": 584, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "730:5:6", @@ -147,7 +148,7 @@ "visibility": "internal" } ], - "id": 3399, + "id": 586, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "730:7:6" @@ -159,7 +160,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3403, + "id": 590, "isConstant": false, "isLValue": false, "isPure": false, @@ -168,18 +169,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3400, + "id": 587, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3386, + "referencedDeclaration": 573, "src": "782:9:6", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3401, + "id": 588, "isConstant": false, "isLValue": false, "isPure": false, @@ -198,7 +199,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3635", - "id": 3402, + "id": 589, "isConstant": false, "isLValue": false, "isPure": true, @@ -220,11 +221,11 @@ } }, "falseBody": null, - "id": 3410, + "id": 597, "nodeType": "IfStatement", "src": "778:62:6", "trueBody": { - "id": 3409, + "id": 596, "nodeType": "Block", "src": "806:34:6", "statements": [ @@ -238,7 +239,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3405, + "id": 592, "isConstant": false, "isLValue": false, "isPure": true, @@ -261,7 +262,7 @@ "typeString": "int_const 0" } ], - "id": 3404, + "id": 591, "isConstant": false, "isLValue": false, "isPure": true, @@ -274,7 +275,7 @@ }, "typeName": "address" }, - "id": 3406, + "id": 593, "isConstant": false, "isLValue": false, "isPure": true, @@ -289,7 +290,7 @@ } } ], - "id": 3407, + "id": 594, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -302,8 +303,8 @@ "typeString": "address" } }, - "functionReturnParameters": 3390, - "id": 3408, + "functionReturnParameters": 577, + "id": 595, "nodeType": "Return", "src": "814:19:6" } @@ -314,7 +315,7 @@ "externalReferences": [ { "r": { - "declaration": 3392, + "declaration": 579, "isOffset": false, "isSlot": false, "src": "1090:1:6", @@ -323,7 +324,7 @@ }, { "v": { - "declaration": 3398, + "declaration": 585, "isOffset": false, "isSlot": false, "src": "1164:1:6", @@ -332,7 +333,7 @@ }, { "signature": { - "declaration": 3386, + "declaration": 573, "isOffset": false, "isSlot": false, "src": "1105:9:6", @@ -341,7 +342,7 @@ }, { "s": { - "declaration": 3395, + "declaration": 582, "isOffset": false, "isSlot": false, "src": "1127:1:6", @@ -350,7 +351,7 @@ }, { "signature": { - "declaration": 3386, + "declaration": 573, "isOffset": false, "isSlot": false, "src": "1142:9:6", @@ -359,7 +360,7 @@ }, { "signature": { - "declaration": 3386, + "declaration": 573, "isOffset": false, "isSlot": false, "src": "1187:9:6", @@ -367,7 +368,7 @@ } } ], - "id": 3411, + "id": 598, "nodeType": "InlineAssembly", "operations": "{\n r := mload(add(signature, 32))\n s := mload(add(signature, 64))\n v := byte(0, mload(add(signature, 96)))\n}", "src": "1073:231:6" @@ -379,18 +380,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 3414, + "id": 601, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3412, + "id": 599, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3398, + "referencedDeclaration": 585, "src": "1306:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -402,7 +403,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3237", - "id": 3413, + "id": 600, "isConstant": false, "isLValue": false, "isPure": true, @@ -424,29 +425,29 @@ } }, "falseBody": null, - "id": 3420, + "id": 607, "nodeType": "IfStatement", "src": "1302:34:6", "trueBody": { - "id": 3419, + "id": 606, "nodeType": "Block", "src": "1314:22:6", "statements": [ { "expression": { "argumentTypes": null, - "id": 3417, + "id": 604, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3415, + "id": 602, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3398, + "referencedDeclaration": 585, "src": "1322:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -458,7 +459,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "3237", - "id": 3416, + "id": 603, "isConstant": false, "isLValue": false, "isPure": true, @@ -479,7 +480,7 @@ "typeString": "uint8" } }, - "id": 3418, + "id": 605, "nodeType": "ExpressionStatement", "src": "1322:7:6" } @@ -493,7 +494,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3427, + "id": 614, "isConstant": false, "isLValue": false, "isPure": false, @@ -504,18 +505,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 3423, + "id": 610, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3421, + "id": 608, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3398, + "referencedDeclaration": 585, "src": "1405:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -527,7 +528,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3237", - "id": 3422, + "id": 609, "isConstant": false, "isLValue": false, "isPure": true, @@ -556,18 +557,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 3426, + "id": 613, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3424, + "id": 611, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3398, + "referencedDeclaration": 585, "src": "1416:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -579,7 +580,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3238", - "id": 3425, + "id": 612, "isConstant": false, "isLValue": false, "isPure": true, @@ -607,7 +608,7 @@ } }, "falseBody": { - "id": 3441, + "id": 628, "nodeType": "Block", "src": "1465:93:6", "statements": [ @@ -617,11 +618,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3435, + "id": 622, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3384, + "referencedDeclaration": 571, "src": "1537:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -630,11 +631,11 @@ }, { "argumentTypes": null, - "id": 3436, + "id": 623, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3398, + "referencedDeclaration": 585, "src": "1543:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -643,11 +644,11 @@ }, { "argumentTypes": null, - "id": 3437, + "id": 624, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3392, + "referencedDeclaration": 579, "src": "1546:1:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -656,11 +657,11 @@ }, { "argumentTypes": null, - "id": 3438, + "id": 625, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3395, + "referencedDeclaration": 582, "src": "1549:1:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -687,18 +688,18 @@ "typeString": "bytes32" } ], - "id": 3434, + "id": 621, "name": "ecrecover", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4190, + "referencedDeclaration": 1439, "src": "1527:9:6", "typeDescriptions": { "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" } }, - "id": 3439, + "id": 626, "isConstant": false, "isLValue": false, "isPure": false, @@ -712,18 +713,18 @@ "typeString": "address" } }, - "functionReturnParameters": 3390, - "id": 3440, + "functionReturnParameters": 577, + "id": 627, "nodeType": "Return", "src": "1520:31:6" } ] }, - "id": 3442, + "id": 629, "nodeType": "IfStatement", "src": "1401:157:6", "trueBody": { - "id": 3433, + "id": 620, "nodeType": "Block", "src": "1425:34:6", "statements": [ @@ -737,7 +738,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3429, + "id": 616, "isConstant": false, "isLValue": false, "isPure": true, @@ -760,7 +761,7 @@ "typeString": "int_const 0" } ], - "id": 3428, + "id": 615, "isConstant": false, "isLValue": false, "isPure": true, @@ -773,7 +774,7 @@ }, "typeName": "address" }, - "id": 3430, + "id": 617, "isConstant": false, "isLValue": false, "isPure": true, @@ -788,7 +789,7 @@ } } ], - "id": 3431, + "id": 618, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -801,8 +802,8 @@ "typeString": "address" } }, - "functionReturnParameters": 3390, - "id": 3432, + "functionReturnParameters": 577, + "id": 619, "nodeType": "Return", "src": "1433:19:6" } @@ -812,7 +813,7 @@ ] }, "documentation": "@dev Recover signer address from a message by using their signature\n@param hash bytes32 message, the hash is the signed message. What is recovered is the signer address.\n@param signature bytes signature, the signature is generated using web3.eth.sign()", - "id": 3444, + "id": 631, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -820,15 +821,15 @@ "name": "recover", "nodeType": "FunctionDefinition", "parameters": { - "id": 3387, + "id": 574, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3384, + "id": 571, "name": "hash", "nodeType": "VariableDeclaration", - "scope": 3444, + "scope": 631, "src": "617:12:6", "stateVariable": false, "storageLocation": "default", @@ -837,7 +838,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3383, + "id": 570, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "617:7:6", @@ -851,10 +852,10 @@ }, { "constant": false, - "id": 3386, + "id": 573, "name": "signature", "nodeType": "VariableDeclaration", - "scope": 3444, + "scope": 631, "src": "631:15:6", "stateVariable": false, "storageLocation": "default", @@ -863,7 +864,7 @@ "typeString": "bytes" }, "typeName": { - "id": 3385, + "id": 572, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "631:5:6", @@ -880,15 +881,15 @@ }, "payable": false, "returnParameters": { - "id": 3390, + "id": 577, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3389, + "id": 576, "name": "", "nodeType": "VariableDeclaration", - "scope": 3444, + "scope": 631, "src": "683:7:6", "stateVariable": false, "storageLocation": "default", @@ -897,7 +898,7 @@ "typeString": "address" }, "typeName": { - "id": 3388, + "id": 575, "name": "address", "nodeType": "ElementaryTypeName", "src": "683:7:6", @@ -912,7 +913,7 @@ ], "src": "682:9:6" }, - "scope": 3461, + "scope": 648, "src": "600:962:6", "stateMutability": "pure", "superFunction": null, @@ -920,7 +921,7 @@ }, { "body": { - "id": 3459, + "id": 646, "nodeType": "Block", "src": "1792:185:6", "statements": [ @@ -934,7 +935,7 @@ { "argumentTypes": null, "hexValue": "19457468657265756d205369676e6564204d6573736167653a0a3332", - "id": 3454, + "id": 641, "isConstant": false, "isLValue": false, "isPure": true, @@ -951,11 +952,11 @@ }, { "argumentTypes": null, - "id": 3455, + "id": 642, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3446, + "referencedDeclaration": 633, "src": "1961:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -976,18 +977,18 @@ ], "expression": { "argumentTypes": null, - "id": 3452, + "id": 639, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4185, + "referencedDeclaration": 1434, "src": "1908:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3453, + "id": 640, "isConstant": false, "isLValue": false, "isPure": true, @@ -1001,7 +1002,7 @@ "typeString": "function () pure returns (bytes memory)" } }, - "id": 3456, + "id": 643, "isConstant": false, "isLValue": false, "isPure": false, @@ -1023,18 +1024,18 @@ "typeString": "bytes memory" } ], - "id": 3451, + "id": 638, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4192, + "referencedDeclaration": 1441, "src": "1891:9:6", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 3457, + "id": 644, "isConstant": false, "isLValue": false, "isPure": false, @@ -1048,15 +1049,15 @@ "typeString": "bytes32" } }, - "functionReturnParameters": 3450, - "id": 3458, + "functionReturnParameters": 637, + "id": 645, "nodeType": "Return", "src": "1884:88:6" } ] }, "documentation": "toEthSignedMessageHash\n@dev prefix a bytes32 value with \"\\x19Ethereum Signed Message:\"\nand hash the result", - "id": 3460, + "id": 647, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1064,15 +1065,15 @@ "name": "toEthSignedMessageHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 3447, + "id": 634, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3446, + "id": 633, "name": "hash", "nodeType": "VariableDeclaration", - "scope": 3460, + "scope": 647, "src": "1732:12:6", "stateVariable": false, "storageLocation": "default", @@ -1081,7 +1082,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3445, + "id": 632, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1732:7:6", @@ -1098,15 +1099,15 @@ }, "payable": false, "returnParameters": { - "id": 3450, + "id": 637, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3449, + "id": 636, "name": "", "nodeType": "VariableDeclaration", - "scope": 3460, + "scope": 647, "src": "1781:7:6", "stateVariable": false, "storageLocation": "default", @@ -1115,7 +1116,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 3448, + "id": 635, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1781:7:6", @@ -1130,1160 +1131,1251 @@ ], "src": "1780:9:6" }, - "scope": 3461, + "scope": 648, "src": "1700:277:6", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 3462, + "scope": 649, "src": "301:1678:6" } ], "src": "0:1980:6" }, "legacyAST": { - "absolutePath": "openzeppelin-eth/contracts/cryptography/ECDSA.sol", - "exportedSymbols": { - "ECDSA": [ - 3461 - ] + "attributes": { + "absolutePath": "openzeppelin-eth/contracts/cryptography/ECDSA.sol", + "exportedSymbols": { + "ECDSA": [ + 648 + ] + } }, - "id": 3462, - "nodeType": "SourceUnit", - "nodes": [ + "children": [ { - "id": 3382, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", + "attributes": { + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ] + }, + "id": 569, + "name": "PragmaDirective", "src": "0:24:6" }, { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Elliptic curve signature operations\n@dev Based on https://gist.github.com/axic/5b33912c6f61ae6fd96d6c4a47afde6d\nTODO Remove this library once solidity supports passing a signature to ecrecover.\nSee https://github.com/ethereum/solidity/issues/864", - "fullyImplemented": true, - "id": 3461, - "linearizedBaseContracts": [ - 3461 - ], - "name": "ECDSA", - "nodeType": "ContractDefinition", - "nodes": [ + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "documentation": "@title Elliptic curve signature operations\n@dev Based on https://gist.github.com/axic/5b33912c6f61ae6fd96d6c4a47afde6d\nTODO Remove this library once solidity supports passing a signature to ecrecover.\nSee https://github.com/ethereum/solidity/issues/864", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 648 + ], + "name": "ECDSA", + "scope": 649 + }, + "children": [ { - "body": { - "id": 3443, - "nodeType": "Block", - "src": "694:868:6", - "statements": [ - { - "assignments": [], - "declarations": [ - { + "attributes": { + "constant": true, + "documentation": "@dev Recover signer address from a message by using their signature\n@param hash bytes32 message, the hash is the signed message. What is recovered is the signer address.\n@param signature bytes signature, the signature is generated using web3.eth.sign()", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "recover", + "payable": false, + "scope": 648, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { "constant": false, - "id": 3392, - "name": "r", - "nodeType": "VariableDeclaration", - "scope": 3444, - "src": "700:9:6", + "name": "hash", + "scope": 631, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3391, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "700:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, + "type": "bytes32", "value": null, "visibility": "internal" - } - ], - "id": 3393, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "700:9:6" - }, - { - "assignments": [], - "declarations": [ - { + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 570, + "name": "ElementaryTypeName", + "src": "617:7:6" + } + ], + "id": 571, + "name": "VariableDeclaration", + "src": "617:12:6" + }, + { + "attributes": { "constant": false, - "id": 3395, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 3444, - "src": "715:9:6", + "name": "signature", + "scope": 631, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3394, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "715:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, + "type": "bytes", "value": null, "visibility": "internal" - } - ], - "id": 3396, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "715:9:6" - }, - { - "assignments": [], - "declarations": [ - { + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 572, + "name": "ElementaryTypeName", + "src": "631:5:6" + } + ], + "id": 573, + "name": "VariableDeclaration", + "src": "631:15:6" + } + ], + "id": 574, + "name": "ParameterList", + "src": "616:31:6" + }, + { + "children": [ + { + "attributes": { "constant": false, - "id": 3398, - "name": "v", - "nodeType": "VariableDeclaration", - "scope": 3444, - "src": "730:7:6", + "name": "", + "scope": 631, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3397, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "730:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, + "type": "address", "value": null, "visibility": "internal" - } - ], - "id": 3399, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "730:7:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" }, - "id": 3403, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3400, - "name": "signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3386, - "src": "782:9:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "782:16:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 575, + "name": "ElementaryTypeName", + "src": "683:7:6" } + ], + "id": 576, + "name": "VariableDeclaration", + "src": "683:7:6" + } + ], + "id": 577, + "name": "ParameterList", + "src": "682:9:6" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + null + ], + "initialValue": null }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3635", - "id": 3402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "802:2:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_65_by_1", - "typeString": "int_const 65" - }, - "value": "65" + "children": [ + { + "attributes": { + "constant": false, + "name": "r", + "scope": 631, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 578, + "name": "ElementaryTypeName", + "src": "700:7:6" + } + ], + "id": 579, + "name": "VariableDeclaration", + "src": "700:9:6" + } + ], + "id": 580, + "name": "VariableDeclarationStatement", + "src": "700:9:6" + }, + { + "attributes": { + "assignments": [ + null + ], + "initialValue": null }, - "src": "782:22:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "children": [ + { + "attributes": { + "constant": false, + "name": "s", + "scope": 631, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 581, + "name": "ElementaryTypeName", + "src": "715:7:6" + } + ], + "id": 582, + "name": "VariableDeclaration", + "src": "715:9:6" + } + ], + "id": 583, + "name": "VariableDeclarationStatement", + "src": "715:9:6" }, - "falseBody": null, - "id": 3410, - "nodeType": "IfStatement", - "src": "778:62:6", - "trueBody": { - "id": 3409, - "nodeType": "Block", - "src": "806:34:6", - "statements": [ + { + "attributes": { + "assignments": [ + null + ], + "initialValue": null + }, + "children": [ { - "expression": { + "attributes": { + "constant": false, + "name": "v", + "scope": 631, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 584, + "name": "ElementaryTypeName", + "src": "730:5:6" + } + ], + "id": 585, + "name": "VariableDeclaration", + "src": "730:7:6" + } + ], + "id": 586, + "name": "VariableDeclarationStatement", + "src": "730:7:6" + }, + { + "attributes": { + "falseBody": null + }, + "children": [ + { + "attributes": { "argumentTypes": null, - "components": [ - { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { "argumentTypes": null, - "arguments": [ - { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 573, + "type": "bytes memory", + "value": "signature" + }, + "id": 587, + "name": "Identifier", + "src": "782:9:6" + } + ], + "id": 588, + "name": "MemberAccess", + "src": "782:16:6" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "3635", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 65", + "value": "65" + }, + "id": 589, + "name": "Literal", + "src": "802:2:6" + } + ], + "id": 590, + "name": "BinaryOperation", + "src": "782:22:6" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 577 + }, + "children": [ + { + "attributes": { "argumentTypes": null, - "hexValue": "30", - "id": 3405, "isConstant": false, + "isInlineArray": false, "isLValue": false, "isPure": true, - "kind": "number", "lValueRequested": false, - "nodeType": "Literal", - "src": "830:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ + "type": "address" + }, + "children": [ { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 591, + "name": "ElementaryTypeNameExpression", + "src": "822:7:6" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 592, + "name": "Literal", + "src": "830:1:6" + } + ], + "id": 593, + "name": "FunctionCall", + "src": "822:10:6" } ], - "id": 3404, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "822:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3406, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "822:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "id": 594, + "name": "TupleExpression", + "src": "821:12:6" } - } - ], - "id": 3407, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "821:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + ], + "id": 595, + "name": "Return", + "src": "814:19:6" } - }, - "functionReturnParameters": 3390, - "id": 3408, - "nodeType": "Return", - "src": "814:19:6" - } - ] - } - }, - { - "externalReferences": [ - { - "r": { - "declaration": 3392, - "isOffset": false, - "isSlot": false, - "src": "1090:1:6", - "valueSize": 1 - } - }, - { - "v": { - "declaration": 3398, - "isOffset": false, - "isSlot": false, - "src": "1164:1:6", - "valueSize": 1 - } - }, - { - "signature": { - "declaration": 3386, - "isOffset": false, - "isSlot": false, - "src": "1105:9:6", - "valueSize": 1 - } - }, - { - "s": { - "declaration": 3395, - "isOffset": false, - "isSlot": false, - "src": "1127:1:6", - "valueSize": 1 - } - }, - { - "signature": { - "declaration": 3386, - "isOffset": false, - "isSlot": false, - "src": "1142:9:6", - "valueSize": 1 - } - }, - { - "signature": { - "declaration": 3386, - "isOffset": false, - "isSlot": false, - "src": "1187:9:6", - "valueSize": 1 - } - } - ], - "id": 3411, - "nodeType": "InlineAssembly", - "operations": "{\n r := mload(add(signature, 32))\n s := mload(add(signature, 64))\n v := byte(0, mload(add(signature, 96)))\n}", - "src": "1073:231:6" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 3414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3412, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3398, - "src": "1306:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + ], + "id": 596, + "name": "Block", + "src": "806:34:6" } + ], + "id": 597, + "name": "IfStatement", + "src": "778:62:6" + }, + { + "attributes": { + "externalReferences": [ + { + "r": { + "declaration": 579, + "isOffset": false, + "isSlot": false, + "src": "1090:1:6", + "valueSize": 1 + } + }, + { + "v": { + "declaration": 585, + "isOffset": false, + "isSlot": false, + "src": "1164:1:6", + "valueSize": 1 + } + }, + { + "signature": { + "declaration": 573, + "isOffset": false, + "isSlot": false, + "src": "1105:9:6", + "valueSize": 1 + } + }, + { + "s": { + "declaration": 582, + "isOffset": false, + "isSlot": false, + "src": "1127:1:6", + "valueSize": 1 + } + }, + { + "signature": { + "declaration": 573, + "isOffset": false, + "isSlot": false, + "src": "1142:9:6", + "valueSize": 1 + } + }, + { + "signature": { + "declaration": 573, + "isOffset": false, + "isSlot": false, + "src": "1187:9:6", + "valueSize": 1 + } + } + ], + "operations": "{\n r := mload(add(signature, 32))\n s := mload(add(signature, 64))\n v := byte(0, mload(add(signature, 96)))\n}" }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3237", - "id": 3413, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1310:2:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_27_by_1", - "typeString": "int_const 27" - }, - "value": "27" - }, - "src": "1306:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "children": [], + "id": 598, + "name": "InlineAssembly", + "src": "1073:231:6" }, - "falseBody": null, - "id": 3420, - "nodeType": "IfStatement", - "src": "1302:34:6", - "trueBody": { - "id": 3419, - "nodeType": "Block", - "src": "1314:22:6", - "statements": [ + { + "attributes": { + "falseBody": null + }, + "children": [ { - "expression": { + "attributes": { "argumentTypes": null, - "id": 3417, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3415, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3398, - "src": "1322:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3237", - "id": 3416, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1327:2:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_27_by_1", - "typeString": "int_const 27" + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 585, + "type": "uint8", + "value": "v" }, - "value": "27" + "id": 599, + "name": "Identifier", + "src": "1306:1:6" }, - "src": "1322:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + { + "attributes": { + "argumentTypes": null, + "hexvalue": "3237", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 27", + "value": "27" + }, + "id": 600, + "name": "Literal", + "src": "1310:2:6" } - }, - "id": 3418, - "nodeType": "ExpressionStatement", - "src": "1322:7:6" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3427, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 3423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3421, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3398, - "src": "1405:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3237", - "id": 3422, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1410:2:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_27_by_1", - "typeString": "int_const 27" - }, - "value": "27" - }, - "src": "1405:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 3426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3424, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3398, - "src": "1416:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3238", - "id": 3425, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1421:2:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_28_by_1", - "typeString": "int_const 28" - }, - "value": "28" + ], + "id": 601, + "name": "BinaryOperation", + "src": "1306:6:6" }, - "src": "1416:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 585, + "type": "uint8", + "value": "v" + }, + "id": 602, + "name": "Identifier", + "src": "1322:1:6" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "3237", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 27", + "value": "27" + }, + "id": 603, + "name": "Literal", + "src": "1327:2:6" + } + ], + "id": 604, + "name": "Assignment", + "src": "1322:7:6" + } + ], + "id": 605, + "name": "ExpressionStatement", + "src": "1322:7:6" + } + ], + "id": 606, + "name": "Block", + "src": "1314:22:6" } - }, - "src": "1405:18:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + ], + "id": 607, + "name": "IfStatement", + "src": "1302:34:6" }, - "falseBody": { - "id": 3441, - "nodeType": "Block", - "src": "1465:93:6", - "statements": [ + { + "children": [ { - "expression": { + "attributes": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3435, - "name": "hash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3384, - "src": "1537:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "&&", + "type": "bool" + }, + "children": [ + { + "attributes": { "argumentTypes": null, - "id": 3436, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3398, - "src": "1543:1:6", - "typeDescriptions": { + "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 3437, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3392, - "src": "1546:1:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3438, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3395, - "src": "1549:1:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 585, + "type": "uint8", + "value": "v" + }, + "id": 608, + "name": "Identifier", + "src": "1405:1:6" }, { + "attributes": { + "argumentTypes": null, + "hexvalue": "3237", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 27", + "value": "27" + }, + "id": 609, + "name": "Literal", + "src": "1410:2:6" + } + ], + "id": 610, + "name": "BinaryOperation", + "src": "1405:7:6" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { "typeIdentifier": "t_uint8", "typeString": "uint8" }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 585, + "type": "uint8", + "value": "v" + }, + "id": 611, + "name": "Identifier", + "src": "1416:1:6" }, { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "attributes": { + "argumentTypes": null, + "hexvalue": "3238", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 28", + "value": "28" + }, + "id": 612, + "name": "Literal", + "src": "1421:2:6" } ], - "id": 3434, - "name": "ecrecover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4190, - "src": "1527:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" - } - }, - "id": 3439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1527:24:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "id": 613, + "name": "BinaryOperation", + "src": "1416:7:6" } - }, - "functionReturnParameters": 3390, - "id": 3440, - "nodeType": "Return", - "src": "1520:31:6" - } - ] - }, - "id": 3442, - "nodeType": "IfStatement", - "src": "1401:157:6", - "trueBody": { - "id": 3433, - "nodeType": "Block", - "src": "1425:34:6", - "statements": [ + ], + "id": 614, + "name": "BinaryOperation", + "src": "1405:18:6" + }, { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { + "children": [ + { + "attributes": { + "functionReturnParameters": 577 + }, + "children": [ + { + "attributes": { "argumentTypes": null, - "hexValue": "30", - "id": 3429, "isConstant": false, + "isInlineArray": false, "isLValue": false, "isPure": true, - "kind": "number", "lValueRequested": false, - "nodeType": "Literal", - "src": "1449:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ + "type": "address" + }, + "children": [ { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 615, + "name": "ElementaryTypeNameExpression", + "src": "1441:7:6" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 616, + "name": "Literal", + "src": "1449:1:6" + } + ], + "id": 617, + "name": "FunctionCall", + "src": "1441:10:6" } ], - "id": 3428, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1441:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" + "id": 618, + "name": "TupleExpression", + "src": "1440:12:6" + } + ], + "id": 619, + "name": "Return", + "src": "1433:19:6" + } + ], + "id": 620, + "name": "Block", + "src": "1425:34:6" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 577 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address", + "type_conversion": false }, - "typeName": "address" - }, - "id": 3430, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1441:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1439, + "type": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)", + "value": "ecrecover" + }, + "id": 621, + "name": "Identifier", + "src": "1527:9:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 571, + "type": "bytes32", + "value": "hash" + }, + "id": 622, + "name": "Identifier", + "src": "1537:4:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 585, + "type": "uint8", + "value": "v" + }, + "id": 623, + "name": "Identifier", + "src": "1543:1:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 579, + "type": "bytes32", + "value": "r" + }, + "id": 624, + "name": "Identifier", + "src": "1546:1:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 582, + "type": "bytes32", + "value": "s" + }, + "id": 625, + "name": "Identifier", + "src": "1549:1:6" + } + ], + "id": 626, + "name": "FunctionCall", + "src": "1527:24:6" } - } - ], - "id": 3431, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1440:12:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + ], + "id": 627, + "name": "Return", + "src": "1520:31:6" } - }, - "functionReturnParameters": 3390, - "id": 3432, - "nodeType": "Return", - "src": "1433:19:6" - } - ] - } - } - ] - }, - "documentation": "@dev Recover signer address from a message by using their signature\n@param hash bytes32 message, the hash is the signed message. What is recovered is the signer address.\n@param signature bytes signature, the signature is generated using web3.eth.sign()", - "id": 3444, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "recover", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3387, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3384, - "name": "hash", - "nodeType": "VariableDeclaration", - "scope": 3444, - "src": "617:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3383, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "617:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3386, - "name": "signature", - "nodeType": "VariableDeclaration", - "scope": 3444, - "src": "631:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3385, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "631:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "616:31:6" - }, - "payable": false, - "returnParameters": { - "id": 3390, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3389, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3444, - "src": "683:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3388, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "683:7:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "682:9:6" - }, - "scope": 3461, - "src": "600:962:6", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" + ], + "id": 628, + "name": "Block", + "src": "1465:93:6" + } + ], + "id": 629, + "name": "IfStatement", + "src": "1401:157:6" + } + ], + "id": 630, + "name": "Block", + "src": "694:868:6" + } + ], + "id": 631, + "name": "FunctionDefinition", + "src": "600:962:6" }, { - "body": { - "id": 3459, - "nodeType": "Block", - "src": "1792:185:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ + "attributes": { + "constant": true, + "documentation": "toEthSignedMessageHash\n@dev prefix a bytes32 value with \"\\x19Ethereum Signed Message:\"\nand hash the result", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "toEthSignedMessageHash", + "payable": false, + "scope": 648, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "hash", + "scope": 647, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ { - "argumentTypes": null, - "arguments": [ + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 632, + "name": "ElementaryTypeName", + "src": "1732:7:6" + } + ], + "id": 633, + "name": "VariableDeclaration", + "src": "1732:12:6" + } + ], + "id": 634, + "name": "ParameterList", + "src": "1731:14:6" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 647, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 635, + "name": "ElementaryTypeName", + "src": "1781:7:6" + } + ], + "id": 636, + "name": "VariableDeclaration", + "src": "1781:7:6" + } + ], + "id": 637, + "name": "ParameterList", + "src": "1780:9:6" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 637 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ { - "argumentTypes": null, - "hexValue": "19457468657265756d205369676e6564204d6573736167653a0a3332", - "id": 3454, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1925:34:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73", - "typeString": "literal_string \"\u0019Ethereum Signed Message:\n32\"" + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1441, + "type": "function () pure returns (bytes32)", + "value": "keccak256" }, - "value": "\u0019Ethereum Signed Message:\n32" + "id": 638, + "name": "Identifier", + "src": "1891:9:6" }, { - "argumentTypes": null, - "id": 3455, - "name": "hash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3446, - "src": "1961:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73", - "typeString": "literal_string \"\u0019Ethereum Signed Message:\n32\"" + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes memory", + "type_conversion": false }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3452, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "1908:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3453, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1908:16:6", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73", + "typeString": "literal_string \"\u0019Ethereum Signed Message:\n32\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "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": 1434, + "type": "abi", + "value": "abi" + }, + "id": 639, + "name": "Identifier", + "src": "1908:3:6" + } + ], + "id": 640, + "name": "MemberAccess", + "src": "1908:16:6" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "19457468657265756d205369676e6564204d6573736167653a0a3332", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"\u0019Ethereum Signed Message:\n32\"", + "value": "\u0019Ethereum Signed Message:\n32" + }, + "id": 641, + "name": "Literal", + "src": "1925:34:6" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 633, + "type": "bytes32", + "value": "hash" + }, + "id": 642, + "name": "Identifier", + "src": "1961:4:6" + } + ], + "id": 643, + "name": "FunctionCall", + "src": "1908:58:6" } - }, - "id": 3456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1908:58:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } + ], + "id": 644, + "name": "FunctionCall", + "src": "1891:81:6" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3451, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "1891:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1891:81:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 3450, - "id": 3458, - "nodeType": "Return", - "src": "1884:88:6" - } - ] - }, - "documentation": "toEthSignedMessageHash\n@dev prefix a bytes32 value with \"\\x19Ethereum Signed Message:\"\nand hash the result", - "id": 3460, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "toEthSignedMessageHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3446, - "name": "hash", - "nodeType": "VariableDeclaration", - "scope": 3460, - "src": "1732:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3445, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1732:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1731:14:6" - }, - "payable": false, - "returnParameters": { - "id": 3450, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3449, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3460, - "src": "1781:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3448, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1781:7:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1780:9:6" - }, - "scope": 3461, - "src": "1700:277:6", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" + "id": 645, + "name": "Return", + "src": "1884:88:6" + } + ], + "id": 646, + "name": "Block", + "src": "1792:185:6" + } + ], + "id": 647, + "name": "FunctionDefinition", + "src": "1700:277:6" } ], - "scope": 3462, + "id": 648, + "name": "ContractDefinition", "src": "301:1678:6" } ], + "id": 649, + "name": "SourceUnit", "src": "0:1980:6" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.4.25+commit.59dbf8f1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.1", - "updatedAt": "2019-08-15T18:51:44.475Z" + "schemaVersion": "3.3.4", + "updatedAt": "2021-04-02T09:51:14.573Z", + "devdoc": { + "methods": {}, + "title": "Elliptic curve signature operations" + }, + "userdoc": { + "methods": {} + } } \ No newline at end of file diff --git a/build/contracts/ERC20.json b/build/contracts/ERC20.json index 64968df9..41564f80 100644 --- a/build/contracts/ERC20.json +++ b/build/contracts/ERC20.json @@ -221,8 +221,9 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610a97806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b31461009357806318160ddd146100f857806323b872dd1461012357806339509351146101a857806370a082311461020d578063a457c2d714610264578063a9059cbb146102c9578063dd62ed3e1461032e575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103a5565b604051808215151515815260200191505060405180910390f35b34801561010457600080fd5b5061010d6103bc565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b5061018e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103c6565b604051808215151515815260200191505060405180910390f35b3480156101b457600080fd5b506101f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610477565b604051808215151515815260200191505060405180910390f35b34801561021957600080fd5b5061024e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061051c565b6040518082815260200191505060405180910390f35b34801561027057600080fd5b506102af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610565565b604051808215151515815260200191505060405180910390f35b3480156102d557600080fd5b50610314600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061060a565b604051808215151515815260200191505060405180910390f35b34801561033a57600080fd5b5061038f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610621565b6040518082815260200191505060405180910390f35b60006103b23384846106a8565b6001905092915050565b6000603554905090565b60006103d384848461080b565b61046c843361046785603460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a2990919063ffffffff16565b6106a8565b600190509392505050565b6000610512338461050d85603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a4a90919063ffffffff16565b6106a8565b6001905092915050565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600061060033846105fb85603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a2990919063ffffffff16565b6106a8565b6001905092915050565b600061061733848461080b565b6001905092915050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156106e457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561072057600080fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561085957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561089557600080fd5b6108e781603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a2990919063ffffffff16565b603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061097c81603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a4a90919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080838311151515610a3b57600080fd5b82840390508091505092915050565b6000808284019050838110151515610a6157600080fd5b80915050929150505600a165627a7a72305820b83af44e2557a8a5fd9027fa21b5a10af78fbb4fb49f9ab2c76267108adfcf4a0029", - "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b31461009357806318160ddd146100f857806323b872dd1461012357806339509351146101a857806370a082311461020d578063a457c2d714610264578063a9059cbb146102c9578063dd62ed3e1461032e575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103a5565b604051808215151515815260200191505060405180910390f35b34801561010457600080fd5b5061010d6103bc565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b5061018e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103c6565b604051808215151515815260200191505060405180910390f35b3480156101b457600080fd5b506101f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610477565b604051808215151515815260200191505060405180910390f35b34801561021957600080fd5b5061024e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061051c565b6040518082815260200191505060405180910390f35b34801561027057600080fd5b506102af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610565565b604051808215151515815260200191505060405180910390f35b3480156102d557600080fd5b50610314600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061060a565b604051808215151515815260200191505060405180910390f35b34801561033a57600080fd5b5061038f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610621565b6040518082815260200191505060405180910390f35b60006103b23384846106a8565b6001905092915050565b6000603554905090565b60006103d384848461080b565b61046c843361046785603460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a2990919063ffffffff16565b6106a8565b600190509392505050565b6000610512338461050d85603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a4a90919063ffffffff16565b6106a8565b6001905092915050565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600061060033846105fb85603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a2990919063ffffffff16565b6106a8565b6001905092915050565b600061061733848461080b565b6001905092915050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156106e457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561072057600080fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561085957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561089557600080fd5b6108e781603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a2990919063ffffffff16565b603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061097c81603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a4a90919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080838311151515610a3b57600080fd5b82840390508091505092915050565b6000808284019050838110151515610a6157600080fd5b80915050929150505600a165627a7a72305820b83af44e2557a8a5fd9027fa21b5a10af78fbb4fb49f9ab2c76267108adfcf4a0029", + "metadata": "{\"compiler\":{\"version\":\"0.4.25+commit.59dbf8f1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"Function to check the amount of tokens that an owner allowed to a spender.\",\"params\":{\"owner\":\"address The address which owns the funds.\",\"spender\":\"address The address which will spend the funds.\"},\"return\":\"A uint256 specifying the amount of tokens still available for the spender.\"},\"approve(address,uint256)\":{\"details\":\"Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\",\"params\":{\"spender\":\"The address which will spend the funds.\",\"value\":\"The amount of tokens to be spent.\"}},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address.\",\"params\":{\"owner\":\"The address to query the the balance of.\"},\"return\":\"An uint256 representing the amount owned by the passed address.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Decrease the amount of tokens that an owner allowed to a spender. approve should be called when allowed_[_spender] == 0. To decrement allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol\",\"params\":{\"spender\":\"The address which will spend the funds.\",\"subtractedValue\":\"The amount of tokens to decrease the allowance by.\"}},\"increaseAllowance(address,uint256)\":{\"details\":\"Increase the amount of tokens that an owner allowed to a spender. approve should be called when allowed_[_spender] == 0. To increment allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol\",\"params\":{\"addedValue\":\"The amount of tokens to increase the allowance by.\",\"spender\":\"The address which will spend the funds.\"}},\"totalSupply()\":{\"details\":\"Total number of tokens in existence\"},\"transfer(address,uint256)\":{\"details\":\"Transfer token for a specified address\",\"params\":{\"to\":\"The address to transfer to.\",\"value\":\"The amount to be transferred.\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfer tokens from one address to another\",\"params\":{\"from\":\"address The address which you want to send tokens from\",\"to\":\"address The address which you want to transfer to\",\"value\":\"uint256 the amount of tokens to be transferred\"}}},\"title\":\"Standard ERC20 token\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-eth/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-eth/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xca27427124232a675642ba45303b78d5a36e1207ee222030ef249e11eba5a224\",\"urls\":[\"bzzr://013c67962737acca577ecd24e6b6c80f85b05fd03c1c75ab68f65a084f4b4cfd\"]},\"openzeppelin-eth/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24252d4567a1cbf14d609a8308e491359c9200d58a2e78282938d945aeeb2bb3\",\"urls\":[\"bzzr://61401aaae518b765df91e443ef9dfb7af874341921829a063cb4804a6fb49c5e\"]},\"openzeppelin-eth/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x0786a09def412e5a92e1da8545114b39f9bbd8bd1ba6f62a5bf8b81f54ab25bf\",\"urls\":[\"bzzr://b35dbbf6dd505fcb601ca968d4628714a3af84024224228433eadf700e94f250\"]},\"zos-lib/contracts/Initializable.sol\":{\"keccak256\":\"0xac4cc87395794e21e95549a1b4002881621d59878c4129d534a0089ce5cf7212\",\"urls\":[\"bzzr://1725ac3e1941f8e2bf5c1966abd66bd744d40c85ae8195eb697ec3256bc1fc39\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50610a97806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b31461009357806318160ddd146100f857806323b872dd1461012357806339509351146101a857806370a082311461020d578063a457c2d714610264578063a9059cbb146102c9578063dd62ed3e1461032e575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103a5565b604051808215151515815260200191505060405180910390f35b34801561010457600080fd5b5061010d6103bc565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b5061018e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103c6565b604051808215151515815260200191505060405180910390f35b3480156101b457600080fd5b506101f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610477565b604051808215151515815260200191505060405180910390f35b34801561021957600080fd5b5061024e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061051c565b6040518082815260200191505060405180910390f35b34801561027057600080fd5b506102af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610565565b604051808215151515815260200191505060405180910390f35b3480156102d557600080fd5b50610314600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061060a565b604051808215151515815260200191505060405180910390f35b34801561033a57600080fd5b5061038f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610621565b6040518082815260200191505060405180910390f35b60006103b23384846106a8565b6001905092915050565b6000603554905090565b60006103d384848461080b565b61046c843361046785603460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a2990919063ffffffff16565b6106a8565b600190509392505050565b6000610512338461050d85603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a4a90919063ffffffff16565b6106a8565b6001905092915050565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600061060033846105fb85603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a2990919063ffffffff16565b6106a8565b6001905092915050565b600061061733848461080b565b6001905092915050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156106e457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561072057600080fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561085957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561089557600080fd5b6108e781603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a2990919063ffffffff16565b603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061097c81603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a4a90919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080838311151515610a3b57600080fd5b82840390508091505092915050565b6000808284019050838110151515610a6157600080fd5b80915050929150505600a165627a7a723058204df910c5473ae8d7f6feb1ceda3f1513a05e7350e1729109d243c6dc79c93b530029", + "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b31461009357806318160ddd146100f857806323b872dd1461012357806339509351146101a857806370a082311461020d578063a457c2d714610264578063a9059cbb146102c9578063dd62ed3e1461032e575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103a5565b604051808215151515815260200191505060405180910390f35b34801561010457600080fd5b5061010d6103bc565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b5061018e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103c6565b604051808215151515815260200191505060405180910390f35b3480156101b457600080fd5b506101f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610477565b604051808215151515815260200191505060405180910390f35b34801561021957600080fd5b5061024e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061051c565b6040518082815260200191505060405180910390f35b34801561027057600080fd5b506102af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610565565b604051808215151515815260200191505060405180910390f35b3480156102d557600080fd5b50610314600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061060a565b604051808215151515815260200191505060405180910390f35b34801561033a57600080fd5b5061038f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610621565b6040518082815260200191505060405180910390f35b60006103b23384846106a8565b6001905092915050565b6000603554905090565b60006103d384848461080b565b61046c843361046785603460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a2990919063ffffffff16565b6106a8565b600190509392505050565b6000610512338461050d85603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a4a90919063ffffffff16565b6106a8565b6001905092915050565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600061060033846105fb85603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a2990919063ffffffff16565b6106a8565b6001905092915050565b600061061733848461080b565b6001905092915050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156106e457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561072057600080fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561085957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561089557600080fd5b6108e781603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a2990919063ffffffff16565b603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061097c81603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a4a90919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080838311151515610a3b57600080fd5b82840390508091505092915050565b6000808284019050838110151515610a6157600080fd5b80915050929150505600a165627a7a723058204df910c5473ae8d7f6feb1ceda3f1513a05e7350e1729109d243c6dc79c93b530029", "sourceMap": "416:6609:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;416:6609:8;;;;;;;", "deployedSourceMap": "416:6609:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2462:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2462:145:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;702:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;702:83:8;;;;;;;;;;;;;;;;;;;;;;;2879:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2879:240:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3570:212;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3570:212:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;986:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;986:98:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4238:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4238:222:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1703:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1703:127:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1401:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1401:150:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2462:145;2527:4;2543:36;2552:10;2564:7;2573:5;2543:8;:36::i;:::-;2596:4;2589:11;;2462:145;;;;:::o;702:83::-;746:7;768:12;;761:19;;702:83;:::o;2879:240::-;2982:4;3000:26;3010:4;3016:2;3020:5;3000:9;:26::i;:::-;3032:65;3041:4;3047:10;3059:37;3090:5;3059:8;:14;3068:4;3059:14;;;;;;;;;;;;;;;:26;3074:10;3059:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;3032:8;:65::i;:::-;3110:4;3103:11;;2879:240;;;;;:::o;3570:212::-;3670:4;3684:76;3693:10;3705:7;3714:45;3748:10;3714:8;:20;3723:10;3714:20;;;;;;;;;;;;;;;:29;3735:7;3714:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;3684:8;:76::i;:::-;3773:4;3766:11;;3570:212;;;;:::o;986:98::-;1041:7;1063:9;:16;1073:5;1063:16;;;;;;;;;;;;;;;;1056:23;;986:98;;;:::o;4238:222::-;4343:4;4357:81;4366:10;4378:7;4387:50;4421:15;4387:8;:20;4396:10;4387:20;;;;;;;;;;;;;;;:29;4408:7;4387:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;4357:8;:81::i;:::-;4451:4;4444:11;;4238:222;;;;:::o;1703:127::-;1764:4;1776:32;1786:10;1798:2;1802:5;1776:9;:32::i;:::-;1821:4;1814:11;;1703:127;;;;:::o;1401:150::-;1498:7;1522:8;:15;1531:5;1522:15;;;;;;;;;;;;;;;:24;1538:7;1522:24;;;;;;;;;;;;;;;;1515:31;;1401:150;;;;:::o;6263:248::-;6374:1;6355:21;;:7;:21;;;;6347:30;;;;;;;;6412:1;6395:19;;:5;:19;;;;6387:28;;;;;;;;6453:5;6426:8;:15;6435:5;6426:15;;;;;;;;;;;;;;;:24;6442:7;6426:24;;;;;;;;;;;;;;;:32;;;;6489:7;6473:31;;6482:5;6473:31;;;6498:5;6473:31;;;;;;;;;;;;;;;;;;6263:248;;;:::o;4660:277::-;4752:9;:15;4762:4;4752:15;;;;;;;;;;;;;;;;4743:5;:24;;4735:33;;;;;;;;4796:1;4782:16;;:2;:16;;;;4774:25;;;;;;;;4824:26;4844:5;4824:9;:15;4834:4;4824:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;4806:9;:15;4816:4;4806:15;;;;;;;;;;;;;;;:44;;;;4872:24;4890:5;4872:9;:13;4882:2;4872:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;4856:9;:13;4866:2;4856:13;;;;;;;;;;;;;;;:40;;;;4922:2;4907:25;;4916:4;4907:25;;;4926:5;4907:25;;;;;;;;;;;;;;;;;;4660:277;;;:::o;1079:131:7:-;1137:7;1173:9;1165:1;1160;:6;;1152:15;;;;;;;;1189:1;1185;:5;1173:17;;1204:1;1197:8;;1079:131;;;;;:::o;1273:::-;1331:7;1346:9;1362:1;1358;:5;1346:17;;1382:1;1377;:6;;1369:15;;;;;;;;1398:1;1391:8;;1273:131;;;;;:::o", "source": "pragma solidity ^0.4.24;\n\nimport \"zos-lib/contracts/Initializable.sol\";\nimport \"./IERC20.sol\";\nimport \"../../math/SafeMath.sol\";\n\n\n/**\n * @title Standard ERC20 token\n *\n * @dev Implementation of the basic standard token.\n * https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\n * Originally based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol\n */\ncontract ERC20 is Initializable, IERC20 {\n using SafeMath for uint256;\n\n mapping (address => uint256) private _balances;\n\n mapping (address => mapping (address => uint256)) private _allowed;\n\n uint256 private _totalSupply;\n\n /**\n * @dev Total number of tokens in existence\n */\n function totalSupply() public view returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param owner The address to query the the balance of.\n * @return An uint256 representing the amount owned by the passed address.\n */\n function balanceOf(address owner) public view returns (uint256) {\n return _balances[owner];\n }\n\n /**\n * @dev Function to check the amount of tokens that an owner allowed to a spender.\n * @param owner address The address which owns the funds.\n * @param spender address The address which will spend the funds.\n * @return A uint256 specifying the amount of tokens still available for the spender.\n */\n function allowance(\n address owner,\n address spender\n )\n public\n view\n returns (uint256)\n {\n return _allowed[owner][spender];\n }\n\n /**\n * @dev Transfer token for a specified address\n * @param to The address to transfer to.\n * @param value The amount to be transferred.\n */\n function transfer(address to, uint256 value) public returns (bool) {\n _transfer(msg.sender, to, value);\n return true;\n }\n\n/**\n * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\n * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\n * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n * @param spender The address which will spend the funds.\n * @param value The amount of tokens to be spent.\n */\n function approve(address spender, uint256 value) public returns (bool) {\n _approve(msg.sender, spender, value);\n return true;\n }\n\n /**\n * @dev Transfer tokens from one address to another\n * @param from address The address which you want to send tokens from\n * @param to address The address which you want to transfer to\n * @param value uint256 the amount of tokens to be transferred\n */\n function transferFrom(\n address from,\n address to,\n uint256 value\n )\n public\n returns (bool)\n { \n _transfer(from, to, value);\n _approve(from, msg.sender, _allowed[from][msg.sender].sub(value));\n return true;\n }\n\n /**\n * @dev Increase the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed_[_spender] == 0. To increment\n * allowed value is better to use this function to avoid 2 calls (and wait until\n * the first transaction is mined)\n * From MonolithDAO Token.sol\n * @param spender The address which will spend the funds.\n * @param addedValue The amount of tokens to increase the allowance by.\n */\n function increaseAllowance(\n address spender,\n uint256 addedValue\n )\n public\n returns (bool)\n {\n _approve(msg.sender, spender, _allowed[msg.sender][spender].add(addedValue));\n return true;\n }\n\n /**\n * @dev Decrease the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed_[_spender] == 0. To decrement\n * allowed value is better to use this function to avoid 2 calls (and wait until\n * the first transaction is mined)\n * From MonolithDAO Token.sol\n * @param spender The address which will spend the funds.\n * @param subtractedValue The amount of tokens to decrease the allowance by.\n */\n function decreaseAllowance(\n address spender,\n uint256 subtractedValue\n )\n public\n returns (bool)\n {\n _approve(msg.sender, spender, _allowed[msg.sender][spender].sub(subtractedValue));\n return true;\n }\n\n /**\n * @dev Transfer token for a specified addresses\n * @param from The address to transfer from.\n * @param to The address to transfer to.\n * @param value The amount to be transferred.\n */\n function _transfer(address from, address to, uint256 value) internal {\n require(value <= _balances[from]);\n require(to != address(0));\n\n _balances[from] = _balances[from].sub(value);\n _balances[to] = _balances[to].add(value);\n emit Transfer(from, to, value);\n }\n\n /**\n * @dev Internal function that mints an amount of the token and assigns it to\n * an account. This encapsulates the modification of balances such that the\n * proper events are emitted.\n * @param account The account that will receive the created tokens.\n * @param amount The amount that will be created.\n */\n function _mint(address account, uint256 amount) internal {\n require(account != 0);\n _totalSupply = _totalSupply.add(amount);\n _balances[account] = _balances[account].add(amount);\n emit Transfer(address(0), account, amount);\n }\n\n /**\n * @dev Internal function that burns an amount of the token of a given\n * account.\n * @param account The account whose tokens will be burnt.\n * @param amount The amount that will be burnt.\n */\n function _burn(address account, uint256 amount) internal {\n require(account != 0);\n require(amount <= _balances[account]);\n\n _totalSupply = _totalSupply.sub(amount);\n _balances[account] = _balances[account].sub(amount);\n emit Transfer(account, address(0), amount);\n }\n\n /**\n * @dev Approve an address to spend another addresses' tokens.\n * @param owner The address that owns the tokens.\n * @param spender The address that will spend the tokens.\n * @param value The number of tokens that can be spent.\n */\n function _approve(address owner, address spender, uint256 value) internal {\n require(spender != address(0));\n require(owner != address(0));\n\n _allowed[owner][spender] = value;\n emit Approval(owner, spender, value);\n }\n /**\n * @dev Internal function that burns an amount of the token of a given\n * account, deducting from the sender's allowance for said account. Uses the\n * internal burn function.\n * @param account The account whose tokens will be burnt.\n * @param value The amount that will be burnt.\n */\n function _burnFrom(address account, uint256 value) internal { \n _burn(account, value);\n _approve(account, msg.sender, _allowed[account][msg.sender].sub(value));\n }\n\n uint256[50] private ______gap;\n}\n", @@ -231,14 +232,14 @@ "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", "exportedSymbols": { "ERC20": [ - 3991 + 1178 ] }, - "id": 3992, + "id": 1179, "nodeType": "SourceUnit", "nodes": [ { - "id": 3591, + "id": 778, "literals": [ "solidity", "^", @@ -251,10 +252,10 @@ { "absolutePath": "zos-lib/contracts/Initializable.sol", "file": "zos-lib/contracts/Initializable.sol", - "id": 3592, + "id": 779, "nodeType": "ImportDirective", - "scope": 3992, - "sourceUnit": 4184, + "scope": 1179, + "sourceUnit": 1433, "src": "26:45:8", "symbolAliases": [], "unitAlias": "" @@ -262,10 +263,10 @@ { "absolutePath": "openzeppelin-eth/contracts/token/ERC20/IERC20.sol", "file": "./IERC20.sol", - "id": 3593, + "id": 780, "nodeType": "ImportDirective", - "scope": 3992, - "sourceUnit": 4128, + "scope": 1179, + "sourceUnit": 1315, "src": "72:22:8", "symbolAliases": [], "unitAlias": "" @@ -273,10 +274,10 @@ { "absolutePath": "openzeppelin-eth/contracts/math/SafeMath.sol", "file": "../../math/SafeMath.sol", - "id": 3594, + "id": 781, "nodeType": "ImportDirective", - "scope": 3992, - "sourceUnit": 3590, + "scope": 1179, + "sourceUnit": 777, "src": "95:33:8", "symbolAliases": [], "unitAlias": "" @@ -287,17 +288,17 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3595, + "id": 782, "name": "Initializable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4183, + "referencedDeclaration": 1432, "src": "434:13:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Initializable_$4183", + "typeIdentifier": "t_contract$_Initializable_$1432", "typeString": "contract Initializable" } }, - "id": 3596, + "id": 783, "nodeType": "InheritanceSpecifier", "src": "434:13:8" }, @@ -305,55 +306,55 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3597, + "id": 784, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4127, + "referencedDeclaration": 1314, "src": "449:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$4127", + "typeIdentifier": "t_contract$_IERC20_$1314", "typeString": "contract IERC20" } }, - "id": 3598, + "id": 785, "nodeType": "InheritanceSpecifier", "src": "449:6:8" } ], "contractDependencies": [ - 4127, - 4183 + 1314, + 1432 ], "contractKind": "contract", "documentation": "@title Standard ERC20 token\n * @dev Implementation of the basic standard token.\nhttps://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\nOriginally based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol", "fullyImplemented": true, - "id": 3991, + "id": 1178, "linearizedBaseContracts": [ - 3991, - 4127, - 4183 + 1178, + 1314, + 1432 ], "name": "ERC20", "nodeType": "ContractDefinition", "nodes": [ { - "id": 3601, + "id": 788, "libraryName": { "contractScope": null, - "id": 3599, + "id": 786, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3589, + "referencedDeclaration": 776, "src": "466:8:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3589", + "typeIdentifier": "t_contract$_SafeMath_$776", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "460:27:8", "typeName": { - "id": 3600, + "id": 787, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "479:7:8", @@ -365,10 +366,10 @@ }, { "constant": false, - "id": 3605, + "id": 792, "name": "_balances", "nodeType": "VariableDeclaration", - "scope": 3991, + "scope": 1178, "src": "491:46:8", "stateVariable": true, "storageLocation": "default", @@ -377,9 +378,9 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 3604, + "id": 791, "keyType": { - "id": 3602, + "id": 789, "name": "address", "nodeType": "ElementaryTypeName", "src": "500:7:8", @@ -395,7 +396,7 @@ "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 3603, + "id": 790, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "511:7:8", @@ -410,10 +411,10 @@ }, { "constant": false, - "id": 3611, + "id": 798, "name": "_allowed", "nodeType": "VariableDeclaration", - "scope": 3991, + "scope": 1178, "src": "542:66:8", "stateVariable": true, "storageLocation": "default", @@ -422,9 +423,9 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 3610, + "id": 797, "keyType": { - "id": 3606, + "id": 793, "name": "address", "nodeType": "ElementaryTypeName", "src": "551:7:8", @@ -440,9 +441,9 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 3609, + "id": 796, "keyType": { - "id": 3607, + "id": 794, "name": "address", "nodeType": "ElementaryTypeName", "src": "571:7:8", @@ -458,7 +459,7 @@ "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 3608, + "id": 795, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "582:7:8", @@ -474,10 +475,10 @@ }, { "constant": false, - "id": 3613, + "id": 800, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 3991, + "scope": 1178, "src": "613:28:8", "stateVariable": true, "storageLocation": "default", @@ -486,7 +487,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3612, + "id": 799, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "613:7:8", @@ -500,33 +501,33 @@ }, { "body": { - "id": 3620, + "id": 807, "nodeType": "Block", "src": "755:30:8", "statements": [ { "expression": { "argumentTypes": null, - "id": 3618, + "id": 805, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3613, + "referencedDeclaration": 800, "src": "768:12:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3617, - "id": 3619, + "functionReturnParameters": 804, + "id": 806, "nodeType": "Return", "src": "761:19:8" } ] }, "documentation": "@dev Total number of tokens in existence", - "id": 3621, + "id": 808, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -534,22 +535,22 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 3614, + "id": 801, "nodeType": "ParameterList", "parameters": [], "src": "722:2:8" }, "payable": false, "returnParameters": { - "id": 3617, + "id": 804, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3616, + "id": 803, "name": "", "nodeType": "VariableDeclaration", - "scope": 3621, + "scope": 808, "src": "746:7:8", "stateVariable": false, "storageLocation": "default", @@ -558,7 +559,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3615, + "id": 802, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "746:7:8", @@ -573,15 +574,15 @@ ], "src": "745:9:8" }, - "scope": 3991, + "scope": 1178, "src": "702:83:8", "stateMutability": "view", - "superFunction": 4065, + "superFunction": 1252, "visibility": "public" }, { "body": { - "id": 3632, + "id": 819, "nodeType": "Block", "src": "1050:34:8", "statements": [ @@ -590,25 +591,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3628, + "id": 815, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3605, + "referencedDeclaration": 792, "src": "1063:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3630, + "id": 817, "indexExpression": { "argumentTypes": null, - "id": 3629, + "id": 816, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3623, + "referencedDeclaration": 810, "src": "1073:5:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -626,15 +627,15 @@ "typeString": "uint256" } }, - "functionReturnParameters": 3627, - "id": 3631, + "functionReturnParameters": 814, + "id": 818, "nodeType": "Return", "src": "1056:23:8" } ] }, "documentation": "@dev Gets the balance of the specified address.\n@param owner The address to query the the balance of.\n@return An uint256 representing the amount owned by the passed address.", - "id": 3633, + "id": 820, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -642,15 +643,15 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 3624, + "id": 811, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3623, + "id": 810, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 3633, + "scope": 820, "src": "1005:13:8", "stateVariable": false, "storageLocation": "default", @@ -659,7 +660,7 @@ "typeString": "address" }, "typeName": { - "id": 3622, + "id": 809, "name": "address", "nodeType": "ElementaryTypeName", "src": "1005:7:8", @@ -676,15 +677,15 @@ }, "payable": false, "returnParameters": { - "id": 3627, + "id": 814, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3626, + "id": 813, "name": "", "nodeType": "VariableDeclaration", - "scope": 3633, + "scope": 820, "src": "1041:7:8", "stateVariable": false, "storageLocation": "default", @@ -693,7 +694,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3625, + "id": 812, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1041:7:8", @@ -708,15 +709,15 @@ ], "src": "1040:9:8" }, - "scope": 3991, + "scope": 1178, "src": "986:98:8", "stateMutability": "view", - "superFunction": 4072, + "superFunction": 1259, "visibility": "public" }, { "body": { - "id": 3648, + "id": 835, "nodeType": "Block", "src": "1509:42:8", "statements": [ @@ -727,25 +728,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3642, + "id": 829, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3611, + "referencedDeclaration": 798, "src": "1522:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3644, + "id": 831, "indexExpression": { "argumentTypes": null, - "id": 3643, + "id": 830, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3635, + "referencedDeclaration": 822, "src": "1531:5:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -763,14 +764,14 @@ "typeString": "mapping(address => uint256)" } }, - "id": 3646, + "id": 833, "indexExpression": { "argumentTypes": null, - "id": 3645, + "id": 832, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3637, + "referencedDeclaration": 824, "src": "1538:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -788,15 +789,15 @@ "typeString": "uint256" } }, - "functionReturnParameters": 3641, - "id": 3647, + "functionReturnParameters": 828, + "id": 834, "nodeType": "Return", "src": "1515:31:8" } ] }, "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\n@param owner address The address which owns the funds.\n@param spender address The address which will spend the funds.\n@return A uint256 specifying the amount of tokens still available for the spender.", - "id": 3649, + "id": 836, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -804,15 +805,15 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3638, + "id": 825, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3635, + "id": 822, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 3649, + "scope": 836, "src": "1425:13:8", "stateVariable": false, "storageLocation": "default", @@ -821,7 +822,7 @@ "typeString": "address" }, "typeName": { - "id": 3634, + "id": 821, "name": "address", "nodeType": "ElementaryTypeName", "src": "1425:7:8", @@ -835,10 +836,10 @@ }, { "constant": false, - "id": 3637, + "id": 824, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3649, + "scope": 836, "src": "1444:15:8", "stateVariable": false, "storageLocation": "default", @@ -847,7 +848,7 @@ "typeString": "address" }, "typeName": { - "id": 3636, + "id": 823, "name": "address", "nodeType": "ElementaryTypeName", "src": "1444:7:8", @@ -864,15 +865,15 @@ }, "payable": false, "returnParameters": { - "id": 3641, + "id": 828, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3640, + "id": 827, "name": "", "nodeType": "VariableDeclaration", - "scope": 3649, + "scope": 836, "src": "1498:7:8", "stateVariable": false, "storageLocation": "default", @@ -881,7 +882,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3639, + "id": 826, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1498:7:8", @@ -896,15 +897,15 @@ ], "src": "1497:9:8" }, - "scope": 3991, + "scope": 1178, "src": "1401:150:8", "stateMutability": "view", - "superFunction": 4081, + "superFunction": 1268, "visibility": "public" }, { "body": { - "id": 3667, + "id": 854, "nodeType": "Block", "src": "1770:60:8", "statements": [ @@ -916,18 +917,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3659, + "id": 846, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4198, + "referencedDeclaration": 1447, "src": "1786:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3660, + "id": 847, "isConstant": false, "isLValue": false, "isPure": false, @@ -943,11 +944,11 @@ }, { "argumentTypes": null, - "id": 3661, + "id": 848, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3651, + "referencedDeclaration": 838, "src": "1798:2:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -956,11 +957,11 @@ }, { "argumentTypes": null, - "id": 3662, + "id": 849, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3653, + "referencedDeclaration": 840, "src": "1802:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -983,18 +984,18 @@ "typeString": "uint256" } ], - "id": 3658, + "id": 845, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3830, + "referencedDeclaration": 1017, "src": "1776:9:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3663, + "id": 850, "isConstant": false, "isLValue": false, "isPure": false, @@ -1008,7 +1009,7 @@ "typeString": "tuple()" } }, - "id": 3664, + "id": 851, "nodeType": "ExpressionStatement", "src": "1776:32:8" }, @@ -1016,7 +1017,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3665, + "id": 852, "isConstant": false, "isLValue": false, "isPure": true, @@ -1031,15 +1032,15 @@ }, "value": "true" }, - "functionReturnParameters": 3657, - "id": 3666, + "functionReturnParameters": 844, + "id": 853, "nodeType": "Return", "src": "1814:11:8" } ] }, "documentation": "@dev Transfer token for a specified address\n@param to The address to transfer to.\n@param value The amount to be transferred.", - "id": 3668, + "id": 855, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1047,15 +1048,15 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3654, + "id": 841, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3651, + "id": 838, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3668, + "scope": 855, "src": "1721:10:8", "stateVariable": false, "storageLocation": "default", @@ -1064,7 +1065,7 @@ "typeString": "address" }, "typeName": { - "id": 3650, + "id": 837, "name": "address", "nodeType": "ElementaryTypeName", "src": "1721:7:8", @@ -1078,10 +1079,10 @@ }, { "constant": false, - "id": 3653, + "id": 840, "name": "value", "nodeType": "VariableDeclaration", - "scope": 3668, + "scope": 855, "src": "1733:13:8", "stateVariable": false, "storageLocation": "default", @@ -1090,7 +1091,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3652, + "id": 839, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1733:7:8", @@ -1107,15 +1108,15 @@ }, "payable": false, "returnParameters": { - "id": 3657, + "id": 844, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3656, + "id": 843, "name": "", "nodeType": "VariableDeclaration", - "scope": 3668, + "scope": 855, "src": "1764:4:8", "stateVariable": false, "storageLocation": "default", @@ -1124,7 +1125,7 @@ "typeString": "bool" }, "typeName": { - "id": 3655, + "id": 842, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1764:4:8", @@ -1139,15 +1140,15 @@ ], "src": "1763:6:8" }, - "scope": 3991, + "scope": 1178, "src": "1703:127:8", "stateMutability": "nonpayable", - "superFunction": 4090, + "superFunction": 1277, "visibility": "public" }, { "body": { - "id": 3686, + "id": 873, "nodeType": "Block", "src": "2533:74:8", "statements": [ @@ -1159,18 +1160,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3678, + "id": 865, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4198, + "referencedDeclaration": 1447, "src": "2552:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3679, + "id": 866, "isConstant": false, "isLValue": false, "isPure": false, @@ -1186,11 +1187,11 @@ }, { "argumentTypes": null, - "id": 3680, + "id": 867, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3670, + "referencedDeclaration": 857, "src": "2564:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1199,11 +1200,11 @@ }, { "argumentTypes": null, - "id": 3681, + "id": 868, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3672, + "referencedDeclaration": 859, "src": "2573:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1226,18 +1227,18 @@ "typeString": "uint256" } ], - "id": 3677, + "id": 864, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3958, + "referencedDeclaration": 1145, "src": "2543:8:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3682, + "id": 869, "isConstant": false, "isLValue": false, "isPure": false, @@ -1251,7 +1252,7 @@ "typeString": "tuple()" } }, - "id": 3683, + "id": 870, "nodeType": "ExpressionStatement", "src": "2543:36:8" }, @@ -1259,7 +1260,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3684, + "id": 871, "isConstant": false, "isLValue": false, "isPure": true, @@ -1274,15 +1275,15 @@ }, "value": "true" }, - "functionReturnParameters": 3676, - "id": 3685, + "functionReturnParameters": 863, + "id": 872, "nodeType": "Return", "src": "2589:11:8" } ] }, "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\nBeware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param spender The address which will spend the funds.\n@param value The amount of tokens to be spent.", - "id": 3687, + "id": 874, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1290,15 +1291,15 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 3673, + "id": 860, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3670, + "id": 857, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3687, + "scope": 874, "src": "2479:15:8", "stateVariable": false, "storageLocation": "default", @@ -1307,7 +1308,7 @@ "typeString": "address" }, "typeName": { - "id": 3669, + "id": 856, "name": "address", "nodeType": "ElementaryTypeName", "src": "2479:7:8", @@ -1321,10 +1322,10 @@ }, { "constant": false, - "id": 3672, + "id": 859, "name": "value", "nodeType": "VariableDeclaration", - "scope": 3687, + "scope": 874, "src": "2496:13:8", "stateVariable": false, "storageLocation": "default", @@ -1333,7 +1334,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3671, + "id": 858, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2496:7:8", @@ -1350,15 +1351,15 @@ }, "payable": false, "returnParameters": { - "id": 3676, + "id": 863, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3675, + "id": 862, "name": "", "nodeType": "VariableDeclaration", - "scope": 3687, + "scope": 874, "src": "2527:4:8", "stateVariable": false, "storageLocation": "default", @@ -1367,7 +1368,7 @@ "typeString": "bool" }, "typeName": { - "id": 3674, + "id": 861, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2527:4:8", @@ -1382,15 +1383,15 @@ ], "src": "2526:6:8" }, - "scope": 3991, + "scope": 1178, "src": "2462:145:8", "stateMutability": "nonpayable", - "superFunction": 4099, + "superFunction": 1286, "visibility": "public" }, { "body": { - "id": 3721, + "id": 908, "nodeType": "Block", "src": "2990:129:8", "statements": [ @@ -1400,11 +1401,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3699, + "id": 886, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3689, + "referencedDeclaration": 876, "src": "3010:4:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1413,11 +1414,11 @@ }, { "argumentTypes": null, - "id": 3700, + "id": 887, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3691, + "referencedDeclaration": 878, "src": "3016:2:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1426,11 +1427,11 @@ }, { "argumentTypes": null, - "id": 3701, + "id": 888, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3693, + "referencedDeclaration": 880, "src": "3020:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1453,18 +1454,18 @@ "typeString": "uint256" } ], - "id": 3698, + "id": 885, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3830, + "referencedDeclaration": 1017, "src": "3000:9:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3702, + "id": 889, "isConstant": false, "isLValue": false, "isPure": false, @@ -1478,7 +1479,7 @@ "typeString": "tuple()" } }, - "id": 3703, + "id": 890, "nodeType": "ExpressionStatement", "src": "3000:26:8" }, @@ -1488,11 +1489,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3705, + "id": 892, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3689, + "referencedDeclaration": 876, "src": "3041:4:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1503,18 +1504,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3706, + "id": 893, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4198, + "referencedDeclaration": 1447, "src": "3047:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3707, + "id": 894, "isConstant": false, "isLValue": false, "isPure": false, @@ -1533,11 +1534,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3715, + "id": 902, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3693, + "referencedDeclaration": 880, "src": "3090:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1558,25 +1559,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3708, + "id": 895, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3611, + "referencedDeclaration": 798, "src": "3059:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3710, + "id": 897, "indexExpression": { "argumentTypes": null, - "id": 3709, + "id": 896, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3689, + "referencedDeclaration": 876, "src": "3068:4:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1594,23 +1595,23 @@ "typeString": "mapping(address => uint256)" } }, - "id": 3713, + "id": 900, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3711, + "id": 898, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4198, + "referencedDeclaration": 1447, "src": "3074:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3712, + "id": 899, "isConstant": false, "isLValue": false, "isPure": false, @@ -1635,21 +1636,21 @@ "typeString": "uint256" } }, - "id": 3714, + "id": 901, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3544, + "referencedDeclaration": 731, "src": "3059:30:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3716, + "id": 903, "isConstant": false, "isLValue": false, "isPure": false, @@ -1679,18 +1680,18 @@ "typeString": "uint256" } ], - "id": 3704, + "id": 891, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3958, + "referencedDeclaration": 1145, "src": "3032:8:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3717, + "id": 904, "isConstant": false, "isLValue": false, "isPure": false, @@ -1704,7 +1705,7 @@ "typeString": "tuple()" } }, - "id": 3718, + "id": 905, "nodeType": "ExpressionStatement", "src": "3032:65:8" }, @@ -1712,7 +1713,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3719, + "id": 906, "isConstant": false, "isLValue": false, "isPure": true, @@ -1727,15 +1728,15 @@ }, "value": "true" }, - "functionReturnParameters": 3697, - "id": 3720, + "functionReturnParameters": 884, + "id": 907, "nodeType": "Return", "src": "3103:11:8" } ] }, "documentation": "@dev Transfer tokens from one address to another\n@param from address The address which you want to send tokens from\n@param to address The address which you want to transfer to\n@param value uint256 the amount of tokens to be transferred", - "id": 3722, + "id": 909, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1743,15 +1744,15 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 3694, + "id": 881, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3689, + "id": 876, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3722, + "scope": 909, "src": "2906:12:8", "stateVariable": false, "storageLocation": "default", @@ -1760,7 +1761,7 @@ "typeString": "address" }, "typeName": { - "id": 3688, + "id": 875, "name": "address", "nodeType": "ElementaryTypeName", "src": "2906:7:8", @@ -1774,10 +1775,10 @@ }, { "constant": false, - "id": 3691, + "id": 878, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3722, + "scope": 909, "src": "2924:10:8", "stateVariable": false, "storageLocation": "default", @@ -1786,7 +1787,7 @@ "typeString": "address" }, "typeName": { - "id": 3690, + "id": 877, "name": "address", "nodeType": "ElementaryTypeName", "src": "2924:7:8", @@ -1800,10 +1801,10 @@ }, { "constant": false, - "id": 3693, + "id": 880, "name": "value", "nodeType": "VariableDeclaration", - "scope": 3722, + "scope": 909, "src": "2940:13:8", "stateVariable": false, "storageLocation": "default", @@ -1812,7 +1813,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3692, + "id": 879, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2940:7:8", @@ -1829,15 +1830,15 @@ }, "payable": false, "returnParameters": { - "id": 3697, + "id": 884, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3696, + "id": 883, "name": "", "nodeType": "VariableDeclaration", - "scope": 3722, + "scope": 909, "src": "2982:4:8", "stateVariable": false, "storageLocation": "default", @@ -1846,7 +1847,7 @@ "typeString": "bool" }, "typeName": { - "id": 3695, + "id": 882, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2982:4:8", @@ -1861,15 +1862,15 @@ ], "src": "2981:6:8" }, - "scope": 3991, + "scope": 1178, "src": "2879:240:8", "stateMutability": "nonpayable", - "superFunction": 4110, + "superFunction": 1297, "visibility": "public" }, { "body": { - "id": 3748, + "id": 935, "nodeType": "Block", "src": "3678:104:8", "statements": [ @@ -1881,18 +1882,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3732, + "id": 919, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4198, + "referencedDeclaration": 1447, "src": "3693:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3733, + "id": 920, "isConstant": false, "isLValue": false, "isPure": false, @@ -1908,11 +1909,11 @@ }, { "argumentTypes": null, - "id": 3734, + "id": 921, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, + "referencedDeclaration": 911, "src": "3705:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1924,11 +1925,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3742, + "id": 929, "name": "addedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3726, + "referencedDeclaration": 913, "src": "3748:10:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1949,34 +1950,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3735, + "id": 922, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3611, + "referencedDeclaration": 798, "src": "3714:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3738, + "id": 925, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3736, + "id": 923, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4198, + "referencedDeclaration": 1447, "src": "3723:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3737, + "id": 924, "isConstant": false, "isLValue": false, "isPure": false, @@ -2001,14 +2002,14 @@ "typeString": "mapping(address => uint256)" } }, - "id": 3740, + "id": 927, "indexExpression": { "argumentTypes": null, - "id": 3739, + "id": 926, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3724, + "referencedDeclaration": 911, "src": "3735:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2026,21 +2027,21 @@ "typeString": "uint256" } }, - "id": 3741, + "id": 928, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3568, + "referencedDeclaration": 755, "src": "3714:33:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3743, + "id": 930, "isConstant": false, "isLValue": false, "isPure": false, @@ -2070,18 +2071,18 @@ "typeString": "uint256" } ], - "id": 3731, + "id": 918, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3958, + "referencedDeclaration": 1145, "src": "3684:8:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3744, + "id": 931, "isConstant": false, "isLValue": false, "isPure": false, @@ -2095,7 +2096,7 @@ "typeString": "tuple()" } }, - "id": 3745, + "id": 932, "nodeType": "ExpressionStatement", "src": "3684:76:8" }, @@ -2103,7 +2104,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3746, + "id": 933, "isConstant": false, "isLValue": false, "isPure": true, @@ -2118,15 +2119,15 @@ }, "value": "true" }, - "functionReturnParameters": 3730, - "id": 3747, + "functionReturnParameters": 917, + "id": 934, "nodeType": "Return", "src": "3766:11:8" } ] }, "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\napprove should be called when allowed_[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param spender The address which will spend the funds.\n@param addedValue The amount of tokens to increase the allowance by.", - "id": 3749, + "id": 936, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2134,15 +2135,15 @@ "name": "increaseAllowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3727, + "id": 914, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3724, + "id": 911, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3749, + "scope": 936, "src": "3602:15:8", "stateVariable": false, "storageLocation": "default", @@ -2151,7 +2152,7 @@ "typeString": "address" }, "typeName": { - "id": 3723, + "id": 910, "name": "address", "nodeType": "ElementaryTypeName", "src": "3602:7:8", @@ -2165,10 +2166,10 @@ }, { "constant": false, - "id": 3726, + "id": 913, "name": "addedValue", "nodeType": "VariableDeclaration", - "scope": 3749, + "scope": 936, "src": "3623:18:8", "stateVariable": false, "storageLocation": "default", @@ -2177,7 +2178,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3725, + "id": 912, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3623:7:8", @@ -2194,15 +2195,15 @@ }, "payable": false, "returnParameters": { - "id": 3730, + "id": 917, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3729, + "id": 916, "name": "", "nodeType": "VariableDeclaration", - "scope": 3749, + "scope": 936, "src": "3670:4:8", "stateVariable": false, "storageLocation": "default", @@ -2211,7 +2212,7 @@ "typeString": "bool" }, "typeName": { - "id": 3728, + "id": 915, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3670:4:8", @@ -2226,7 +2227,7 @@ ], "src": "3669:6:8" }, - "scope": 3991, + "scope": 1178, "src": "3570:212:8", "stateMutability": "nonpayable", "superFunction": null, @@ -2234,7 +2235,7 @@ }, { "body": { - "id": 3775, + "id": 962, "nodeType": "Block", "src": "4351:109:8", "statements": [ @@ -2246,18 +2247,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3759, + "id": 946, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4198, + "referencedDeclaration": 1447, "src": "4366:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3760, + "id": 947, "isConstant": false, "isLValue": false, "isPure": false, @@ -2273,11 +2274,11 @@ }, { "argumentTypes": null, - "id": 3761, + "id": 948, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3751, + "referencedDeclaration": 938, "src": "4378:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2289,11 +2290,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3769, + "id": 956, "name": "subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3753, + "referencedDeclaration": 940, "src": "4421:15:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2314,34 +2315,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3762, + "id": 949, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3611, + "referencedDeclaration": 798, "src": "4387:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3765, + "id": 952, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3763, + "id": 950, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4198, + "referencedDeclaration": 1447, "src": "4396:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3764, + "id": 951, "isConstant": false, "isLValue": false, "isPure": false, @@ -2366,14 +2367,14 @@ "typeString": "mapping(address => uint256)" } }, - "id": 3767, + "id": 954, "indexExpression": { "argumentTypes": null, - "id": 3766, + "id": 953, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3751, + "referencedDeclaration": 938, "src": "4408:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2391,21 +2392,21 @@ "typeString": "uint256" } }, - "id": 3768, + "id": 955, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3544, + "referencedDeclaration": 731, "src": "4387:33:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3770, + "id": 957, "isConstant": false, "isLValue": false, "isPure": false, @@ -2435,18 +2436,18 @@ "typeString": "uint256" } ], - "id": 3758, + "id": 945, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3958, + "referencedDeclaration": 1145, "src": "4357:8:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3771, + "id": 958, "isConstant": false, "isLValue": false, "isPure": false, @@ -2460,7 +2461,7 @@ "typeString": "tuple()" } }, - "id": 3772, + "id": 959, "nodeType": "ExpressionStatement", "src": "4357:81:8" }, @@ -2468,7 +2469,7 @@ "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 3773, + "id": 960, "isConstant": false, "isLValue": false, "isPure": true, @@ -2483,15 +2484,15 @@ }, "value": "true" }, - "functionReturnParameters": 3757, - "id": 3774, + "functionReturnParameters": 944, + "id": 961, "nodeType": "Return", "src": "4444:11:8" } ] }, "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\napprove should be called when allowed_[_spender] == 0. To decrement\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param spender The address which will spend the funds.\n@param subtractedValue The amount of tokens to decrease the allowance by.", - "id": 3776, + "id": 963, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2499,15 +2500,15 @@ "name": "decreaseAllowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 3754, + "id": 941, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3751, + "id": 938, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3776, + "scope": 963, "src": "4270:15:8", "stateVariable": false, "storageLocation": "default", @@ -2516,7 +2517,7 @@ "typeString": "address" }, "typeName": { - "id": 3750, + "id": 937, "name": "address", "nodeType": "ElementaryTypeName", "src": "4270:7:8", @@ -2530,10 +2531,10 @@ }, { "constant": false, - "id": 3753, + "id": 940, "name": "subtractedValue", "nodeType": "VariableDeclaration", - "scope": 3776, + "scope": 963, "src": "4291:23:8", "stateVariable": false, "storageLocation": "default", @@ -2542,7 +2543,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3752, + "id": 939, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4291:7:8", @@ -2559,15 +2560,15 @@ }, "payable": false, "returnParameters": { - "id": 3757, + "id": 944, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3756, + "id": 943, "name": "", "nodeType": "VariableDeclaration", - "scope": 3776, + "scope": 963, "src": "4343:4:8", "stateVariable": false, "storageLocation": "default", @@ -2576,7 +2577,7 @@ "typeString": "bool" }, "typeName": { - "id": 3755, + "id": 942, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4343:4:8", @@ -2591,7 +2592,7 @@ ], "src": "4342:6:8" }, - "scope": 3991, + "scope": 1178, "src": "4238:222:8", "stateMutability": "nonpayable", "superFunction": null, @@ -2599,7 +2600,7 @@ }, { "body": { - "id": 3829, + "id": 1016, "nodeType": "Block", "src": "4729:208:8", "statements": [ @@ -2613,18 +2614,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3790, + "id": 977, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3786, + "id": 973, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3782, + "referencedDeclaration": 969, "src": "4743:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2637,25 +2638,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3787, + "id": 974, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3605, + "referencedDeclaration": 792, "src": "4752:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3789, + "id": 976, "indexExpression": { "argumentTypes": null, - "id": 3788, + "id": 975, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3778, + "referencedDeclaration": 965, "src": "4762:4:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2687,21 +2688,21 @@ "typeString": "bool" } ], - "id": 3785, + "id": 972, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4201, - 4202 + 1450, + 1451 ], - "referencedDeclaration": 4201, + "referencedDeclaration": 1450, "src": "4735:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3791, + "id": 978, "isConstant": false, "isLValue": false, "isPure": false, @@ -2715,7 +2716,7 @@ "typeString": "tuple()" } }, - "id": 3792, + "id": 979, "nodeType": "ExpressionStatement", "src": "4735:33:8" }, @@ -2729,18 +2730,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3798, + "id": 985, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3794, + "id": 981, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 967, "src": "4782:2:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2755,7 +2756,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3796, + "id": 983, "isConstant": false, "isLValue": false, "isPure": true, @@ -2778,7 +2779,7 @@ "typeString": "int_const 0" } ], - "id": 3795, + "id": 982, "isConstant": false, "isLValue": false, "isPure": true, @@ -2791,7 +2792,7 @@ }, "typeName": "address" }, - "id": 3797, + "id": 984, "isConstant": false, "isLValue": false, "isPure": true, @@ -2819,21 +2820,21 @@ "typeString": "bool" } ], - "id": 3793, + "id": 980, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4201, - 4202 + 1450, + 1451 ], - "referencedDeclaration": 4201, + "referencedDeclaration": 1450, "src": "4774:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3799, + "id": 986, "isConstant": false, "isLValue": false, "isPure": false, @@ -2847,14 +2848,14 @@ "typeString": "tuple()" } }, - "id": 3800, + "id": 987, "nodeType": "ExpressionStatement", "src": "4774:25:8" }, { "expression": { "argumentTypes": null, - "id": 3810, + "id": 997, "isConstant": false, "isLValue": false, "isPure": false, @@ -2863,25 +2864,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3801, + "id": 988, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3605, + "referencedDeclaration": 792, "src": "4806:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3803, + "id": 990, "indexExpression": { "argumentTypes": null, - "id": 3802, + "id": 989, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3778, + "referencedDeclaration": 965, "src": "4816:4:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2906,11 +2907,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3808, + "id": 995, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3782, + "referencedDeclaration": 969, "src": "4844:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2929,25 +2930,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3804, + "id": 991, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3605, + "referencedDeclaration": 792, "src": "4824:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3806, + "id": 993, "indexExpression": { "argumentTypes": null, - "id": 3805, + "id": 992, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3778, + "referencedDeclaration": 965, "src": "4834:4:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2965,21 +2966,21 @@ "typeString": "uint256" } }, - "id": 3807, + "id": 994, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3544, + "referencedDeclaration": 731, "src": "4824:19:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3809, + "id": 996, "isConstant": false, "isLValue": false, "isPure": false, @@ -2999,14 +3000,14 @@ "typeString": "uint256" } }, - "id": 3811, + "id": 998, "nodeType": "ExpressionStatement", "src": "4806:44:8" }, { "expression": { "argumentTypes": null, - "id": 3821, + "id": 1008, "isConstant": false, "isLValue": false, "isPure": false, @@ -3015,25 +3016,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3812, + "id": 999, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3605, + "referencedDeclaration": 792, "src": "4856:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3814, + "id": 1001, "indexExpression": { "argumentTypes": null, - "id": 3813, + "id": 1000, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 967, "src": "4866:2:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3058,11 +3059,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3819, + "id": 1006, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3782, + "referencedDeclaration": 969, "src": "4890:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3081,25 +3082,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3815, + "id": 1002, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3605, + "referencedDeclaration": 792, "src": "4872:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3817, + "id": 1004, "indexExpression": { "argumentTypes": null, - "id": 3816, + "id": 1003, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 967, "src": "4882:2:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3117,21 +3118,21 @@ "typeString": "uint256" } }, - "id": 3818, + "id": 1005, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3568, + "referencedDeclaration": 755, "src": "4872:17:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3820, + "id": 1007, "isConstant": false, "isLValue": false, "isPure": false, @@ -3151,7 +3152,7 @@ "typeString": "uint256" } }, - "id": 3822, + "id": 1009, "nodeType": "ExpressionStatement", "src": "4856:40:8" }, @@ -3161,11 +3162,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3824, + "id": 1011, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3778, + "referencedDeclaration": 965, "src": "4916:4:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3174,11 +3175,11 @@ }, { "argumentTypes": null, - "id": 3825, + "id": 1012, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3780, + "referencedDeclaration": 967, "src": "4922:2:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3187,11 +3188,11 @@ }, { "argumentTypes": null, - "id": 3826, + "id": 1013, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3782, + "referencedDeclaration": 969, "src": "4926:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3214,18 +3215,18 @@ "typeString": "uint256" } ], - "id": 3823, + "id": 1010, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4118, + "referencedDeclaration": 1305, "src": "4907:8:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3827, + "id": 1014, "isConstant": false, "isLValue": false, "isPure": false, @@ -3239,14 +3240,14 @@ "typeString": "tuple()" } }, - "id": 3828, + "id": 1015, "nodeType": "EmitStatement", "src": "4902:30:8" } ] }, "documentation": "@dev Transfer token for a specified addresses\n@param from The address to transfer from.\n@param to The address to transfer to.\n@param value The amount to be transferred.", - "id": 3830, + "id": 1017, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3254,15 +3255,15 @@ "name": "_transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 3783, + "id": 970, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3778, + "id": 965, "name": "from", "nodeType": "VariableDeclaration", - "scope": 3830, + "scope": 1017, "src": "4679:12:8", "stateVariable": false, "storageLocation": "default", @@ -3271,7 +3272,7 @@ "typeString": "address" }, "typeName": { - "id": 3777, + "id": 964, "name": "address", "nodeType": "ElementaryTypeName", "src": "4679:7:8", @@ -3285,10 +3286,10 @@ }, { "constant": false, - "id": 3780, + "id": 967, "name": "to", "nodeType": "VariableDeclaration", - "scope": 3830, + "scope": 1017, "src": "4693:10:8", "stateVariable": false, "storageLocation": "default", @@ -3297,7 +3298,7 @@ "typeString": "address" }, "typeName": { - "id": 3779, + "id": 966, "name": "address", "nodeType": "ElementaryTypeName", "src": "4693:7:8", @@ -3311,10 +3312,10 @@ }, { "constant": false, - "id": 3782, + "id": 969, "name": "value", "nodeType": "VariableDeclaration", - "scope": 3830, + "scope": 1017, "src": "4705:13:8", "stateVariable": false, "storageLocation": "default", @@ -3323,7 +3324,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3781, + "id": 968, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4705:7:8", @@ -3340,12 +3341,12 @@ }, "payable": false, "returnParameters": { - "id": 3784, + "id": 971, "nodeType": "ParameterList", "parameters": [], "src": "4729:0:8" }, - "scope": 3991, + "scope": 1178, "src": "4660:277:8", "stateMutability": "nonpayable", "superFunction": null, @@ -3353,7 +3354,7 @@ }, { "body": { - "id": 3869, + "id": 1056, "nodeType": "Block", "src": "5322:182:8", "statements": [ @@ -3367,18 +3368,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3840, + "id": 1027, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3838, + "id": 1025, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3832, + "referencedDeclaration": 1019, "src": "5336:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3390,7 +3391,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3839, + "id": 1026, "isConstant": false, "isLValue": false, "isPure": true, @@ -3419,21 +3420,21 @@ "typeString": "bool" } ], - "id": 3837, + "id": 1024, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4201, - 4202 + 1450, + 1451 ], - "referencedDeclaration": 4201, + "referencedDeclaration": 1450, "src": "5328:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3841, + "id": 1028, "isConstant": false, "isLValue": false, "isPure": false, @@ -3447,25 +3448,25 @@ "typeString": "tuple()" } }, - "id": 3842, + "id": 1029, "nodeType": "ExpressionStatement", "src": "5328:21:8" }, { "expression": { "argumentTypes": null, - "id": 3848, + "id": 1035, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3843, + "id": 1030, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3613, + "referencedDeclaration": 800, "src": "5355:12:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3479,11 +3480,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3846, + "id": 1033, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3834, + "referencedDeclaration": 1021, "src": "5387:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3500,32 +3501,32 @@ ], "expression": { "argumentTypes": null, - "id": 3844, + "id": 1031, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3613, + "referencedDeclaration": 800, "src": "5370:12:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3845, + "id": 1032, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3568, + "referencedDeclaration": 755, "src": "5370:16:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3847, + "id": 1034, "isConstant": false, "isLValue": false, "isPure": false, @@ -3545,14 +3546,14 @@ "typeString": "uint256" } }, - "id": 3849, + "id": 1036, "nodeType": "ExpressionStatement", "src": "5355:39:8" }, { "expression": { "argumentTypes": null, - "id": 3859, + "id": 1046, "isConstant": false, "isLValue": false, "isPure": false, @@ -3561,25 +3562,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3850, + "id": 1037, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3605, + "referencedDeclaration": 792, "src": "5400:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3852, + "id": 1039, "indexExpression": { "argumentTypes": null, - "id": 3851, + "id": 1038, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3832, + "referencedDeclaration": 1019, "src": "5410:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3604,11 +3605,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3857, + "id": 1044, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3834, + "referencedDeclaration": 1021, "src": "5444:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3627,25 +3628,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3853, + "id": 1040, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3605, + "referencedDeclaration": 792, "src": "5421:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3855, + "id": 1042, "indexExpression": { "argumentTypes": null, - "id": 3854, + "id": 1041, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3832, + "referencedDeclaration": 1019, "src": "5431:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3663,21 +3664,21 @@ "typeString": "uint256" } }, - "id": 3856, + "id": 1043, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 3568, + "referencedDeclaration": 755, "src": "5421:22:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3858, + "id": 1045, "isConstant": false, "isLValue": false, "isPure": false, @@ -3697,7 +3698,7 @@ "typeString": "uint256" } }, - "id": 3860, + "id": 1047, "nodeType": "ExpressionStatement", "src": "5400:51:8" }, @@ -3711,7 +3712,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3863, + "id": 1050, "isConstant": false, "isLValue": false, "isPure": true, @@ -3734,7 +3735,7 @@ "typeString": "int_const 0" } ], - "id": 3862, + "id": 1049, "isConstant": false, "isLValue": false, "isPure": true, @@ -3747,7 +3748,7 @@ }, "typeName": "address" }, - "id": 3864, + "id": 1051, "isConstant": false, "isLValue": false, "isPure": true, @@ -3763,11 +3764,11 @@ }, { "argumentTypes": null, - "id": 3865, + "id": 1052, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3832, + "referencedDeclaration": 1019, "src": "5483:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3776,11 +3777,11 @@ }, { "argumentTypes": null, - "id": 3866, + "id": 1053, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3834, + "referencedDeclaration": 1021, "src": "5492:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3803,18 +3804,18 @@ "typeString": "uint256" } ], - "id": 3861, + "id": 1048, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4118, + "referencedDeclaration": 1305, "src": "5462:8:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3867, + "id": 1054, "isConstant": false, "isLValue": false, "isPure": false, @@ -3828,14 +3829,14 @@ "typeString": "tuple()" } }, - "id": 3868, + "id": 1055, "nodeType": "EmitStatement", "src": "5457:42:8" } ] }, "documentation": "@dev Internal function that mints an amount of the token and assigns it to\nan account. This encapsulates the modification of balances such that the\nproper events are emitted.\n@param account The account that will receive the created tokens.\n@param amount The amount that will be created.", - "id": 3870, + "id": 1057, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3843,15 +3844,15 @@ "name": "_mint", "nodeType": "FunctionDefinition", "parameters": { - "id": 3835, + "id": 1022, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3832, + "id": 1019, "name": "account", "nodeType": "VariableDeclaration", - "scope": 3870, + "scope": 1057, "src": "5280:15:8", "stateVariable": false, "storageLocation": "default", @@ -3860,7 +3861,7 @@ "typeString": "address" }, "typeName": { - "id": 3831, + "id": 1018, "name": "address", "nodeType": "ElementaryTypeName", "src": "5280:7:8", @@ -3874,10 +3875,10 @@ }, { "constant": false, - "id": 3834, + "id": 1021, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 3870, + "scope": 1057, "src": "5297:14:8", "stateVariable": false, "storageLocation": "default", @@ -3886,7 +3887,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3833, + "id": 1020, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5297:7:8", @@ -3903,12 +3904,12 @@ }, "payable": false, "returnParameters": { - "id": 3836, + "id": 1023, "nodeType": "ParameterList", "parameters": [], "src": "5322:0:8" }, - "scope": 3991, + "scope": 1178, "src": "5265:239:8", "stateMutability": "nonpayable", "superFunction": null, @@ -3916,7 +3917,7 @@ }, { "body": { - "id": 3917, + "id": 1104, "nodeType": "Block", "src": "5774:226:8", "statements": [ @@ -3930,18 +3931,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3880, + "id": 1067, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3878, + "id": 1065, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3872, + "referencedDeclaration": 1059, "src": "5788:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3953,7 +3954,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3879, + "id": 1066, "isConstant": false, "isLValue": false, "isPure": true, @@ -3982,21 +3983,21 @@ "typeString": "bool" } ], - "id": 3877, + "id": 1064, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4201, - 4202 + 1450, + 1451 ], - "referencedDeclaration": 4201, + "referencedDeclaration": 1450, "src": "5780:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3881, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, @@ -4010,7 +4011,7 @@ "typeString": "tuple()" } }, - "id": 3882, + "id": 1069, "nodeType": "ExpressionStatement", "src": "5780:21:8" }, @@ -4024,18 +4025,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3888, + "id": 1075, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3884, + "id": 1071, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3874, + "referencedDeclaration": 1061, "src": "5815:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4048,25 +4049,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3885, + "id": 1072, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3605, + "referencedDeclaration": 792, "src": "5825:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3887, + "id": 1074, "indexExpression": { "argumentTypes": null, - "id": 3886, + "id": 1073, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3872, + "referencedDeclaration": 1059, "src": "5835:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4098,21 +4099,21 @@ "typeString": "bool" } ], - "id": 3883, + "id": 1070, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4201, - 4202 + 1450, + 1451 ], - "referencedDeclaration": 4201, + "referencedDeclaration": 1450, "src": "5807:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3889, + "id": 1076, "isConstant": false, "isLValue": false, "isPure": false, @@ -4126,25 +4127,25 @@ "typeString": "tuple()" } }, - "id": 3890, + "id": 1077, "nodeType": "ExpressionStatement", "src": "5807:37:8" }, { "expression": { "argumentTypes": null, - "id": 3896, + "id": 1083, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 3891, + "id": 1078, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3613, + "referencedDeclaration": 800, "src": "5851:12:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4158,11 +4159,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3894, + "id": 1081, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3874, + "referencedDeclaration": 1061, "src": "5883:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4179,32 +4180,32 @@ ], "expression": { "argumentTypes": null, - "id": 3892, + "id": 1079, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3613, + "referencedDeclaration": 800, "src": "5866:12:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3893, + "id": 1080, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3544, + "referencedDeclaration": 731, "src": "5866:16:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3895, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, @@ -4224,14 +4225,14 @@ "typeString": "uint256" } }, - "id": 3897, + "id": 1084, "nodeType": "ExpressionStatement", "src": "5851:39:8" }, { "expression": { "argumentTypes": null, - "id": 3907, + "id": 1094, "isConstant": false, "isLValue": false, "isPure": false, @@ -4240,25 +4241,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3898, + "id": 1085, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3605, + "referencedDeclaration": 792, "src": "5896:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3900, + "id": 1087, "indexExpression": { "argumentTypes": null, - "id": 3899, + "id": 1086, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3872, + "referencedDeclaration": 1059, "src": "5906:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4283,11 +4284,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3905, + "id": 1092, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3874, + "referencedDeclaration": 1061, "src": "5940:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4306,25 +4307,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3901, + "id": 1088, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3605, + "referencedDeclaration": 792, "src": "5917:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 3903, + "id": 1090, "indexExpression": { "argumentTypes": null, - "id": 3902, + "id": 1089, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3872, + "referencedDeclaration": 1059, "src": "5927:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4342,21 +4343,21 @@ "typeString": "uint256" } }, - "id": 3904, + "id": 1091, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3544, + "referencedDeclaration": 731, "src": "5917:22:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3906, + "id": 1093, "isConstant": false, "isLValue": false, "isPure": false, @@ -4376,7 +4377,7 @@ "typeString": "uint256" } }, - "id": 3908, + "id": 1095, "nodeType": "ExpressionStatement", "src": "5896:51:8" }, @@ -4386,11 +4387,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3910, + "id": 1097, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3872, + "referencedDeclaration": 1059, "src": "5967:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4403,7 +4404,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3912, + "id": 1099, "isConstant": false, "isLValue": false, "isPure": true, @@ -4426,7 +4427,7 @@ "typeString": "int_const 0" } ], - "id": 3911, + "id": 1098, "isConstant": false, "isLValue": false, "isPure": true, @@ -4439,7 +4440,7 @@ }, "typeName": "address" }, - "id": 3913, + "id": 1100, "isConstant": false, "isLValue": false, "isPure": true, @@ -4455,11 +4456,11 @@ }, { "argumentTypes": null, - "id": 3914, + "id": 1101, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3874, + "referencedDeclaration": 1061, "src": "5988:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4482,18 +4483,18 @@ "typeString": "uint256" } ], - "id": 3909, + "id": 1096, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4118, + "referencedDeclaration": 1305, "src": "5958:8:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3915, + "id": 1102, "isConstant": false, "isLValue": false, "isPure": false, @@ -4507,14 +4508,14 @@ "typeString": "tuple()" } }, - "id": 3916, + "id": 1103, "nodeType": "EmitStatement", "src": "5953:42:8" } ] }, "documentation": "@dev Internal function that burns an amount of the token of a given\naccount.\n@param account The account whose tokens will be burnt.\n@param amount The amount that will be burnt.", - "id": 3918, + "id": 1105, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4522,15 +4523,15 @@ "name": "_burn", "nodeType": "FunctionDefinition", "parameters": { - "id": 3875, + "id": 1062, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3872, + "id": 1059, "name": "account", "nodeType": "VariableDeclaration", - "scope": 3918, + "scope": 1105, "src": "5732:15:8", "stateVariable": false, "storageLocation": "default", @@ -4539,7 +4540,7 @@ "typeString": "address" }, "typeName": { - "id": 3871, + "id": 1058, "name": "address", "nodeType": "ElementaryTypeName", "src": "5732:7:8", @@ -4553,10 +4554,10 @@ }, { "constant": false, - "id": 3874, + "id": 1061, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 3918, + "scope": 1105, "src": "5749:14:8", "stateVariable": false, "storageLocation": "default", @@ -4565,7 +4566,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3873, + "id": 1060, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5749:7:8", @@ -4582,12 +4583,12 @@ }, "payable": false, "returnParameters": { - "id": 3876, + "id": 1063, "nodeType": "ParameterList", "parameters": [], "src": "5774:0:8" }, - "scope": 3991, + "scope": 1178, "src": "5717:283:8", "stateMutability": "nonpayable", "superFunction": null, @@ -4595,7 +4596,7 @@ }, { "body": { - "id": 3957, + "id": 1144, "nodeType": "Block", "src": "6337:174:8", "statements": [ @@ -4609,18 +4610,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3932, + "id": 1119, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3928, + "id": 1115, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3922, + "referencedDeclaration": 1109, "src": "6355:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4635,7 +4636,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3930, + "id": 1117, "isConstant": false, "isLValue": false, "isPure": true, @@ -4658,7 +4659,7 @@ "typeString": "int_const 0" } ], - "id": 3929, + "id": 1116, "isConstant": false, "isLValue": false, "isPure": true, @@ -4671,7 +4672,7 @@ }, "typeName": "address" }, - "id": 3931, + "id": 1118, "isConstant": false, "isLValue": false, "isPure": true, @@ -4699,21 +4700,21 @@ "typeString": "bool" } ], - "id": 3927, + "id": 1114, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4201, - 4202 + 1450, + 1451 ], - "referencedDeclaration": 4201, + "referencedDeclaration": 1450, "src": "6347:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3933, + "id": 1120, "isConstant": false, "isLValue": false, "isPure": false, @@ -4727,7 +4728,7 @@ "typeString": "tuple()" } }, - "id": 3934, + "id": 1121, "nodeType": "ExpressionStatement", "src": "6347:30:8" }, @@ -4741,18 +4742,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 3940, + "id": 1127, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3936, + "id": 1123, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3920, + "referencedDeclaration": 1107, "src": "6395:5:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4767,7 +4768,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 3938, + "id": 1125, "isConstant": false, "isLValue": false, "isPure": true, @@ -4790,7 +4791,7 @@ "typeString": "int_const 0" } ], - "id": 3937, + "id": 1124, "isConstant": false, "isLValue": false, "isPure": true, @@ -4803,7 +4804,7 @@ }, "typeName": "address" }, - "id": 3939, + "id": 1126, "isConstant": false, "isLValue": false, "isPure": true, @@ -4831,21 +4832,21 @@ "typeString": "bool" } ], - "id": 3935, + "id": 1122, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4201, - 4202 + 1450, + 1451 ], - "referencedDeclaration": 4201, + "referencedDeclaration": 1450, "src": "6387:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3941, + "id": 1128, "isConstant": false, "isLValue": false, "isPure": false, @@ -4859,14 +4860,14 @@ "typeString": "tuple()" } }, - "id": 3942, + "id": 1129, "nodeType": "ExpressionStatement", "src": "6387:28:8" }, { "expression": { "argumentTypes": null, - "id": 3949, + "id": 1136, "isConstant": false, "isLValue": false, "isPure": false, @@ -4877,25 +4878,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3943, + "id": 1130, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3611, + "referencedDeclaration": 798, "src": "6426:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3946, + "id": 1133, "indexExpression": { "argumentTypes": null, - "id": 3944, + "id": 1131, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3920, + "referencedDeclaration": 1107, "src": "6435:5:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4913,14 +4914,14 @@ "typeString": "mapping(address => uint256)" } }, - "id": 3947, + "id": 1134, "indexExpression": { "argumentTypes": null, - "id": 3945, + "id": 1132, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3922, + "referencedDeclaration": 1109, "src": "6442:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4942,11 +4943,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 3948, + "id": 1135, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3924, + "referencedDeclaration": 1111, "src": "6453:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4959,7 +4960,7 @@ "typeString": "uint256" } }, - "id": 3950, + "id": 1137, "nodeType": "ExpressionStatement", "src": "6426:32:8" }, @@ -4969,11 +4970,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3952, + "id": 1139, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3920, + "referencedDeclaration": 1107, "src": "6482:5:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4982,11 +4983,11 @@ }, { "argumentTypes": null, - "id": 3953, + "id": 1140, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3922, + "referencedDeclaration": 1109, "src": "6489:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4995,11 +4996,11 @@ }, { "argumentTypes": null, - "id": 3954, + "id": 1141, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3924, + "referencedDeclaration": 1111, "src": "6498:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5022,18 +5023,18 @@ "typeString": "uint256" } ], - "id": 3951, + "id": 1138, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4126, + "referencedDeclaration": 1313, "src": "6473:8:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3955, + "id": 1142, "isConstant": false, "isLValue": false, "isPure": false, @@ -5047,14 +5048,14 @@ "typeString": "tuple()" } }, - "id": 3956, + "id": 1143, "nodeType": "EmitStatement", "src": "6468:36:8" } ] }, "documentation": "@dev Approve an address to spend another addresses' tokens.\n@param owner The address that owns the tokens.\n@param spender The address that will spend the tokens.\n@param value The number of tokens that can be spent.", - "id": 3958, + "id": 1145, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5062,15 +5063,15 @@ "name": "_approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 3925, + "id": 1112, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3920, + "id": 1107, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 3958, + "scope": 1145, "src": "6281:13:8", "stateVariable": false, "storageLocation": "default", @@ -5079,7 +5080,7 @@ "typeString": "address" }, "typeName": { - "id": 3919, + "id": 1106, "name": "address", "nodeType": "ElementaryTypeName", "src": "6281:7:8", @@ -5093,10 +5094,10 @@ }, { "constant": false, - "id": 3922, + "id": 1109, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 3958, + "scope": 1145, "src": "6296:15:8", "stateVariable": false, "storageLocation": "default", @@ -5105,7 +5106,7 @@ "typeString": "address" }, "typeName": { - "id": 3921, + "id": 1108, "name": "address", "nodeType": "ElementaryTypeName", "src": "6296:7:8", @@ -5119,10 +5120,10 @@ }, { "constant": false, - "id": 3924, + "id": 1111, "name": "value", "nodeType": "VariableDeclaration", - "scope": 3958, + "scope": 1145, "src": "6313:13:8", "stateVariable": false, "storageLocation": "default", @@ -5131,7 +5132,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3923, + "id": 1110, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6313:7:8", @@ -5148,12 +5149,12 @@ }, "payable": false, "returnParameters": { - "id": 3926, + "id": 1113, "nodeType": "ParameterList", "parameters": [], "src": "6337:0:8" }, - "scope": 3991, + "scope": 1178, "src": "6263:248:8", "stateMutability": "nonpayable", "superFunction": null, @@ -5161,7 +5162,7 @@ }, { "body": { - "id": 3985, + "id": 1172, "nodeType": "Block", "src": "6876:113:8", "statements": [ @@ -5171,11 +5172,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3966, + "id": 1153, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3960, + "referencedDeclaration": 1147, "src": "6892:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5184,11 +5185,11 @@ }, { "argumentTypes": null, - "id": 3967, + "id": 1154, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3962, + "referencedDeclaration": 1149, "src": "6901:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5207,18 +5208,18 @@ "typeString": "uint256" } ], - "id": 3965, + "id": 1152, "name": "_burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3918, + "referencedDeclaration": 1105, "src": "6886:5:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 3968, + "id": 1155, "isConstant": false, "isLValue": false, "isPure": false, @@ -5232,7 +5233,7 @@ "typeString": "tuple()" } }, - "id": 3969, + "id": 1156, "nodeType": "ExpressionStatement", "src": "6886:21:8" }, @@ -5242,11 +5243,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3971, + "id": 1158, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3960, + "referencedDeclaration": 1147, "src": "6922:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5257,18 +5258,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3972, + "id": 1159, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4198, + "referencedDeclaration": 1447, "src": "6931:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3973, + "id": 1160, "isConstant": false, "isLValue": false, "isPure": false, @@ -5287,11 +5288,11 @@ "arguments": [ { "argumentTypes": null, - "id": 3981, + "id": 1168, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3962, + "referencedDeclaration": 1149, "src": "6977:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5312,25 +5313,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 3974, + "id": 1161, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3611, + "referencedDeclaration": 798, "src": "6943:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 3976, + "id": 1163, "indexExpression": { "argumentTypes": null, - "id": 3975, + "id": 1162, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3960, + "referencedDeclaration": 1147, "src": "6952:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5348,23 +5349,23 @@ "typeString": "mapping(address => uint256)" } }, - "id": 3979, + "id": 1166, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 3977, + "id": 1164, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4198, + "referencedDeclaration": 1447, "src": "6961:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3978, + "id": 1165, "isConstant": false, "isLValue": false, "isPure": false, @@ -5389,21 +5390,21 @@ "typeString": "uint256" } }, - "id": 3980, + "id": 1167, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 3544, + "referencedDeclaration": 731, "src": "6943:33:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 3982, + "id": 1169, "isConstant": false, "isLValue": false, "isPure": false, @@ -5433,18 +5434,18 @@ "typeString": "uint256" } ], - "id": 3970, + "id": 1157, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3958, + "referencedDeclaration": 1145, "src": "6913:8:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 3983, + "id": 1170, "isConstant": false, "isLValue": false, "isPure": false, @@ -5458,14 +5459,14 @@ "typeString": "tuple()" } }, - "id": 3984, + "id": 1171, "nodeType": "ExpressionStatement", "src": "6913:71:8" } ] }, "documentation": "@dev Internal function that burns an amount of the token of a given\naccount, deducting from the sender's allowance for said account. Uses the\ninternal burn function.\n@param account The account whose tokens will be burnt.\n@param value The amount that will be burnt.", - "id": 3986, + "id": 1173, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5473,15 +5474,15 @@ "name": "_burnFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 3963, + "id": 1150, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3960, + "id": 1147, "name": "account", "nodeType": "VariableDeclaration", - "scope": 3986, + "scope": 1173, "src": "6835:15:8", "stateVariable": false, "storageLocation": "default", @@ -5490,7 +5491,7 @@ "typeString": "address" }, "typeName": { - "id": 3959, + "id": 1146, "name": "address", "nodeType": "ElementaryTypeName", "src": "6835:7:8", @@ -5504,10 +5505,10 @@ }, { "constant": false, - "id": 3962, + "id": 1149, "name": "value", "nodeType": "VariableDeclaration", - "scope": 3986, + "scope": 1173, "src": "6852:13:8", "stateVariable": false, "storageLocation": "default", @@ -5516,7 +5517,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3961, + "id": 1148, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6852:7:8", @@ -5533,12 +5534,12 @@ }, "payable": false, "returnParameters": { - "id": 3964, + "id": 1151, "nodeType": "ParameterList", "parameters": [], "src": "6876:0:8" }, - "scope": 3991, + "scope": 1178, "src": "6816:173:8", "stateMutability": "nonpayable", "superFunction": null, @@ -5546,10 +5547,10 @@ }, { "constant": false, - "id": 3990, + "id": 1177, "name": "______gap", "nodeType": "VariableDeclaration", - "scope": 3991, + "scope": 1178, "src": "6993:29:8", "stateVariable": true, "storageLocation": "default", @@ -5559,7 +5560,7 @@ }, "typeName": { "baseType": { - "id": 3987, + "id": 1174, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6993:7:8", @@ -5568,11 +5569,11 @@ "typeString": "uint256" } }, - "id": 3989, + "id": 1176, "length": { "argumentTypes": null, "hexValue": "3530", - "id": 3988, + "id": 1175, "isConstant": false, "isLValue": false, "isPure": false, @@ -5598,5394 +5599,5875 @@ "visibility": "private" } ], - "scope": 3992, + "scope": 1179, "src": "416:6609:8" } ], "src": "0:7026:8" }, "legacyAST": { - "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", - "exportedSymbols": { - "ERC20": [ - 3991 - ] + "attributes": { + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", + "exportedSymbols": { + "ERC20": [ + 1178 + ] + } }, - "id": 3992, - "nodeType": "SourceUnit", - "nodes": [ + "children": [ { - "id": 3591, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", + "attributes": { + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ] + }, + "id": 778, + "name": "PragmaDirective", "src": "0:24:8" }, { - "absolutePath": "zos-lib/contracts/Initializable.sol", - "file": "zos-lib/contracts/Initializable.sol", - "id": 3592, - "nodeType": "ImportDirective", - "scope": 3992, - "sourceUnit": 4184, - "src": "26:45:8", - "symbolAliases": [], - "unitAlias": "" + "attributes": { + "SourceUnit": 1433, + "absolutePath": "zos-lib/contracts/Initializable.sol", + "file": "zos-lib/contracts/Initializable.sol", + "scope": 1179, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 779, + "name": "ImportDirective", + "src": "26:45:8" }, { - "absolutePath": "openzeppelin-eth/contracts/token/ERC20/IERC20.sol", - "file": "./IERC20.sol", - "id": 3593, - "nodeType": "ImportDirective", - "scope": 3992, - "sourceUnit": 4128, - "src": "72:22:8", - "symbolAliases": [], - "unitAlias": "" + "attributes": { + "SourceUnit": 1315, + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/IERC20.sol", + "file": "./IERC20.sol", + "scope": 1179, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 780, + "name": "ImportDirective", + "src": "72:22:8" }, { - "absolutePath": "openzeppelin-eth/contracts/math/SafeMath.sol", - "file": "../../math/SafeMath.sol", - "id": 3594, - "nodeType": "ImportDirective", - "scope": 3992, - "sourceUnit": 3590, - "src": "95:33:8", - "symbolAliases": [], - "unitAlias": "" + "attributes": { + "SourceUnit": 777, + "absolutePath": "openzeppelin-eth/contracts/math/SafeMath.sol", + "file": "../../math/SafeMath.sol", + "scope": 1179, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 781, + "name": "ImportDirective", + "src": "95:33:8" }, { - "baseContracts": [ + "attributes": { + "contractDependencies": [ + 1314, + 1432 + ], + "contractKind": "contract", + "documentation": "@title Standard ERC20 token\n * @dev Implementation of the basic standard token.\nhttps://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\nOriginally based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1178, + 1314, + 1432 + ], + "name": "ERC20", + "scope": 1179 + }, + "children": [ { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3595, - "name": "Initializable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4183, - "src": "434:13:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Initializable_$4183", - "typeString": "contract Initializable" - } + "attributes": { + "arguments": null }, - "id": 3596, - "nodeType": "InheritanceSpecifier", + "children": [ + { + "attributes": { + "contractScope": null, + "name": "Initializable", + "referencedDeclaration": 1432, + "type": "contract Initializable" + }, + "id": 782, + "name": "UserDefinedTypeName", + "src": "434:13:8" + } + ], + "id": 783, + "name": "InheritanceSpecifier", "src": "434:13:8" }, { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3597, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4127, - "src": "449:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$4127", - "typeString": "contract IERC20" - } + "attributes": { + "arguments": null }, - "id": 3598, - "nodeType": "InheritanceSpecifier", + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IERC20", + "referencedDeclaration": 1314, + "type": "contract IERC20" + }, + "id": 784, + "name": "UserDefinedTypeName", + "src": "449:6:8" + } + ], + "id": 785, + "name": "InheritanceSpecifier", "src": "449:6:8" - } - ], - "contractDependencies": [ - 4127, - 4183 - ], - "contractKind": "contract", - "documentation": "@title Standard ERC20 token\n * @dev Implementation of the basic standard token.\nhttps://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\nOriginally based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol", - "fullyImplemented": true, - "id": 3991, - "linearizedBaseContracts": [ - 3991, - 4127, - 4183 - ], - "name": "ERC20", - "nodeType": "ContractDefinition", - "nodes": [ + }, { - "id": 3601, - "libraryName": { - "contractScope": null, - "id": 3599, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3589, - "src": "466:8:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3589", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "460:27:8", - "typeName": { - "id": 3600, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "479:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "children": [ + { + "attributes": { + "contractScope": null, + "name": "SafeMath", + "referencedDeclaration": 776, + "type": "library SafeMath" + }, + "id": 786, + "name": "UserDefinedTypeName", + "src": "466:8:8" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 787, + "name": "ElementaryTypeName", + "src": "479:7:8" } - } + ], + "id": 788, + "name": "UsingForDirective", + "src": "460:27:8" }, { - "constant": false, - "id": 3605, - "name": "_balances", - "nodeType": "VariableDeclaration", - "scope": 3991, - "src": "491:46:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" + "attributes": { + "constant": false, + "name": "_balances", + "scope": 1178, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => uint256)", + "value": null, + "visibility": "private" }, - "typeName": { - "id": 3604, - "keyType": { - "id": 3602, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "500:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "491:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 3603, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "511:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "children": [ + { + "attributes": { + "type": "mapping(address => uint256)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 789, + "name": "ElementaryTypeName", + "src": "500:7:8" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 790, + "name": "ElementaryTypeName", + "src": "511:7:8" + } + ], + "id": 791, + "name": "Mapping", + "src": "491:28:8" } - }, - "value": null, - "visibility": "private" + ], + "id": 792, + "name": "VariableDeclaration", + "src": "491:46:8" }, { - "constant": false, - "id": 3611, - "name": "_allowed", - "nodeType": "VariableDeclaration", - "scope": 3991, - "src": "542:66:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" + "attributes": { + "constant": false, + "name": "_allowed", + "scope": 1178, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => mapping(address => uint256))", + "value": null, + "visibility": "private" }, - "typeName": { - "id": 3610, - "keyType": { - "id": 3606, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "551:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "542:49:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 3609, - "keyType": { - "id": 3607, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "571:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "562:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" + "children": [ + { + "attributes": { + "type": "mapping(address => mapping(address => uint256))" }, - "valueType": { - "id": 3608, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "582:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 793, + "name": "ElementaryTypeName", + "src": "551:7:8" + }, + { + "attributes": { + "type": "mapping(address => uint256)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 794, + "name": "ElementaryTypeName", + "src": "571:7:8" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 795, + "name": "ElementaryTypeName", + "src": "582:7:8" + } + ], + "id": 796, + "name": "Mapping", + "src": "562:28:8" } - } + ], + "id": 797, + "name": "Mapping", + "src": "542:49:8" } - }, - "value": null, - "visibility": "private" + ], + "id": 798, + "name": "VariableDeclaration", + "src": "542:66:8" }, { - "constant": false, - "id": 3613, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3991, - "src": "613:28:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "attributes": { + "constant": false, + "name": "_totalSupply", + "scope": 1178, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "private" }, - "typeName": { - "id": 3612, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "613:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 799, + "name": "ElementaryTypeName", + "src": "613:7:8" } - }, - "value": null, - "visibility": "private" + ], + "id": 800, + "name": "VariableDeclaration", + "src": "613:28:8" }, { - "body": { - "id": 3620, - "nodeType": "Block", - "src": "755:30:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3618, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3613, - "src": "768:12:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3617, - "id": 3619, - "nodeType": "Return", - "src": "761:19:8" - } - ] - }, - "documentation": "@dev Total number of tokens in existence", - "id": 3621, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3614, - "nodeType": "ParameterList", - "parameters": [], - "src": "722:2:8" + "attributes": { + "constant": true, + "documentation": "@dev Total number of tokens in existence", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "totalSupply", + "payable": false, + "scope": 1178, + "stateMutability": "view", + "superFunction": 1252, + "visibility": "public" }, - "payable": false, - "returnParameters": { - "id": 3617, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3616, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3621, - "src": "746:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3615, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "746:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "745:9:8" - }, - "scope": 3991, - "src": "702:83:8", - "stateMutability": "view", - "superFunction": 4065, - "visibility": "public" + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 801, + "name": "ParameterList", + "src": "722:2:8" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 808, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 802, + "name": "ElementaryTypeName", + "src": "746:7:8" + } + ], + "id": 803, + "name": "VariableDeclaration", + "src": "746:7:8" + } + ], + "id": 804, + "name": "ParameterList", + "src": "745:9:8" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 804 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 800, + "type": "uint256", + "value": "_totalSupply" + }, + "id": 805, + "name": "Identifier", + "src": "768:12:8" + } + ], + "id": 806, + "name": "Return", + "src": "761:19:8" + } + ], + "id": 807, + "name": "Block", + "src": "755:30:8" + } + ], + "id": 808, + "name": "FunctionDefinition", + "src": "702:83:8" }, { - "body": { - "id": 3632, - "nodeType": "Block", - "src": "1050:34:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3628, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3605, - "src": "1063:9:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" + "attributes": { + "constant": true, + "documentation": "@dev Gets the balance of the specified address.\n@param owner The address to query the the balance of.\n@return An uint256 representing the amount owned by the passed address.", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "balanceOf", + "payable": false, + "scope": 1178, + "stateMutability": "view", + "superFunction": 1259, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "owner", + "scope": 820, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 809, + "name": "ElementaryTypeName", + "src": "1005:7:8" } + ], + "id": 810, + "name": "VariableDeclaration", + "src": "1005:13:8" + } + ], + "id": 811, + "name": "ParameterList", + "src": "1004:15:8" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 820, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" }, - "id": 3630, - "indexExpression": { - "argumentTypes": null, - "id": 3629, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3623, - "src": "1073:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 812, + "name": "ElementaryTypeName", + "src": "1041:7:8" } + ], + "id": 813, + "name": "VariableDeclaration", + "src": "1041:7:8" + } + ], + "id": 814, + "name": "ParameterList", + "src": "1040:9:8" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 814 }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1063:16:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3627, - "id": 3631, - "nodeType": "Return", - "src": "1056:23:8" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner The address to query the the balance of.\n@return An uint256 representing the amount owned by the passed address.", - "id": 3633, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3623, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "1005:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1005:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1004:15:8" - }, - "payable": false, - "returnParameters": { - "id": 3627, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3626, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3633, - "src": "1041:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3625, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1041:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1040:9:8" - }, - "scope": 3991, - "src": "986:98:8", - "stateMutability": "view", - "superFunction": 4072, - "visibility": "public" + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 792, + "type": "mapping(address => uint256)", + "value": "_balances" + }, + "id": 815, + "name": "Identifier", + "src": "1063:9:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 810, + "type": "address", + "value": "owner" + }, + "id": 816, + "name": "Identifier", + "src": "1073:5:8" + } + ], + "id": 817, + "name": "IndexAccess", + "src": "1063:16:8" + } + ], + "id": 818, + "name": "Return", + "src": "1056:23:8" + } + ], + "id": 819, + "name": "Block", + "src": "1050:34:8" + } + ], + "id": 820, + "name": "FunctionDefinition", + "src": "986:98:8" }, { - "body": { - "id": 3648, - "nodeType": "Block", - "src": "1509:42:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3642, - "name": "_allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3611, - "src": "1522:8:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3644, - "indexExpression": { - "argumentTypes": null, - "id": 3643, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3635, - "src": "1531:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1522:15:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } + "attributes": { + "constant": true, + "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\n@param owner address The address which owns the funds.\n@param spender address The address which will spend the funds.\n@return A uint256 specifying the amount of tokens still available for the spender.", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "allowance", + "payable": false, + "scope": 1178, + "stateMutability": "view", + "superFunction": 1268, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "owner", + "scope": 836, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" }, - "id": 3646, - "indexExpression": { - "argumentTypes": null, - "id": 3645, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 821, + "name": "ElementaryTypeName", + "src": "1425:7:8" + } + ], + "id": 822, + "name": "VariableDeclaration", + "src": "1425:13:8" + }, + { + "attributes": { + "constant": false, "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3637, - "src": "1538:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "scope": 836, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 823, + "name": "ElementaryTypeName", + "src": "1444:7:8" } + ], + "id": 824, + "name": "VariableDeclaration", + "src": "1444:15:8" + } + ], + "id": 825, + "name": "ParameterList", + "src": "1419:45:8" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 836, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1522:24:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3641, - "id": 3647, - "nodeType": "Return", - "src": "1515:31:8" - } - ] - }, - "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\n@param owner address The address which owns the funds.\n@param spender address The address which will spend the funds.\n@return A uint256 specifying the amount of tokens still available for the spender.", - "id": 3649, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3638, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3635, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3649, - "src": "1425:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3634, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1425:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3637, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3649, - "src": "1444:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3636, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1444:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1419:45:8" - }, - "payable": false, - "returnParameters": { - "id": 3641, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3640, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3649, - "src": "1498:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3639, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1498:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1497:9:8" - }, - "scope": 3991, - "src": "1401:150:8", - "stateMutability": "view", - "superFunction": 4081, - "visibility": "public" - }, - { - "body": { - "id": 3667, - "nodeType": "Block", - "src": "1770:60:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3659, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "1786:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1786:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3661, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3651, - "src": "1798:2:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3662, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3653, - "src": "1802:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3658, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "1776:9:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1776:32:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3664, - "nodeType": "ExpressionStatement", - "src": "1776:32:8" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1821:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3657, - "id": 3666, - "nodeType": "Return", - "src": "1814:11:8" - } - ] - }, - "documentation": "@dev Transfer token for a specified address\n@param to The address to transfer to.\n@param value The amount to be transferred.", - "id": 3668, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3654, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3651, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3668, - "src": "1721:10:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3650, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1721:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3653, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 3668, - "src": "1733:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3652, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1733:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1720:27:8" - }, - "payable": false, - "returnParameters": { - "id": 3657, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3656, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3668, - "src": "1764:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3655, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1764:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1763:6:8" - }, - "scope": 3991, - "src": "1703:127:8", - "stateMutability": "nonpayable", - "superFunction": 4090, - "visibility": "public" - }, - { - "body": { - "id": 3686, - "nodeType": "Block", - "src": "2533:74:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3678, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "2552:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2552:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3680, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3670, - "src": "2564:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3681, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3672, - "src": "2573:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3677, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3958, - "src": "2543:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3682, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2543:36:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3683, - "nodeType": "ExpressionStatement", - "src": "2543:36:8" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3684, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2596:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3676, - "id": 3685, - "nodeType": "Return", - "src": "2589:11:8" - } - ] - }, - "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\nBeware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param spender The address which will spend the funds.\n@param value The amount of tokens to be spent.", - "id": 3687, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3673, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3670, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3687, - "src": "2479:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3669, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2479:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3672, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 3687, - "src": "2496:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3671, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2496:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2478:32:8" - }, - "payable": false, - "returnParameters": { - "id": 3676, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3675, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3687, - "src": "2527:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3674, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2527:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2526:6:8" - }, - "scope": 3991, - "src": "2462:145:8", - "stateMutability": "nonpayable", - "superFunction": 4099, - "visibility": "public" - }, - { - "body": { - "id": 3721, - "nodeType": "Block", - "src": "2990:129:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3699, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3689, - "src": "3010:4:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3700, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3691, - "src": "3016:2:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3701, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3693, - "src": "3020:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3698, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "3000:9:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3000:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3703, - "nodeType": "ExpressionStatement", - "src": "3000:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3705, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3689, - "src": "3041:4:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3706, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "3047:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3047:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3715, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3693, - "src": "3090:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3708, - "name": "_allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3611, - "src": "3059:8:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3710, - "indexExpression": { - "argumentTypes": null, - "id": 3709, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3689, - "src": "3068:4:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3059:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3713, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3711, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "3074:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3074:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3059:26:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3544, - "src": "3059:30:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3716, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3059:37:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3704, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3958, - "src": "3032:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3032:65:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3718, - "nodeType": "ExpressionStatement", - "src": "3032:65:8" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3110:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3697, - "id": 3720, - "nodeType": "Return", - "src": "3103:11:8" - } - ] - }, - "documentation": "@dev Transfer tokens from one address to another\n@param from address The address which you want to send tokens from\n@param to address The address which you want to transfer to\n@param value uint256 the amount of tokens to be transferred", - "id": 3722, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3694, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3689, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3722, - "src": "2906:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3688, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2906:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3691, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3722, - "src": "2924:10:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3690, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2924:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3693, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 3722, - "src": "2940:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3692, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2940:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2900:57:8" - }, - "payable": false, - "returnParameters": { - "id": 3697, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3696, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3722, - "src": "2982:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3695, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2982:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2981:6:8" - }, - "scope": 3991, - "src": "2879:240:8", - "stateMutability": "nonpayable", - "superFunction": 4110, - "visibility": "public" - }, - { - "body": { - "id": 3748, - "nodeType": "Block", - "src": "3678:104:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3732, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "3693:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3733, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3693:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3734, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "3705:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3742, - "name": "addedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3726, - "src": "3748:10:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3735, - "name": "_allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3611, - "src": "3714:8:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3738, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3736, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "3723:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3723:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3714:20:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3740, - "indexExpression": { - "argumentTypes": null, - "id": 3739, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3724, - "src": "3735:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3714:29:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3568, - "src": "3714:33:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3714:45:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3731, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3958, - "src": "3684:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3744, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3684:76:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3745, - "nodeType": "ExpressionStatement", - "src": "3684:76:8" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3746, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3773:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3730, - "id": 3747, - "nodeType": "Return", - "src": "3766:11:8" - } - ] - }, - "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\napprove should be called when allowed_[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param spender The address which will spend the funds.\n@param addedValue The amount of tokens to increase the allowance by.", - "id": 3749, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "increaseAllowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3727, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3724, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3749, - "src": "3602:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3723, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3602:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3726, - "name": "addedValue", - "nodeType": "VariableDeclaration", - "scope": 3749, - "src": "3623:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3725, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3623:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3596:49:8" - }, - "payable": false, - "returnParameters": { - "id": 3730, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3729, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3749, - "src": "3670:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3728, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3670:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3669:6:8" - }, - "scope": 3991, - "src": "3570:212:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3775, - "nodeType": "Block", - "src": "4351:109:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3759, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "4366:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3760, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4366:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3761, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3751, - "src": "4378:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3769, - "name": "subtractedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3753, - "src": "4421:15:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3762, - "name": "_allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3611, - "src": "4387:8:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3765, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3763, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "4396:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4396:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4387:20:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3767, - "indexExpression": { - "argumentTypes": null, - "id": 3766, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3751, - "src": "4408:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4387:29:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3544, - "src": "4387:33:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4387:50:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3758, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3958, - "src": "4357:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4357:81:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3772, - "nodeType": "ExpressionStatement", - "src": "4357:81:8" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3773, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4451:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 3757, - "id": 3774, - "nodeType": "Return", - "src": "4444:11:8" - } - ] - }, - "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\napprove should be called when allowed_[_spender] == 0. To decrement\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param spender The address which will spend the funds.\n@param subtractedValue The amount of tokens to decrease the allowance by.", - "id": 3776, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "decreaseAllowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3754, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3751, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3776, - "src": "4270:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3750, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4270:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3753, - "name": "subtractedValue", - "nodeType": "VariableDeclaration", - "scope": 3776, - "src": "4291:23:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3752, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4291:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4264:54:8" - }, - "payable": false, - "returnParameters": { - "id": 3757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3756, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3776, - "src": "4343:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3755, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4343:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4342:6:8" - }, - "scope": 3991, - "src": "4238:222:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3829, - "nodeType": "Block", - "src": "4729:208:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3786, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3782, - "src": "4743:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3787, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3605, - "src": "4752:9:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3789, - "indexExpression": { - "argumentTypes": null, - "id": 3788, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3778, - "src": "4762:4:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4752:15:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4743:24:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3785, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4201, - "src": "4735:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4735:33:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3792, - "nodeType": "ExpressionStatement", - "src": "4735:33:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3794, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3780, - "src": "4782:2:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3796, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4796:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3795, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4788:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4788:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4782:16:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3793, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4201, - "src": "4774:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4774:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3800, - "nodeType": "ExpressionStatement", - "src": "4774:25:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 3810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3801, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3605, - "src": "4806:9:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3803, - "indexExpression": { - "argumentTypes": null, - "id": 3802, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3778, - "src": "4816:4:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4806:15:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3808, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3782, - "src": "4844:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3804, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3605, - "src": "4824:9:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3806, - "indexExpression": { - "argumentTypes": null, - "id": 3805, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3778, - "src": "4834:4:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4824:15:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3544, - "src": "4824:19:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4824:26:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4806:44:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3811, - "nodeType": "ExpressionStatement", - "src": "4806:44:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 3821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3812, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3605, - "src": "4856:9:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3814, - "indexExpression": { - "argumentTypes": null, - "id": 3813, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3780, - "src": "4866:2:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4856:13:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3819, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3782, - "src": "4890:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3815, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3605, - "src": "4872:9:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3817, - "indexExpression": { - "argumentTypes": null, - "id": 3816, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3780, - "src": "4882:2:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4872:13:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3568, - "src": "4872:17:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4872:24:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4856:40:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3822, - "nodeType": "ExpressionStatement", - "src": "4856:40:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3824, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3778, - "src": "4916:4:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3825, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3780, - "src": "4922:2:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3826, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3782, - "src": "4926:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3823, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4118, - "src": "4907:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4907:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3828, - "nodeType": "EmitStatement", - "src": "4902:30:8" - } - ] - }, - "documentation": "@dev Transfer token for a specified addresses\n@param from The address to transfer from.\n@param to The address to transfer to.\n@param value The amount to be transferred.", - "id": 3830, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3783, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3778, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 3830, - "src": "4679:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3777, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4679:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3780, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 3830, - "src": "4693:10:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3779, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4693:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3782, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 3830, - "src": "4705:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3781, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4705:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4678:41:8" - }, - "payable": false, - "returnParameters": { - "id": 3784, - "nodeType": "ParameterList", - "parameters": [], - "src": "4729:0:8" - }, - "scope": 3991, - "src": "4660:277:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 826, + "name": "ElementaryTypeName", + "src": "1498:7:8" + } + ], + "id": 827, + "name": "VariableDeclaration", + "src": "1498:7:8" + } + ], + "id": 828, + "name": "ParameterList", + "src": "1497:9:8" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 828 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 798, + "type": "mapping(address => mapping(address => uint256))", + "value": "_allowed" + }, + "id": 829, + "name": "Identifier", + "src": "1522:8:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 822, + "type": "address", + "value": "owner" + }, + "id": 830, + "name": "Identifier", + "src": "1531:5:8" + } + ], + "id": 831, + "name": "IndexAccess", + "src": "1522:15:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 824, + "type": "address", + "value": "spender" + }, + "id": 832, + "name": "Identifier", + "src": "1538:7:8" + } + ], + "id": 833, + "name": "IndexAccess", + "src": "1522:24:8" + } + ], + "id": 834, + "name": "Return", + "src": "1515:31:8" + } + ], + "id": 835, + "name": "Block", + "src": "1509:42:8" + } + ], + "id": 836, + "name": "FunctionDefinition", + "src": "1401:150:8" }, { - "body": { - "id": 3869, - "nodeType": "Block", - "src": "5322:182:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ + "attributes": { + "constant": false, + "documentation": "@dev Transfer token for a specified address\n@param to The address to transfer to.\n@param value The amount to be transferred.", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "transfer", + "payable": false, + "scope": 1178, + "stateMutability": "nonpayable", + "superFunction": 1277, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "to", + "scope": 855, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "attributes": { + "name": "address", + "type": "address" }, - "id": 3840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "id": 837, + "name": "ElementaryTypeName", + "src": "1721:7:8" + } + ], + "id": 838, + "name": "VariableDeclaration", + "src": "1721:10:8" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 855, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 839, + "name": "ElementaryTypeName", + "src": "1733:7:8" + } + ], + "id": 840, + "name": "VariableDeclaration", + "src": "1733:13:8" + } + ], + "id": 841, + "name": "ParameterList", + "src": "1720:27:8" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 855, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 842, + "name": "ElementaryTypeName", + "src": "1764:4:8" + } + ], + "id": 843, + "name": "VariableDeclaration", + "src": "1764:4:8" + } + ], + "id": 844, + "name": "ParameterList", + "src": "1763:6:8" + }, + { + "children": [ + { + "children": [ + { + "attributes": { "argumentTypes": null, - "id": 3838, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3832, - "src": "5336:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1017, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 845, + "name": "Identifier", + "src": "1776:9:8" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1447, + "type": "msg", + "value": "msg" + }, + "id": 846, + "name": "Identifier", + "src": "1786:3:8" + } + ], + "id": 847, + "name": "MemberAccess", + "src": "1786:10:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 838, + "type": "address", + "value": "to" + }, + "id": 848, + "name": "Identifier", + "src": "1798:2:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 840, + "type": "uint256", + "value": "value" + }, + "id": 849, + "name": "Identifier", + "src": "1802:5:8" + } + ], + "id": 850, + "name": "FunctionCall", + "src": "1776:32:8" + } + ], + "id": 851, + "name": "ExpressionStatement", + "src": "1776:32:8" + }, + { + "attributes": { + "functionReturnParameters": 844 + }, + "children": [ + { + "attributes": { "argumentTypes": null, - "hexValue": "30", - "id": 3839, + "hexvalue": "74727565", "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", "lValueRequested": false, - "nodeType": "Literal", - "src": "5347:1:8", "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "token": "bool", + "type": "bool", + "value": "true" }, - "src": "5336:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "id": 852, + "name": "Literal", + "src": "1821:4:8" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3837, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4201, - "src": "5328:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } + "id": 853, + "name": "Return", + "src": "1814:11:8" + } + ], + "id": 854, + "name": "Block", + "src": "1770:60:8" + } + ], + "id": 855, + "name": "FunctionDefinition", + "src": "1703:127:8" + }, + { + "attributes": { + "constant": false, + "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\nBeware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param spender The address which will spend the funds.\n@param value The amount of tokens to be spent.", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "approve", + "payable": false, + "scope": 1178, + "stateMutability": "nonpayable", + "superFunction": 1286, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "spender", + "scope": 874, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" }, - "id": 3841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5328:21:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 856, + "name": "ElementaryTypeName", + "src": "2479:7:8" + } + ], + "id": 857, + "name": "VariableDeclaration", + "src": "2479:15:8" }, - "id": 3842, - "nodeType": "ExpressionStatement", - "src": "5328:21:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 3848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3843, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3613, - "src": "5355:12:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "attributes": { + "constant": false, + "name": "value", + "scope": 874, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 858, + "name": "ElementaryTypeName", + "src": "2496:7:8" } + ], + "id": 859, + "name": "VariableDeclaration", + "src": "2496:13:8" + } + ], + "id": 860, + "name": "ParameterList", + "src": "2478:32:8" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 874, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 861, + "name": "ElementaryTypeName", + "src": "2527:4:8" + } + ], + "id": 862, + "name": "VariableDeclaration", + "src": "2527:4:8" + } + ], + "id": 863, + "name": "ParameterList", + "src": "2526:6:8" + }, + { + "children": [ + { + "children": [ + { + "attributes": { "argumentTypes": null, - "id": 3846, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3834, - "src": "5387:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1145, + "type": "function (address,address,uint256)", + "value": "_approve" + }, + "id": 864, + "name": "Identifier", + "src": "2543:8:8" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1447, + "type": "msg", + "value": "msg" + }, + "id": 865, + "name": "Identifier", + "src": "2552:3:8" + } + ], + "id": 866, + "name": "MemberAccess", + "src": "2552:10:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 857, + "type": "address", + "value": "spender" + }, + "id": 867, + "name": "Identifier", + "src": "2564:7:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 859, + "type": "uint256", + "value": "value" + }, + "id": 868, + "name": "Identifier", + "src": "2573:5:8" } ], - "expression": { + "id": 869, + "name": "FunctionCall", + "src": "2543:36:8" + } + ], + "id": 870, + "name": "ExpressionStatement", + "src": "2543:36:8" + }, + { + "attributes": { + "functionReturnParameters": 863 + }, + "children": [ + { + "attributes": { "argumentTypes": null, - "id": 3844, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3613, - "src": "5370:12:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" }, - "id": 3845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3568, - "src": "5370:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5370:24:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "id": 871, + "name": "Literal", + "src": "2596:4:8" + } + ], + "id": 872, + "name": "Return", + "src": "2589:11:8" + } + ], + "id": 873, + "name": "Block", + "src": "2533:74:8" + } + ], + "id": 874, + "name": "FunctionDefinition", + "src": "2462:145:8" + }, + { + "attributes": { + "constant": false, + "documentation": "@dev Transfer tokens from one address to another\n@param from address The address which you want to send tokens from\n@param to address The address which you want to transfer to\n@param value uint256 the amount of tokens to be transferred", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "transferFrom", + "payable": false, + "scope": 1178, + "stateMutability": "nonpayable", + "superFunction": 1297, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "from", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 875, + "name": "ElementaryTypeName", + "src": "2906:7:8" } + ], + "id": 876, + "name": "VariableDeclaration", + "src": "2906:12:8" + }, + { + "attributes": { + "constant": false, + "name": "to", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" }, - "src": "5355:39:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 877, + "name": "ElementaryTypeName", + "src": "2924:7:8" + } + ], + "id": 878, + "name": "VariableDeclaration", + "src": "2924:10:8" }, - "id": 3849, - "nodeType": "ExpressionStatement", - "src": "5355:39:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 3859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3850, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3605, - "src": "5400:9:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3852, - "indexExpression": { - "argumentTypes": null, - "id": 3851, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3832, - "src": "5410:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5400:18:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "attributes": { + "constant": false, + "name": "value", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 879, + "name": "ElementaryTypeName", + "src": "2940:7:8" } + ], + "id": 880, + "name": "VariableDeclaration", + "src": "2940:13:8" + } + ], + "id": 881, + "name": "ParameterList", + "src": "2900:57:8" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3857, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3834, - "src": "5444:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 882, + "name": "ElementaryTypeName", + "src": "2982:4:8" + } + ], + "id": 883, + "name": "VariableDeclaration", + "src": "2982:4:8" + } + ], + "id": 884, + "name": "ParameterList", + "src": "2981:6:8" + }, + { + "children": [ + { + "children": [ + { + "attributes": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3853, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3605, - "src": "5421:9:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3855, - "indexExpression": { - "argumentTypes": null, - "id": 3854, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3832, - "src": "5431:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "isStructConstructorCall": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5421:18:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false }, - "id": 3856, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3568, - "src": "5421:22:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3858, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5421:30:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1017, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 885, + "name": "Identifier", + "src": "3000:9:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 876, + "type": "address", + "value": "from" + }, + "id": 886, + "name": "Identifier", + "src": "3010:4:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 878, + "type": "address", + "value": "to" + }, + "id": 887, + "name": "Identifier", + "src": "3016:2:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 880, + "type": "uint256", + "value": "value" + }, + "id": 888, + "name": "Identifier", + "src": "3020:5:8" + } + ], + "id": 889, + "name": "FunctionCall", + "src": "3000:26:8" } - }, - "src": "5400:51:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + ], + "id": 890, + "name": "ExpressionStatement", + "src": "3000:26:8" }, - "id": 3860, - "nodeType": "ExpressionStatement", - "src": "5400:51:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ + { + "children": [ { - "argumentTypes": null, - "arguments": [ + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ { - "argumentTypes": null, - "hexValue": "30", - "id": 3863, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5479:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1145, + "type": "function (address,address,uint256)", + "value": "_approve" }, - "value": "0" + "id": 891, + "name": "Identifier", + "src": "3032:8:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 876, + "type": "address", + "value": "from" + }, + "id": 892, + "name": "Identifier", + "src": "3041:4:8" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1447, + "type": "msg", + "value": "msg" + }, + "id": 893, + "name": "Identifier", + "src": "3047:3:8" + } + ], + "id": 894, + "name": "MemberAccess", + "src": "3047:10:8" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sub", + "referencedDeclaration": 731, + "type": "function (uint256,uint256) pure returns (uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 798, + "type": "mapping(address => mapping(address => uint256))", + "value": "_allowed" + }, + "id": 895, + "name": "Identifier", + "src": "3059:8:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 876, + "type": "address", + "value": "from" + }, + "id": 896, + "name": "Identifier", + "src": "3068:4:8" + } + ], + "id": 897, + "name": "IndexAccess", + "src": "3059:14:8" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1447, + "type": "msg", + "value": "msg" + }, + "id": 898, + "name": "Identifier", + "src": "3074:3:8" + } + ], + "id": 899, + "name": "MemberAccess", + "src": "3074:10:8" + } + ], + "id": 900, + "name": "IndexAccess", + "src": "3059:26:8" + } + ], + "id": 901, + "name": "MemberAccess", + "src": "3059:30:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 880, + "type": "uint256", + "value": "value" + }, + "id": 902, + "name": "Identifier", + "src": "3090:5:8" + } + ], + "id": 903, + "name": "FunctionCall", + "src": "3059:37:8" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3862, + "id": 904, + "name": "FunctionCall", + "src": "3032:65:8" + } + ], + "id": 905, + "name": "ExpressionStatement", + "src": "3032:65:8" + }, + { + "attributes": { + "functionReturnParameters": 884 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5471:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" }, - "id": 3864, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5471:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3865, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3832, - "src": "5483:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3866, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3834, - "src": "5492:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "id": 906, + "name": "Literal", + "src": "3110:4:8" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3861, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4118, - "src": "5462:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5462:37:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3868, - "nodeType": "EmitStatement", - "src": "5457:42:8" - } - ] - }, - "documentation": "@dev Internal function that mints an amount of the token and assigns it to\nan account. This encapsulates the modification of balances such that the\nproper events are emitted.\n@param account The account that will receive the created tokens.\n@param amount The amount that will be created.", - "id": 3870, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3835, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3832, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 3870, - "src": "5280:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3831, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5280:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3834, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 3870, - "src": "5297:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3833, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5297:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5279:33:8" - }, - "payable": false, - "returnParameters": { - "id": 3836, - "nodeType": "ParameterList", - "parameters": [], - "src": "5322:0:8" - }, - "scope": 3991, - "src": "5265:239:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3917, - "nodeType": "Block", - "src": "5774:226:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ + "id": 907, + "name": "Return", + "src": "3103:11:8" + } + ], + "id": 908, + "name": "Block", + "src": "2990:129:8" + } + ], + "id": 909, + "name": "FunctionDefinition", + "src": "2879:240:8" + }, + { + "attributes": { + "constant": false, + "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\napprove should be called when allowed_[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param spender The address which will spend the funds.\n@param addedValue The amount of tokens to increase the allowance by.", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "increaseAllowance", + "payable": false, + "scope": 1178, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "spender", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "attributes": { + "name": "address", + "type": "address" }, - "id": 3880, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "id": 910, + "name": "ElementaryTypeName", + "src": "3602:7:8" + } + ], + "id": 911, + "name": "VariableDeclaration", + "src": "3602:15:8" + }, + { + "attributes": { + "constant": false, + "name": "addedValue", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 912, + "name": "ElementaryTypeName", + "src": "3623:7:8" + } + ], + "id": 913, + "name": "VariableDeclaration", + "src": "3623:18:8" + } + ], + "id": 914, + "name": "ParameterList", + "src": "3596:49:8" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 915, + "name": "ElementaryTypeName", + "src": "3670:4:8" + } + ], + "id": 916, + "name": "VariableDeclaration", + "src": "3670:4:8" + } + ], + "id": 917, + "name": "ParameterList", + "src": "3669:6:8" + }, + { + "children": [ + { + "children": [ + { + "attributes": { "argumentTypes": null, - "id": 3878, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3872, - "src": "5788:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1145, + "type": "function (address,address,uint256)", + "value": "_approve" + }, + "id": 918, + "name": "Identifier", + "src": "3684:8:8" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1447, + "type": "msg", + "value": "msg" + }, + "id": 919, + "name": "Identifier", + "src": "3693:3:8" + } + ], + "id": 920, + "name": "MemberAccess", + "src": "3693:10:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 911, + "type": "address", + "value": "spender" + }, + "id": 921, + "name": "Identifier", + "src": "3705:7:8" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 755, + "type": "function (uint256,uint256) pure returns (uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 798, + "type": "mapping(address => mapping(address => uint256))", + "value": "_allowed" + }, + "id": 922, + "name": "Identifier", + "src": "3714:8:8" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1447, + "type": "msg", + "value": "msg" + }, + "id": 923, + "name": "Identifier", + "src": "3723:3:8" + } + ], + "id": 924, + "name": "MemberAccess", + "src": "3723:10:8" + } + ], + "id": 925, + "name": "IndexAccess", + "src": "3714:20:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 911, + "type": "address", + "value": "spender" + }, + "id": 926, + "name": "Identifier", + "src": "3735:7:8" + } + ], + "id": 927, + "name": "IndexAccess", + "src": "3714:29:8" + } + ], + "id": 928, + "name": "MemberAccess", + "src": "3714:33:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 913, + "type": "uint256", + "value": "addedValue" + }, + "id": 929, + "name": "Identifier", + "src": "3748:10:8" + } + ], + "id": 930, + "name": "FunctionCall", + "src": "3714:45:8" + } + ], + "id": 931, + "name": "FunctionCall", + "src": "3684:76:8" + } + ], + "id": 932, + "name": "ExpressionStatement", + "src": "3684:76:8" + }, + { + "attributes": { + "functionReturnParameters": 917 + }, + "children": [ + { + "attributes": { "argumentTypes": null, - "hexValue": "30", - "id": 3879, + "hexvalue": "74727565", "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", "lValueRequested": false, - "nodeType": "Literal", - "src": "5799:1:8", "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "token": "bool", + "type": "bool", + "value": "true" }, - "src": "5788:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "id": 933, + "name": "Literal", + "src": "3773:4:8" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3877, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4201, - "src": "5780:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "id": 934, + "name": "Return", + "src": "3766:11:8" + } + ], + "id": 935, + "name": "Block", + "src": "3678:104:8" + } + ], + "id": 936, + "name": "FunctionDefinition", + "src": "3570:212:8" + }, + { + "attributes": { + "constant": false, + "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\napprove should be called when allowed_[_spender] == 0. To decrement\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param spender The address which will spend the funds.\n@param subtractedValue The amount of tokens to decrease the allowance by.", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "decreaseAllowance", + "payable": false, + "scope": 1178, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "spender", + "scope": 963, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 937, + "name": "ElementaryTypeName", + "src": "4270:7:8" } + ], + "id": 938, + "name": "VariableDeclaration", + "src": "4270:15:8" + }, + { + "attributes": { + "constant": false, + "name": "subtractedValue", + "scope": 963, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" }, - "id": 3881, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5780:21:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3882, - "nodeType": "ExpressionStatement", - "src": "5780:21:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + "children": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "attributes": { + "name": "uint256", + "type": "uint256" }, - "id": 3888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3884, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3874, - "src": "5815:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "id": 939, + "name": "ElementaryTypeName", + "src": "4291:7:8" + } + ], + "id": 940, + "name": "VariableDeclaration", + "src": "4291:23:8" + } + ], + "id": 941, + "name": "ParameterList", + "src": "4264:54:8" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 963, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { + "id": 942, + "name": "ElementaryTypeName", + "src": "4343:4:8" + } + ], + "id": 943, + "name": "VariableDeclaration", + "src": "4343:4:8" + } + ], + "id": 944, + "name": "ParameterList", + "src": "4342:6:8" + }, + { + "children": [ + { + "children": [ + { + "attributes": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3885, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3605, - "src": "5825:9:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1145, + "type": "function (address,address,uint256)", + "value": "_approve" + }, + "id": 945, + "name": "Identifier", + "src": "4357:8:8" }, - "id": 3887, - "indexExpression": { - "argumentTypes": null, - "id": 3886, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3872, - "src": "5835:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1447, + "type": "msg", + "value": "msg" + }, + "id": 946, + "name": "Identifier", + "src": "4366:3:8" + } + ], + "id": 947, + "name": "MemberAccess", + "src": "4366:10:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 938, + "type": "address", + "value": "spender" + }, + "id": 948, + "name": "Identifier", + "src": "4378:7:8" }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sub", + "referencedDeclaration": 731, + "type": "function (uint256,uint256) pure returns (uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 798, + "type": "mapping(address => mapping(address => uint256))", + "value": "_allowed" + }, + "id": 949, + "name": "Identifier", + "src": "4387:8:8" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1447, + "type": "msg", + "value": "msg" + }, + "id": 950, + "name": "Identifier", + "src": "4396:3:8" + } + ], + "id": 951, + "name": "MemberAccess", + "src": "4396:10:8" + } + ], + "id": 952, + "name": "IndexAccess", + "src": "4387:20:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 938, + "type": "address", + "value": "spender" + }, + "id": 953, + "name": "Identifier", + "src": "4408:7:8" + } + ], + "id": 954, + "name": "IndexAccess", + "src": "4387:29:8" + } + ], + "id": 955, + "name": "MemberAccess", + "src": "4387:33:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 940, + "type": "uint256", + "value": "subtractedValue" + }, + "id": 956, + "name": "Identifier", + "src": "4421:15:8" + } + ], + "id": 957, + "name": "FunctionCall", + "src": "4387:50:8" + } + ], + "id": 958, + "name": "FunctionCall", + "src": "4357:81:8" + } + ], + "id": 959, + "name": "ExpressionStatement", + "src": "4357:81:8" + }, + { + "attributes": { + "functionReturnParameters": 944 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5825:18:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" }, - "src": "5815:28:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "id": 960, + "name": "Literal", + "src": "4451:4:8" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3883, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4201, - "src": "5807:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "id": 961, + "name": "Return", + "src": "4444:11:8" + } + ], + "id": 962, + "name": "Block", + "src": "4351:109:8" + } + ], + "id": 963, + "name": "FunctionDefinition", + "src": "4238:222:8" + }, + { + "attributes": { + "constant": false, + "documentation": "@dev Transfer token for a specified addresses\n@param from The address to transfer from.\n@param to The address to transfer to.\n@param value The amount to be transferred.", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "_transfer", + "payable": false, + "scope": 1178, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "from", + "scope": 1017, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 964, + "name": "ElementaryTypeName", + "src": "4679:7:8" } + ], + "id": 965, + "name": "VariableDeclaration", + "src": "4679:12:8" + }, + { + "attributes": { + "constant": false, + "name": "to", + "scope": 1017, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" }, - "id": 3889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5807:37:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3890, - "nodeType": "ExpressionStatement", - "src": "5807:37:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 3896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3891, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3613, - "src": "5851:12:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 966, + "name": "ElementaryTypeName", + "src": "4693:7:8" } + ], + "id": 967, + "name": "VariableDeclaration", + "src": "4693:10:8" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 1017, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 968, + "name": "ElementaryTypeName", + "src": "4705:7:8" + } + ], + "id": 969, + "name": "VariableDeclaration", + "src": "4705:13:8" + } + ], + "id": 970, + "name": "ParameterList", + "src": "4678:41:8" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 971, + "name": "ParameterList", + "src": "4729:0:8" + }, + { + "children": [ + { + "children": [ + { + "attributes": { "argumentTypes": null, - "id": 3894, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3874, - "src": "5883:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1450, + "type": "function (bool) pure", + "value": "require" + }, + "id": 972, + "name": "Identifier", + "src": "4735:7:8" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 969, + "type": "uint256", + "value": "value" + }, + "id": 973, + "name": "Identifier", + "src": "4743:5:8" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 792, + "type": "mapping(address => uint256)", + "value": "_balances" + }, + "id": 974, + "name": "Identifier", + "src": "4752:9:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "address", + "value": "from" + }, + "id": 975, + "name": "Identifier", + "src": "4762:4:8" + } + ], + "id": 976, + "name": "IndexAccess", + "src": "4752:15:8" + } + ], + "id": 977, + "name": "BinaryOperation", + "src": "4743:24:8" } ], - "expression": { - "argumentTypes": null, - "id": 3892, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3613, - "src": "5866:12:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3893, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3544, - "src": "5866:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5866:24:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "id": 978, + "name": "FunctionCall", + "src": "4735:33:8" } - }, - "src": "5851:39:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + ], + "id": 979, + "name": "ExpressionStatement", + "src": "4735:33:8" }, - "id": 3897, - "nodeType": "ExpressionStatement", - "src": "5851:39:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 3907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3898, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3605, - "src": "5896:9:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3900, - "indexExpression": { - "argumentTypes": null, - "id": 3899, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3872, - "src": "5906:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5896:18:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1450, + "type": "function (bool) pure", + "value": "require" + }, + "id": 980, + "name": "Identifier", + "src": "4774:7:8" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "address", + "value": "to" + }, + "id": 981, + "name": "Identifier", + "src": "4782:2:8" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 982, + "name": "ElementaryTypeNameExpression", + "src": "4788:7:8" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 983, + "name": "Literal", + "src": "4796:1:8" + } + ], + "id": 984, + "name": "FunctionCall", + "src": "4788:10:8" + } + ], + "id": 985, + "name": "BinaryOperation", + "src": "4782:16:8" + } + ], + "id": 986, + "name": "FunctionCall", + "src": "4774:25:8" } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { + ], + "id": 987, + "name": "ExpressionStatement", + "src": "4774:25:8" + }, + { + "children": [ + { + "attributes": { "argumentTypes": null, - "id": 3905, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3874, - "src": "5940:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 792, + "type": "mapping(address => uint256)", + "value": "_balances" + }, + "id": 988, + "name": "Identifier", + "src": "4806:9:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "address", + "value": "from" + }, + "id": 989, + "name": "Identifier", + "src": "4816:4:8" + } + ], + "id": 990, + "name": "IndexAccess", + "src": "4806:15:8" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sub", + "referencedDeclaration": 731, + "type": "function (uint256,uint256) pure returns (uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 792, + "type": "mapping(address => uint256)", + "value": "_balances" + }, + "id": 991, + "name": "Identifier", + "src": "4824:9:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "address", + "value": "from" + }, + "id": 992, + "name": "Identifier", + "src": "4834:4:8" + } + ], + "id": 993, + "name": "IndexAccess", + "src": "4824:15:8" + } + ], + "id": 994, + "name": "MemberAccess", + "src": "4824:19:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 969, + "type": "uint256", + "value": "value" + }, + "id": 995, + "name": "Identifier", + "src": "4844:5:8" + } + ], + "id": 996, + "name": "FunctionCall", + "src": "4824:26:8" } ], - "expression": { + "id": 997, + "name": "Assignment", + "src": "4806:44:8" + } + ], + "id": 998, + "name": "ExpressionStatement", + "src": "4806:44:8" + }, + { + "children": [ + { + "attributes": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3901, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3605, - "src": "5917:9:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3903, - "indexExpression": { - "argumentTypes": null, - "id": 3902, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3872, - "src": "5927:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "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": 792, + "type": "mapping(address => uint256)", + "value": "_balances" + }, + "id": 999, + "name": "Identifier", + "src": "4856:9:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "address", + "value": "to" + }, + "id": 1000, + "name": "Identifier", + "src": "4866:2:8" + } + ], + "id": 1001, + "name": "IndexAccess", + "src": "4856:13:8" }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 755, + "type": "function (uint256,uint256) pure returns (uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 792, + "type": "mapping(address => uint256)", + "value": "_balances" + }, + "id": 1002, + "name": "Identifier", + "src": "4872:9:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "address", + "value": "to" + }, + "id": 1003, + "name": "Identifier", + "src": "4882:2:8" + } + ], + "id": 1004, + "name": "IndexAccess", + "src": "4872:13:8" + } + ], + "id": 1005, + "name": "MemberAccess", + "src": "4872:17:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 969, + "type": "uint256", + "value": "value" + }, + "id": 1006, + "name": "Identifier", + "src": "4890:5:8" + } + ], + "id": 1007, + "name": "FunctionCall", + "src": "4872:24:8" + } + ], + "id": 1008, + "name": "Assignment", + "src": "4856:40:8" + } + ], + "id": 1009, + "name": "ExpressionStatement", + "src": "4856:40:8" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "isStructConstructorCall": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5917:18:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1305, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 1010, + "name": "Identifier", + "src": "4907:8:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "address", + "value": "from" + }, + "id": 1011, + "name": "Identifier", + "src": "4916:4:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "address", + "value": "to" + }, + "id": 1012, + "name": "Identifier", + "src": "4922:2:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 969, + "type": "uint256", + "value": "value" + }, + "id": 1013, + "name": "Identifier", + "src": "4926:5:8" } + ], + "id": 1014, + "name": "FunctionCall", + "src": "4907:25:8" + } + ], + "id": 1015, + "name": "EmitStatement", + "src": "4902:30:8" + } + ], + "id": 1016, + "name": "Block", + "src": "4729:208:8" + } + ], + "id": 1017, + "name": "FunctionDefinition", + "src": "4660:277:8" + }, + { + "attributes": { + "constant": false, + "documentation": "@dev Internal function that mints an amount of the token and assigns it to\nan account. This encapsulates the modification of balances such that the\nproper events are emitted.\n@param account The account that will receive the created tokens.\n@param amount The amount that will be created.", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "_mint", + "payable": false, + "scope": 1178, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "account", + "scope": 1057, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" }, - "id": 3904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3544, - "src": "5917:22:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5917:30:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "id": 1018, + "name": "ElementaryTypeName", + "src": "5280:7:8" } + ], + "id": 1019, + "name": "VariableDeclaration", + "src": "5280:15:8" + }, + { + "attributes": { + "constant": false, + "name": "amount", + "scope": 1057, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" }, - "src": "5896:51:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3908, - "nodeType": "ExpressionStatement", - "src": "5896:51:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ + "children": [ { - "argumentTypes": null, - "id": 3910, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3872, - "src": "5967:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1020, + "name": "ElementaryTypeName", + "src": "5297:7:8" + } + ], + "id": 1021, + "name": "VariableDeclaration", + "src": "5297:14:8" + } + ], + "id": 1022, + "name": "ParameterList", + "src": "5279:33:8" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1023, + "name": "ParameterList", + "src": "5322:0:8" + }, + { + "children": [ + { + "children": [ { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3912, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5984:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1450, + "type": "function (bool) pure", + "value": "require" }, - "value": "0" + "id": 1024, + "name": "Identifier", + "src": "5328:7:8" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1019, + "type": "address", + "value": "account" + }, + "id": 1025, + "name": "Identifier", + "src": "5336:7:8" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1026, + "name": "Literal", + "src": "5347:1:8" + } + ], + "id": 1027, + "name": "BinaryOperation", + "src": "5336:12:8" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3911, + "id": 1028, + "name": "FunctionCall", + "src": "5328:21:8" + } + ], + "id": 1029, + "name": "ExpressionStatement", + "src": "5328:21:8" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5976:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "operator": "=", + "type": "uint256" }, - "id": 3913, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5976:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3914, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3874, - "src": "5988:6:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 800, + "type": "uint256", + "value": "_totalSupply" + }, + "id": 1030, + "name": "Identifier", + "src": "5355:12:8" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 755, + "type": "function (uint256,uint256) pure returns (uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 800, + "type": "uint256", + "value": "_totalSupply" + }, + "id": 1031, + "name": "Identifier", + "src": "5370:12:8" + } + ], + "id": 1032, + "name": "MemberAccess", + "src": "5370:16:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1021, + "type": "uint256", + "value": "amount" + }, + "id": 1033, + "name": "Identifier", + "src": "5387:6:8" + } + ], + "id": 1034, + "name": "FunctionCall", + "src": "5370:24:8" + } + ], + "id": 1035, + "name": "Assignment", + "src": "5355:39:8" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3909, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4118, - "src": "5958:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3915, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5958:37:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3916, - "nodeType": "EmitStatement", - "src": "5953:42:8" - } - ] - }, - "documentation": "@dev Internal function that burns an amount of the token of a given\naccount.\n@param account The account whose tokens will be burnt.\n@param amount The amount that will be burnt.", - "id": 3918, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3875, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3872, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 3918, - "src": "5732:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3871, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5732:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "id": 1036, + "name": "ExpressionStatement", + "src": "5355:39:8" }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3874, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 3918, - "src": "5749:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3873, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5749:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5731:33:8" - }, - "payable": false, - "returnParameters": { - "id": 3876, - "nodeType": "ParameterList", - "parameters": [], - "src": "5774:0:8" - }, - "scope": 3991, - "src": "5717:283:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3957, - "nodeType": "Block", - "src": "6337:174:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ + { + "children": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "attributes": { "argumentTypes": null, - "id": 3928, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3922, - "src": "6355:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "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": 792, + "type": "mapping(address => uint256)", + "value": "_balances" + }, + "id": 1037, + "name": "Identifier", + "src": "5400:9:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1019, + "type": "address", + "value": "account" + }, + "id": 1038, + "name": "Identifier", + "src": "5410:7:8" + } + ], + "id": 1039, + "name": "IndexAccess", + "src": "5400:18:8" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 755, + "type": "function (uint256,uint256) pure returns (uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 792, + "type": "mapping(address => uint256)", + "value": "_balances" + }, + "id": 1040, + "name": "Identifier", + "src": "5421:9:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1019, + "type": "address", + "value": "account" + }, + "id": 1041, + "name": "Identifier", + "src": "5431:7:8" + } + ], + "id": 1042, + "name": "IndexAccess", + "src": "5421:18:8" + } + ], + "id": 1043, + "name": "MemberAccess", + "src": "5421:22:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1021, + "type": "uint256", + "value": "amount" + }, + "id": 1044, + "name": "Identifier", + "src": "5444:6:8" + } + ], + "id": 1045, + "name": "FunctionCall", + "src": "5421:30:8" } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { + ], + "id": 1046, + "name": "Assignment", + "src": "5400:51:8" + } + ], + "id": 1047, + "name": "ExpressionStatement", + "src": "5400:51:8" + }, + { + "children": [ + { + "attributes": { "argumentTypes": null, - "arguments": [ - { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1305, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 1048, + "name": "Identifier", + "src": "5462:8:8" + }, + { + "attributes": { "argumentTypes": null, - "hexValue": "30", - "id": 3930, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", + "isStructConstructorCall": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "6374:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "names": [ + null + ], + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 1049, + "name": "ElementaryTypeNameExpression", + "src": "5471:7:8" }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1050, + "name": "Literal", + "src": "5479:1:8" } ], - "id": 3929, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6366:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" + "id": 1051, + "name": "FunctionCall", + "src": "5471:10:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1019, + "type": "address", + "value": "account" }, - "typeName": "address" + "id": 1052, + "name": "Identifier", + "src": "5483:7:8" }, - "id": 3931, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6366:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1021, + "type": "uint256", + "value": "amount" + }, + "id": 1053, + "name": "Identifier", + "src": "5492:6:8" } - }, - "src": "6355:21:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + ], + "id": 1054, + "name": "FunctionCall", + "src": "5462:37:8" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3927, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4201, - "src": "6347:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "id": 1055, + "name": "EmitStatement", + "src": "5457:42:8" + } + ], + "id": 1056, + "name": "Block", + "src": "5322:182:8" + } + ], + "id": 1057, + "name": "FunctionDefinition", + "src": "5265:239:8" + }, + { + "attributes": { + "constant": false, + "documentation": "@dev Internal function that burns an amount of the token of a given\naccount.\n@param account The account whose tokens will be burnt.\n@param amount The amount that will be burnt.", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "_burn", + "payable": false, + "scope": 1178, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "account", + "scope": 1105, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1058, + "name": "ElementaryTypeName", + "src": "5732:7:8" } + ], + "id": 1059, + "name": "VariableDeclaration", + "src": "5732:15:8" + }, + { + "attributes": { + "constant": false, + "name": "amount", + "scope": 1105, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" }, - "id": 3933, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6347:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3934, - "nodeType": "ExpressionStatement", - "src": "6347:30:8" + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1060, + "name": "ElementaryTypeName", + "src": "5749:7:8" + } + ], + "id": 1061, + "name": "VariableDeclaration", + "src": "5749:14:8" + } + ], + "id": 1062, + "name": "ParameterList", + "src": "5731:33:8" + }, + { + "attributes": { + "parameters": [ + null + ] }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + "children": [], + "id": 1063, + "name": "ParameterList", + "src": "5774:0:8" + }, + { + "children": [ + { + "children": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false }, - "id": 3940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1450, + "type": "function (bool) pure", + "value": "require" + }, + "id": 1064, + "name": "Identifier", + "src": "5780:7:8" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1059, + "type": "address", + "value": "account" + }, + "id": 1065, + "name": "Identifier", + "src": "5788:7:8" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1066, + "name": "Literal", + "src": "5799:1:8" + } + ], + "id": 1067, + "name": "BinaryOperation", + "src": "5788:12:8" + } + ], + "id": 1068, + "name": "FunctionCall", + "src": "5780:21:8" + } + ], + "id": 1069, + "name": "ExpressionStatement", + "src": "5780:21:8" + }, + { + "children": [ + { + "attributes": { "argumentTypes": null, - "id": 3936, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3920, - "src": "6395:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1450, + "type": "function (bool) pure", + "value": "require" + }, + "id": 1070, + "name": "Identifier", + "src": "5807:7:8" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1061, + "type": "uint256", + "value": "amount" + }, + "id": 1071, + "name": "Identifier", + "src": "5815:6:8" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 792, + "type": "mapping(address => uint256)", + "value": "_balances" + }, + "id": 1072, + "name": "Identifier", + "src": "5825:9:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1059, + "type": "address", + "value": "account" + }, + "id": 1073, + "name": "Identifier", + "src": "5835:7:8" + } + ], + "id": 1074, + "name": "IndexAccess", + "src": "5825:18:8" + } + ], + "id": 1075, + "name": "BinaryOperation", + "src": "5815:28:8" } + ], + "id": 1076, + "name": "FunctionCall", + "src": "5807:37:8" + } + ], + "id": 1077, + "name": "ExpressionStatement", + "src": "5807:37:8" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 800, + "type": "uint256", + "value": "_totalSupply" + }, + "id": 1078, + "name": "Identifier", + "src": "5851:12:8" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sub", + "referencedDeclaration": 731, + "type": "function (uint256,uint256) pure returns (uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 800, + "type": "uint256", + "value": "_totalSupply" + }, + "id": 1079, + "name": "Identifier", + "src": "5866:12:8" + } + ], + "id": 1080, + "name": "MemberAccess", + "src": "5866:16:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1061, + "type": "uint256", + "value": "amount" + }, + "id": 1081, + "name": "Identifier", + "src": "5883:6:8" + } + ], + "id": 1082, + "name": "FunctionCall", + "src": "5866:24:8" + } + ], + "id": 1083, + "name": "Assignment", + "src": "5851:39:8" + } + ], + "id": 1084, + "name": "ExpressionStatement", + "src": "5851:39:8" + }, + { + "children": [ + { + "attributes": { "argumentTypes": null, - "arguments": [ - { + "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": 792, + "type": "mapping(address => uint256)", + "value": "_balances" + }, + "id": 1085, + "name": "Identifier", + "src": "5896:9:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1059, + "type": "address", + "value": "account" + }, + "id": 1086, + "name": "Identifier", + "src": "5906:7:8" + } + ], + "id": 1087, + "name": "IndexAccess", + "src": "5896:18:8" + }, + { + "attributes": { "argumentTypes": null, - "hexValue": "30", - "id": 3938, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "isStructConstructorCall": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "6412:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sub", + "referencedDeclaration": 731, + "type": "function (uint256,uint256) pure returns (uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 792, + "type": "mapping(address => uint256)", + "value": "_balances" + }, + "id": 1088, + "name": "Identifier", + "src": "5917:9:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1059, + "type": "address", + "value": "account" + }, + "id": 1089, + "name": "Identifier", + "src": "5927:7:8" + } + ], + "id": 1090, + "name": "IndexAccess", + "src": "5917:18:8" + } + ], + "id": 1091, + "name": "MemberAccess", + "src": "5917:22:8" }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1061, + "type": "uint256", + "value": "amount" + }, + "id": 1092, + "name": "Identifier", + "src": "5940:6:8" } ], - "id": 3937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6404:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3939, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6404:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "id": 1093, + "name": "FunctionCall", + "src": "5917:30:8" } - }, - "src": "6395:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + ], + "id": 1094, + "name": "Assignment", + "src": "5896:51:8" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3935, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4201, - "src": "6387:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6387:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + "id": 1095, + "name": "ExpressionStatement", + "src": "5896:51:8" }, - "id": 3942, - "nodeType": "ExpressionStatement", - "src": "6387:28:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 3949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3943, - "name": "_allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3611, - "src": "6426:8:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3946, - "indexExpression": { + { + "children": [ + { + "attributes": { "argumentTypes": null, - "id": 3944, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3920, - "src": "6435:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6426:15:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 3947, - "indexExpression": { - "argumentTypes": null, - "id": 3945, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3922, - "src": "6442:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6426:24:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3948, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3924, - "src": "6453:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6426:32:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3950, - "nodeType": "ExpressionStatement", - "src": "6426:32:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3952, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3920, - "src": "6482:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3953, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3922, - "src": "6489:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3954, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3924, - "src": "6498:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1305, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 1096, + "name": "Identifier", + "src": "5958:8:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1059, + "type": "address", + "value": "account" + }, + "id": 1097, + "name": "Identifier", + "src": "5967:7:8" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 1098, + "name": "ElementaryTypeNameExpression", + "src": "5976:7:8" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1099, + "name": "Literal", + "src": "5984:1:8" + } + ], + "id": 1100, + "name": "FunctionCall", + "src": "5976:10:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1061, + "type": "uint256", + "value": "amount" + }, + "id": 1101, + "name": "Identifier", + "src": "5988:6:8" + } + ], + "id": 1102, + "name": "FunctionCall", + "src": "5958:37:8" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" + "id": 1103, + "name": "EmitStatement", + "src": "5953:42:8" + } + ], + "id": 1104, + "name": "Block", + "src": "5774:226:8" + } + ], + "id": 1105, + "name": "FunctionDefinition", + "src": "5717:283:8" + }, + { + "attributes": { + "constant": false, + "documentation": "@dev Approve an address to spend another addresses' tokens.\n@param owner The address that owns the tokens.\n@param spender The address that will spend the tokens.\n@param value The number of tokens that can be spent.", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "_approve", + "payable": false, + "scope": 1178, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "owner", + "scope": 1145, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3951, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4126, - "src": "6473:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" + "id": 1106, + "name": "ElementaryTypeName", + "src": "6281:7:8" } - }, - "id": 3955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6473:31:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3956, - "nodeType": "EmitStatement", - "src": "6468:36:8" - } - ] - }, - "documentation": "@dev Approve an address to spend another addresses' tokens.\n@param owner The address that owns the tokens.\n@param spender The address that will spend the tokens.\n@param value The number of tokens that can be spent.", - "id": 3958, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3925, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3920, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 3958, - "src": "6281:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + ], + "id": 1107, + "name": "VariableDeclaration", + "src": "6281:13:8" }, - "typeName": { - "id": 3919, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6281:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + { + "attributes": { + "constant": false, + "name": "spender", + "scope": 1145, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1108, + "name": "ElementaryTypeName", + "src": "6296:7:8" + } + ], + "id": 1109, + "name": "VariableDeclaration", + "src": "6296:15:8" }, - "value": null, - "visibility": "internal" + { + "attributes": { + "constant": false, + "name": "value", + "scope": 1145, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1110, + "name": "ElementaryTypeName", + "src": "6313:7:8" + } + ], + "id": 1111, + "name": "VariableDeclaration", + "src": "6313:13:8" + } + ], + "id": 1112, + "name": "ParameterList", + "src": "6280:47:8" + }, + { + "attributes": { + "parameters": [ + null + ] }, - { - "constant": false, - "id": 3922, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 3958, - "src": "6296:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3921, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6296:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "children": [], + "id": 1113, + "name": "ParameterList", + "src": "6337:0:8" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1450, + "type": "function (bool) pure", + "value": "require" + }, + "id": 1114, + "name": "Identifier", + "src": "6347:7:8" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1109, + "type": "address", + "value": "spender" + }, + "id": 1115, + "name": "Identifier", + "src": "6355:7:8" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 1116, + "name": "ElementaryTypeNameExpression", + "src": "6366:7:8" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1117, + "name": "Literal", + "src": "6374:1:8" + } + ], + "id": 1118, + "name": "FunctionCall", + "src": "6366:10:8" + } + ], + "id": 1119, + "name": "BinaryOperation", + "src": "6355:21:8" + } + ], + "id": 1120, + "name": "FunctionCall", + "src": "6347:30:8" + } + ], + "id": 1121, + "name": "ExpressionStatement", + "src": "6347:30:8" }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3924, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 3958, - "src": "6313:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1450, + "type": "function (bool) pure", + "value": "require" + }, + "id": 1122, + "name": "Identifier", + "src": "6387:7:8" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1107, + "type": "address", + "value": "owner" + }, + "id": 1123, + "name": "Identifier", + "src": "6395:5:8" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 1124, + "name": "ElementaryTypeNameExpression", + "src": "6404:7:8" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1125, + "name": "Literal", + "src": "6412:1:8" + } + ], + "id": 1126, + "name": "FunctionCall", + "src": "6404:10:8" + } + ], + "id": 1127, + "name": "BinaryOperation", + "src": "6395:19:8" + } + ], + "id": 1128, + "name": "FunctionCall", + "src": "6387:28:8" + } + ], + "id": 1129, + "name": "ExpressionStatement", + "src": "6387:28:8" }, - "typeName": { - "id": 3923, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6313:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + { + "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, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 798, + "type": "mapping(address => mapping(address => uint256))", + "value": "_allowed" + }, + "id": 1130, + "name": "Identifier", + "src": "6426:8:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1107, + "type": "address", + "value": "owner" + }, + "id": 1131, + "name": "Identifier", + "src": "6435:5:8" + } + ], + "id": 1133, + "name": "IndexAccess", + "src": "6426:15:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1109, + "type": "address", + "value": "spender" + }, + "id": 1132, + "name": "Identifier", + "src": "6442:7:8" + } + ], + "id": 1134, + "name": "IndexAccess", + "src": "6426:24:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1111, + "type": "uint256", + "value": "value" + }, + "id": 1135, + "name": "Identifier", + "src": "6453:5:8" + } + ], + "id": 1136, + "name": "Assignment", + "src": "6426:32:8" + } + ], + "id": 1137, + "name": "ExpressionStatement", + "src": "6426:32:8" }, - "value": null, - "visibility": "internal" - } - ], - "src": "6280:47:8" - }, - "payable": false, - "returnParameters": { - "id": 3926, - "nodeType": "ParameterList", - "parameters": [], - "src": "6337:0:8" - }, - "scope": 3991, - "src": "6263:248:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1313, + "type": "function (address,address,uint256)", + "value": "Approval" + }, + "id": 1138, + "name": "Identifier", + "src": "6473:8:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1107, + "type": "address", + "value": "owner" + }, + "id": 1139, + "name": "Identifier", + "src": "6482:5:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1109, + "type": "address", + "value": "spender" + }, + "id": 1140, + "name": "Identifier", + "src": "6489:7:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1111, + "type": "uint256", + "value": "value" + }, + "id": 1141, + "name": "Identifier", + "src": "6498:5:8" + } + ], + "id": 1142, + "name": "FunctionCall", + "src": "6473:31:8" + } + ], + "id": 1143, + "name": "EmitStatement", + "src": "6468:36:8" + } + ], + "id": 1144, + "name": "Block", + "src": "6337:174:8" + } + ], + "id": 1145, + "name": "FunctionDefinition", + "src": "6263:248:8" }, { - "body": { - "id": 3985, - "nodeType": "Block", - "src": "6876:113:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3966, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3960, - "src": "6892:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, + "attributes": { + "constant": false, + "documentation": "@dev Internal function that burns an amount of the token of a given\naccount, deducting from the sender's allowance for said account. Uses the\ninternal burn function.\n@param account The account whose tokens will be burnt.\n@param value The amount that will be burnt.", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "_burnFrom", + "payable": false, + "scope": 1178, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "account", + "scope": 1173, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ { - "argumentTypes": null, - "id": 3967, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3962, - "src": "6901:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1146, + "name": "ElementaryTypeName", + "src": "6835:7:8" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" + "id": 1147, + "name": "VariableDeclaration", + "src": "6835:15:8" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 1173, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3965, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3918, - "src": "6886:5:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" + "id": 1148, + "name": "ElementaryTypeName", + "src": "6852:7:8" } - }, - "id": 3968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6886:21:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3969, - "nodeType": "ExpressionStatement", - "src": "6886:21:8" + ], + "id": 1149, + "name": "VariableDeclaration", + "src": "6852:13:8" + } + ], + "id": 1150, + "name": "ParameterList", + "src": "6834:32:8" + }, + { + "attributes": { + "parameters": [ + null + ] }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3971, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3960, - "src": "6922:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, + "children": [], + "id": 1151, + "name": "ParameterList", + "src": "6876:0:8" + }, + { + "children": [ + { + "children": [ { - "argumentTypes": null, - "expression": { + "attributes": { "argumentTypes": null, - "id": 3972, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "6931:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false }, - "id": 3973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6931:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ + "children": [ { - "argumentTypes": null, - "id": 3981, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3962, - "src": "6977:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3974, - "name": "_allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3611, - "src": "6943:8:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 3976, - "indexExpression": { - "argumentTypes": null, - "id": 3975, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3960, - "src": "6952:7:8", - "typeDescriptions": { + "attributes": { + "argumentTypes": [ + { "typeIdentifier": "t_address", "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6943:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1105, + "type": "function (address,uint256)", + "value": "_burn" }, - "id": 3979, - "indexExpression": { + "id": 1152, + "name": "Identifier", + "src": "6886:5:8" + }, + { + "attributes": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3977, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "6961:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1147, + "type": "address", + "value": "account" + }, + "id": 1153, + "name": "Identifier", + "src": "6892:7:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1149, + "type": "uint256", + "value": "value" + }, + "id": 1154, + "name": "Identifier", + "src": "6901:5:8" + } + ], + "id": 1155, + "name": "FunctionCall", + "src": "6886:21:8" + } + ], + "id": 1156, + "name": "ExpressionStatement", + "src": "6886:21:8" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 3978, + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1145, + "type": "function (address,address,uint256)", + "value": "_approve" + }, + "id": 1157, + "name": "Identifier", + "src": "6913:8:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1147, + "type": "address", + "value": "account" + }, + "id": 1158, + "name": "Identifier", + "src": "6922:7:8" + }, + { + "attributes": { + "argumentTypes": null, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", + "member_name": "sender", "referencedDeclaration": null, - "src": "6961:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "type": "address" }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6943:29:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1447, + "type": "msg", + "value": "msg" + }, + "id": 1159, + "name": "Identifier", + "src": "6931:3:8" + } + ], + "id": 1160, + "name": "MemberAccess", + "src": "6931:10:8" }, - "id": 3980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3544, - "src": "6943:33:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sub", + "referencedDeclaration": 731, + "type": "function (uint256,uint256) pure returns (uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 798, + "type": "mapping(address => mapping(address => uint256))", + "value": "_allowed" + }, + "id": 1161, + "name": "Identifier", + "src": "6943:8:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1147, + "type": "address", + "value": "account" + }, + "id": 1162, + "name": "Identifier", + "src": "6952:7:8" + } + ], + "id": 1163, + "name": "IndexAccess", + "src": "6943:17:8" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1447, + "type": "msg", + "value": "msg" + }, + "id": 1164, + "name": "Identifier", + "src": "6961:3:8" + } + ], + "id": 1165, + "name": "MemberAccess", + "src": "6961:10:8" + } + ], + "id": 1166, + "name": "IndexAccess", + "src": "6943:29:8" + } + ], + "id": 1167, + "name": "MemberAccess", + "src": "6943:33:8" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1149, + "type": "uint256", + "value": "value" + }, + "id": 1168, + "name": "Identifier", + "src": "6977:5:8" + } + ], + "id": 1169, + "name": "FunctionCall", + "src": "6943:40:8" } - }, - "id": 3982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6943:40:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + ], + "id": 1170, + "name": "FunctionCall", + "src": "6913:71:8" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3970, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3958, - "src": "6913:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 3983, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6913:71:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3984, - "nodeType": "ExpressionStatement", - "src": "6913:71:8" - } - ] - }, - "documentation": "@dev Internal function that burns an amount of the token of a given\naccount, deducting from the sender's allowance for said account. Uses the\ninternal burn function.\n@param account The account whose tokens will be burnt.\n@param value The amount that will be burnt.", - "id": 3986, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_burnFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3963, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3960, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 3986, - "src": "6835:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3959, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6835:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3962, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 3986, - "src": "6852:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3961, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6852:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6834:32:8" - }, - "payable": false, - "returnParameters": { - "id": 3964, - "nodeType": "ParameterList", - "parameters": [], - "src": "6876:0:8" - }, - "scope": 3991, - "src": "6816:173:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" + "id": 1171, + "name": "ExpressionStatement", + "src": "6913:71:8" + } + ], + "id": 1172, + "name": "Block", + "src": "6876:113:8" + } + ], + "id": 1173, + "name": "FunctionDefinition", + "src": "6816:173:8" }, { - "constant": false, - "id": 3990, - "name": "______gap", - "nodeType": "VariableDeclaration", - "scope": 3991, - "src": "6993:29:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$50_storage", - "typeString": "uint256[50]" + "attributes": { + "constant": false, + "name": "______gap", + "scope": 1178, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256[50]", + "value": null, + "visibility": "private" }, - "typeName": { - "baseType": { - "id": 3987, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6993:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3989, - "length": { - "argumentTypes": null, - "hexValue": "3530", - "id": 3988, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7001:2:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null + "children": [ + { + "attributes": { + "type": "uint256[50]" }, - "value": "50" - }, - "nodeType": "ArrayTypeName", - "src": "6993:11:8", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", - "typeString": "uint256[50]" + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1174, + "name": "ElementaryTypeName", + "src": "6993:7:8" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "3530", + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": null, + "value": "50" + }, + "id": 1175, + "name": "Literal", + "src": "7001:2:8" + } + ], + "id": 1176, + "name": "ArrayTypeName", + "src": "6993:11:8" } - }, - "value": null, - "visibility": "private" + ], + "id": 1177, + "name": "VariableDeclaration", + "src": "6993:29:8" } ], - "scope": 3992, + "id": 1178, + "name": "ContractDefinition", "src": "416:6609:8" } ], + "id": 1179, + "name": "SourceUnit", "src": "0:7026:8" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.4.25+commit.59dbf8f1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.1", - "updatedAt": "2019-08-15T18:51:44.483Z" + "schemaVersion": "3.3.4", + "updatedAt": "2021-04-02T09:51:14.580Z", + "devdoc": { + "methods": { + "allowance(address,address)": { + "details": "Function to check the amount of tokens that an owner allowed to a spender.", + "params": { + "owner": "address The address which owns the funds.", + "spender": "address The address which will spend the funds." + }, + "return": "A uint256 specifying the amount of tokens still available for the spender." + }, + "approve(address,uint256)": { + "details": "Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729", + "params": { + "spender": "The address which will spend the funds.", + "value": "The amount of tokens to be spent." + } + }, + "balanceOf(address)": { + "details": "Gets the balance of the specified address.", + "params": { + "owner": "The address to query the the balance of." + }, + "return": "An uint256 representing the amount owned by the passed address." + }, + "decreaseAllowance(address,uint256)": { + "details": "Decrease the amount of tokens that an owner allowed to a spender. approve should be called when allowed_[_spender] == 0. To decrement allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol", + "params": { + "spender": "The address which will spend the funds.", + "subtractedValue": "The amount of tokens to decrease the allowance by." + } + }, + "increaseAllowance(address,uint256)": { + "details": "Increase the amount of tokens that an owner allowed to a spender. approve should be called when allowed_[_spender] == 0. To increment allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol", + "params": { + "addedValue": "The amount of tokens to increase the allowance by.", + "spender": "The address which will spend the funds." + } + }, + "totalSupply()": { + "details": "Total number of tokens in existence" + }, + "transfer(address,uint256)": { + "details": "Transfer token for a specified address", + "params": { + "to": "The address to transfer to.", + "value": "The amount to be transferred." + } + }, + "transferFrom(address,address,uint256)": { + "details": "Transfer tokens from one address to another", + "params": { + "from": "address The address which you want to send tokens from", + "to": "address The address which you want to transfer to", + "value": "uint256 the amount of tokens to be transferred" + } + } + }, + "title": "Standard ERC20 token" + }, + "userdoc": { + "methods": {} + } } \ No newline at end of file diff --git a/build/contracts/ERC20Detailed.json b/build/contracts/ERC20Detailed.json index 7aa1f9e8..6413a84f 100644 --- a/build/contracts/ERC20Detailed.json +++ b/build/contracts/ERC20Detailed.json @@ -239,6 +239,7 @@ "type": "function" } ], + "metadata": "", "bytecode": "0x", "deployedBytecode": "0x", "sourceMap": "", @@ -249,14 +250,14 @@ "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol", "exportedSymbols": { "ERC20Detailed": [ - 4058 + 1245 ] }, - "id": 4059, + "id": 1246, "nodeType": "SourceUnit", "nodes": [ { - "id": 3993, + "id": 1180, "literals": [ "solidity", "^", @@ -269,10 +270,10 @@ { "absolutePath": "zos-lib/contracts/Initializable.sol", "file": "zos-lib/contracts/Initializable.sol", - "id": 3994, + "id": 1181, "nodeType": "ImportDirective", - "scope": 4059, - "sourceUnit": 4184, + "scope": 1246, + "sourceUnit": 1433, "src": "26:45:9", "symbolAliases": [], "unitAlias": "" @@ -280,10 +281,10 @@ { "absolutePath": "openzeppelin-eth/contracts/token/ERC20/IERC20.sol", "file": "./IERC20.sol", - "id": 3995, + "id": 1182, "nodeType": "ImportDirective", - "scope": 4059, - "sourceUnit": 4128, + "scope": 1246, + "sourceUnit": 1315, "src": "72:22:9", "symbolAliases": [], "unitAlias": "" @@ -294,17 +295,17 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3996, + "id": 1183, "name": "Initializable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4183, + "referencedDeclaration": 1432, "src": "356:13:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_Initializable_$4183", + "typeIdentifier": "t_contract$_Initializable_$1432", "typeString": "contract Initializable" } }, - "id": 3997, + "id": 1184, "nodeType": "InheritanceSpecifier", "src": "356:13:9" }, @@ -312,43 +313,43 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3998, + "id": 1185, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4127, + "referencedDeclaration": 1314, "src": "371:6:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$4127", + "typeIdentifier": "t_contract$_IERC20_$1314", "typeString": "contract IERC20" } }, - "id": 3999, + "id": 1186, "nodeType": "InheritanceSpecifier", "src": "371:6:9" } ], "contractDependencies": [ - 4127, - 4183 + 1314, + 1432 ], "contractKind": "contract", "documentation": "@title ERC20Detailed token\n@dev The decimals are only for visualization purposes.\nAll the operations are done using the smallest and indivisible token unit,\njust as on Ethereum all the operations are done in wei.", "fullyImplemented": false, - "id": 4058, + "id": 1245, "linearizedBaseContracts": [ - 4058, - 4127, - 4183 + 1245, + 1314, + 1432 ], "name": "ERC20Detailed", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 4001, + "id": 1188, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 4058, + "scope": 1245, "src": "382:20:9", "stateVariable": true, "storageLocation": "default", @@ -357,7 +358,7 @@ "typeString": "string" }, "typeName": { - "id": 4000, + "id": 1187, "name": "string", "nodeType": "ElementaryTypeName", "src": "382:6:9", @@ -371,10 +372,10 @@ }, { "constant": false, - "id": 4003, + "id": 1190, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 4058, + "scope": 1245, "src": "406:22:9", "stateVariable": true, "storageLocation": "default", @@ -383,7 +384,7 @@ "typeString": "string" }, "typeName": { - "id": 4002, + "id": 1189, "name": "string", "nodeType": "ElementaryTypeName", "src": "406:6:9", @@ -397,10 +398,10 @@ }, { "constant": false, - "id": 4005, + "id": 1192, "name": "_decimals", "nodeType": "VariableDeclaration", - "scope": 4058, + "scope": 1245, "src": "432:23:9", "stateVariable": true, "storageLocation": "default", @@ -409,7 +410,7 @@ "typeString": "uint8" }, "typeName": { - "id": 4004, + "id": 1191, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "432:5:9", @@ -423,25 +424,25 @@ }, { "body": { - "id": 4028, + "id": 1215, "nodeType": "Block", "src": "543:71:9", "statements": [ { "expression": { "argumentTypes": null, - "id": 4018, + "id": 1205, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4016, + "id": 1203, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4001, + "referencedDeclaration": 1188, "src": "549:5:9", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -452,11 +453,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 4017, + "id": 1204, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4007, + "referencedDeclaration": 1194, "src": "557:4:9", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -469,25 +470,25 @@ "typeString": "string storage ref" } }, - "id": 4019, + "id": 1206, "nodeType": "ExpressionStatement", "src": "549:12:9" }, { "expression": { "argumentTypes": null, - "id": 4022, + "id": 1209, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4020, + "id": 1207, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4003, + "referencedDeclaration": 1190, "src": "567:7:9", "typeDescriptions": { "typeIdentifier": "t_string_storage", @@ -498,11 +499,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 4021, + "id": 1208, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4009, + "referencedDeclaration": 1196, "src": "577:6:9", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -515,25 +516,25 @@ "typeString": "string storage ref" } }, - "id": 4023, + "id": 1210, "nodeType": "ExpressionStatement", "src": "567:16:9" }, { "expression": { "argumentTypes": null, - "id": 4026, + "id": 1213, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4024, + "id": 1211, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4005, + "referencedDeclaration": 1192, "src": "589:9:9", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -544,11 +545,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 4025, + "id": 1212, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4011, + "referencedDeclaration": 1198, "src": "601:8:9", "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -561,28 +562,28 @@ "typeString": "uint8" } }, - "id": 4027, + "id": 1214, "nodeType": "ExpressionStatement", "src": "589:20:9" } ] }, "documentation": null, - "id": 4029, + "id": 1216, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 4014, + "id": 1201, "modifierName": { "argumentTypes": null, - "id": 4013, + "id": 1200, "name": "initializer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4164, + "referencedDeclaration": 1413, "src": "531:11:9", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -596,15 +597,15 @@ "name": "initialize", "nodeType": "FunctionDefinition", "parameters": { - "id": 4012, + "id": 1199, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4007, + "id": 1194, "name": "name", "nodeType": "VariableDeclaration", - "scope": 4029, + "scope": 1216, "src": "480:11:9", "stateVariable": false, "storageLocation": "default", @@ -613,7 +614,7 @@ "typeString": "string" }, "typeName": { - "id": 4006, + "id": 1193, "name": "string", "nodeType": "ElementaryTypeName", "src": "480:6:9", @@ -627,10 +628,10 @@ }, { "constant": false, - "id": 4009, + "id": 1196, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 4029, + "scope": 1216, "src": "493:13:9", "stateVariable": false, "storageLocation": "default", @@ -639,7 +640,7 @@ "typeString": "string" }, "typeName": { - "id": 4008, + "id": 1195, "name": "string", "nodeType": "ElementaryTypeName", "src": "493:6:9", @@ -653,10 +654,10 @@ }, { "constant": false, - "id": 4011, + "id": 1198, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 4029, + "scope": 1216, "src": "508:14:9", "stateVariable": false, "storageLocation": "default", @@ -665,7 +666,7 @@ "typeString": "uint8" }, "typeName": { - "id": 4010, + "id": 1197, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "508:5:9", @@ -682,12 +683,12 @@ }, "payable": false, "returnParameters": { - "id": 4015, + "id": 1202, "nodeType": "ParameterList", "parameters": [], "src": "543:0:9" }, - "scope": 4058, + "scope": 1245, "src": "460:154:9", "stateMutability": "nonpayable", "superFunction": null, @@ -695,33 +696,33 @@ }, { "body": { - "id": 4036, + "id": 1223, "nodeType": "Block", "src": "710:23:9", "statements": [ { "expression": { "argumentTypes": null, - "id": 4034, + "id": 1221, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4001, + "referencedDeclaration": 1188, "src": "723:5:9", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "functionReturnParameters": 4033, - "id": 4035, + "functionReturnParameters": 1220, + "id": 1222, "nodeType": "Return", "src": "716:12:9" } ] }, "documentation": "@return the name of the token.", - "id": 4037, + "id": 1224, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -729,22 +730,22 @@ "name": "name", "nodeType": "FunctionDefinition", "parameters": { - "id": 4030, + "id": 1217, "nodeType": "ParameterList", "parameters": [], "src": "679:2:9" }, "payable": false, "returnParameters": { - "id": 4033, + "id": 1220, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4032, + "id": 1219, "name": "", "nodeType": "VariableDeclaration", - "scope": 4037, + "scope": 1224, "src": "702:6:9", "stateVariable": false, "storageLocation": "default", @@ -753,7 +754,7 @@ "typeString": "string" }, "typeName": { - "id": 4031, + "id": 1218, "name": "string", "nodeType": "ElementaryTypeName", "src": "702:6:9", @@ -768,7 +769,7 @@ ], "src": "701:8:9" }, - "scope": 4058, + "scope": 1245, "src": "666:67:9", "stateMutability": "view", "superFunction": null, @@ -776,33 +777,33 @@ }, { "body": { - "id": 4044, + "id": 1231, "nodeType": "Block", "src": "833:25:9", "statements": [ { "expression": { "argumentTypes": null, - "id": 4042, + "id": 1229, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4003, + "referencedDeclaration": 1190, "src": "846:7:9", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "functionReturnParameters": 4041, - "id": 4043, + "functionReturnParameters": 1228, + "id": 1230, "nodeType": "Return", "src": "839:14:9" } ] }, "documentation": "@return the symbol of the token.", - "id": 4045, + "id": 1232, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -810,22 +811,22 @@ "name": "symbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 4038, + "id": 1225, "nodeType": "ParameterList", "parameters": [], "src": "802:2:9" }, "payable": false, "returnParameters": { - "id": 4041, + "id": 1228, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4040, + "id": 1227, "name": "", "nodeType": "VariableDeclaration", - "scope": 4045, + "scope": 1232, "src": "825:6:9", "stateVariable": false, "storageLocation": "default", @@ -834,7 +835,7 @@ "typeString": "string" }, "typeName": { - "id": 4039, + "id": 1226, "name": "string", "nodeType": "ElementaryTypeName", "src": "825:6:9", @@ -849,7 +850,7 @@ ], "src": "824:8:9" }, - "scope": 4058, + "scope": 1245, "src": "787:71:9", "stateMutability": "view", "superFunction": null, @@ -857,33 +858,33 @@ }, { "body": { - "id": 4052, + "id": 1239, "nodeType": "Block", "src": "971:27:9", "statements": [ { "expression": { "argumentTypes": null, - "id": 4050, + "id": 1237, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4005, + "referencedDeclaration": 1192, "src": "984:9:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "functionReturnParameters": 4049, - "id": 4051, + "functionReturnParameters": 1236, + "id": 1238, "nodeType": "Return", "src": "977:16:9" } ] }, "documentation": "@return the number of decimals of the token.", - "id": 4053, + "id": 1240, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -891,22 +892,22 @@ "name": "decimals", "nodeType": "FunctionDefinition", "parameters": { - "id": 4046, + "id": 1233, "nodeType": "ParameterList", "parameters": [], "src": "941:2:9" }, "payable": false, "returnParameters": { - "id": 4049, + "id": 1236, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4048, + "id": 1235, "name": "", "nodeType": "VariableDeclaration", - "scope": 4053, + "scope": 1240, "src": "964:5:9", "stateVariable": false, "storageLocation": "default", @@ -915,7 +916,7 @@ "typeString": "uint8" }, "typeName": { - "id": 4047, + "id": 1234, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "964:5:9", @@ -930,7 +931,7 @@ ], "src": "963:7:9" }, - "scope": 4058, + "scope": 1245, "src": "924:74:9", "stateMutability": "view", "superFunction": null, @@ -938,10 +939,10 @@ }, { "constant": false, - "id": 4057, + "id": 1244, "name": "______gap", "nodeType": "VariableDeclaration", - "scope": 4058, + "scope": 1245, "src": "1002:29:9", "stateVariable": true, "storageLocation": "default", @@ -951,7 +952,7 @@ }, "typeName": { "baseType": { - "id": 4054, + "id": 1241, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1002:7:9", @@ -960,11 +961,11 @@ "typeString": "uint256" } }, - "id": 4056, + "id": 1243, "length": { "argumentTypes": null, "hexValue": "3530", - "id": 4055, + "id": 1242, "isConstant": false, "isLValue": false, "isPure": false, @@ -990,768 +991,878 @@ "visibility": "private" } ], - "scope": 4059, + "scope": 1246, "src": "330:704:9" } ], "src": "0:1035:9" }, "legacyAST": { - "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol", - "exportedSymbols": { - "ERC20Detailed": [ - 4058 - ] + "attributes": { + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol", + "exportedSymbols": { + "ERC20Detailed": [ + 1245 + ] + } }, - "id": 4059, - "nodeType": "SourceUnit", - "nodes": [ + "children": [ { - "id": 3993, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", + "attributes": { + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ] + }, + "id": 1180, + "name": "PragmaDirective", "src": "0:24:9" }, { - "absolutePath": "zos-lib/contracts/Initializable.sol", - "file": "zos-lib/contracts/Initializable.sol", - "id": 3994, - "nodeType": "ImportDirective", - "scope": 4059, - "sourceUnit": 4184, - "src": "26:45:9", - "symbolAliases": [], - "unitAlias": "" + "attributes": { + "SourceUnit": 1433, + "absolutePath": "zos-lib/contracts/Initializable.sol", + "file": "zos-lib/contracts/Initializable.sol", + "scope": 1246, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 1181, + "name": "ImportDirective", + "src": "26:45:9" }, { - "absolutePath": "openzeppelin-eth/contracts/token/ERC20/IERC20.sol", - "file": "./IERC20.sol", - "id": 3995, - "nodeType": "ImportDirective", - "scope": 4059, - "sourceUnit": 4128, - "src": "72:22:9", - "symbolAliases": [], - "unitAlias": "" + "attributes": { + "SourceUnit": 1315, + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/IERC20.sol", + "file": "./IERC20.sol", + "scope": 1246, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 1182, + "name": "ImportDirective", + "src": "72:22:9" }, { - "baseContracts": [ + "attributes": { + "contractDependencies": [ + 1314, + 1432 + ], + "contractKind": "contract", + "documentation": "@title ERC20Detailed token\n@dev The decimals are only for visualization purposes.\nAll the operations are done using the smallest and indivisible token unit,\njust as on Ethereum all the operations are done in wei.", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 1245, + 1314, + 1432 + ], + "name": "ERC20Detailed", + "scope": 1246 + }, + "children": [ { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3996, - "name": "Initializable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4183, - "src": "356:13:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Initializable_$4183", - "typeString": "contract Initializable" - } + "attributes": { + "arguments": null }, - "id": 3997, - "nodeType": "InheritanceSpecifier", + "children": [ + { + "attributes": { + "contractScope": null, + "name": "Initializable", + "referencedDeclaration": 1432, + "type": "contract Initializable" + }, + "id": 1183, + "name": "UserDefinedTypeName", + "src": "356:13:9" + } + ], + "id": 1184, + "name": "InheritanceSpecifier", "src": "356:13:9" }, { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3998, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4127, - "src": "371:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$4127", - "typeString": "contract IERC20" - } + "attributes": { + "arguments": null }, - "id": 3999, - "nodeType": "InheritanceSpecifier", + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IERC20", + "referencedDeclaration": 1314, + "type": "contract IERC20" + }, + "id": 1185, + "name": "UserDefinedTypeName", + "src": "371:6:9" + } + ], + "id": 1186, + "name": "InheritanceSpecifier", "src": "371:6:9" - } - ], - "contractDependencies": [ - 4127, - 4183 - ], - "contractKind": "contract", - "documentation": "@title ERC20Detailed token\n@dev The decimals are only for visualization purposes.\nAll the operations are done using the smallest and indivisible token unit,\njust as on Ethereum all the operations are done in wei.", - "fullyImplemented": false, - "id": 4058, - "linearizedBaseContracts": [ - 4058, - 4127, - 4183 - ], - "name": "ERC20Detailed", - "nodeType": "ContractDefinition", - "nodes": [ + }, { - "constant": false, - "id": 4001, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 4058, - "src": "382:20:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" + "attributes": { + "constant": false, + "name": "_name", + "scope": 1245, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "value": null, + "visibility": "private" }, - "typeName": { - "id": 4000, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "382:6:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1187, + "name": "ElementaryTypeName", + "src": "382:6:9" } - }, - "value": null, - "visibility": "private" + ], + "id": 1188, + "name": "VariableDeclaration", + "src": "382:20:9" }, { - "constant": false, - "id": 4003, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 4058, - "src": "406:22:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" + "attributes": { + "constant": false, + "name": "_symbol", + "scope": 1245, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "value": null, + "visibility": "private" }, - "typeName": { - "id": 4002, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "406:6:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1189, + "name": "ElementaryTypeName", + "src": "406:6:9" } - }, - "value": null, - "visibility": "private" + ], + "id": 1190, + "name": "VariableDeclaration", + "src": "406:22:9" }, { - "constant": false, - "id": 4005, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 4058, - "src": "432:23:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "attributes": { + "constant": false, + "name": "_decimals", + "scope": 1245, + "stateVariable": true, + "storageLocation": "default", + "type": "uint8", + "value": null, + "visibility": "private" }, - "typeName": { - "id": 4004, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "432:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 1191, + "name": "ElementaryTypeName", + "src": "432:5:9" } - }, - "value": null, - "visibility": "private" + ], + "id": 1192, + "name": "VariableDeclaration", + "src": "432:23:9" }, { - "body": { - "id": 4028, - "nodeType": "Block", - "src": "543:71:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4018, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4016, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4001, - "src": "549:5:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4017, + "attributes": { + "constant": false, + "documentation": null, + "implemented": true, + "isConstructor": false, + "name": "initialize", + "payable": false, + "scope": 1245, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4007, - "src": "557:4:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" + "scope": 1216, + "stateVariable": false, + "storageLocation": "default", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1193, + "name": "ElementaryTypeName", + "src": "480:6:9" } + ], + "id": 1194, + "name": "VariableDeclaration", + "src": "480:11:9" + }, + { + "attributes": { + "constant": false, + "name": "symbol", + "scope": 1216, + "stateVariable": false, + "storageLocation": "default", + "type": "string", + "value": null, + "visibility": "internal" }, - "src": "549:12:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1195, + "name": "ElementaryTypeName", + "src": "493:6:9" + } + ], + "id": 1196, + "name": "VariableDeclaration", + "src": "493:13:9" }, - "id": 4019, - "nodeType": "ExpressionStatement", - "src": "549:12:9" + { + "attributes": { + "constant": false, + "name": "decimals", + "scope": 1216, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 1197, + "name": "ElementaryTypeName", + "src": "508:5:9" + } + ], + "id": 1198, + "name": "VariableDeclaration", + "src": "508:14:9" + } + ], + "id": 1199, + "name": "ParameterList", + "src": "479:44:9" + }, + { + "attributes": { + "parameters": [ + null + ] }, - { - "expression": { - "argumentTypes": null, - "id": 4022, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "children": [], + "id": 1202, + "name": "ParameterList", + "src": "543:0:9" + }, + { + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { "argumentTypes": null, - "id": 4020, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4003, - "src": "567:7:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1413, + "type": "modifier ()", + "value": "initializer" }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4021, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4009, - "src": "577:6:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" + "id": 1200, + "name": "Identifier", + "src": "531:11:9" + } + ], + "id": 1201, + "name": "ModifierInvocation", + "src": "531:11:9" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1188, + "type": "string storage ref", + "value": "_name" + }, + "id": 1203, + "name": "Identifier", + "src": "549:5:9" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1194, + "type": "string memory", + "value": "name" + }, + "id": 1204, + "name": "Identifier", + "src": "557:4:9" + } + ], + "id": 1205, + "name": "Assignment", + "src": "549:12:9" } - }, - "src": "567:16:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } + ], + "id": 1206, + "name": "ExpressionStatement", + "src": "549:12:9" }, - "id": 4023, - "nodeType": "ExpressionStatement", - "src": "567:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 4026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4024, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4005, - "src": "589:9:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1190, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 1207, + "name": "Identifier", + "src": "567:7:9" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1196, + "type": "string memory", + "value": "symbol" + }, + "id": 1208, + "name": "Identifier", + "src": "577:6:9" + } + ], + "id": 1209, + "name": "Assignment", + "src": "567:16:9" } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4025, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4011, - "src": "601:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "589:20:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } + ], + "id": 1210, + "name": "ExpressionStatement", + "src": "567:16:9" }, - "id": 4027, - "nodeType": "ExpressionStatement", - "src": "589:20:9" - } - ] - }, - "documentation": null, - "id": 4029, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 4014, - "modifierName": { - "argumentTypes": null, - "id": 4013, - "name": "initializer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4164, - "src": "531:11:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1192, + "type": "uint8", + "value": "_decimals" + }, + "id": 1211, + "name": "Identifier", + "src": "589:9:9" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1198, + "type": "uint8", + "value": "decimals" + }, + "id": 1212, + "name": "Identifier", + "src": "601:8:9" + } + ], + "id": 1213, + "name": "Assignment", + "src": "589:20:9" + } + ], + "id": 1214, + "name": "ExpressionStatement", + "src": "589:20:9" } - }, - "nodeType": "ModifierInvocation", - "src": "531:11:9" + ], + "id": 1215, + "name": "Block", + "src": "543:71:9" } ], - "name": "initialize", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4012, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4007, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 4029, - "src": "480:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4006, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "480:6:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4009, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 4029, - "src": "493:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4008, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "493:6:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4011, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 4029, - "src": "508:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 4010, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "508:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "479:44:9" - }, - "payable": false, - "returnParameters": { - "id": 4015, - "nodeType": "ParameterList", - "parameters": [], - "src": "543:0:9" - }, - "scope": 4058, - "src": "460:154:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" + "id": 1216, + "name": "FunctionDefinition", + "src": "460:154:9" }, { - "body": { - "id": 4036, - "nodeType": "Block", - "src": "710:23:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4034, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4001, - "src": "723:5:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 4033, - "id": 4035, - "nodeType": "Return", - "src": "716:12:9" - } - ] - }, - "documentation": "@return the name of the token.", - "id": 4037, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4030, - "nodeType": "ParameterList", - "parameters": [], - "src": "679:2:9" - }, - "payable": false, - "returnParameters": { - "id": 4033, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4032, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4037, - "src": "702:6:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4031, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "702:6:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } + "attributes": { + "constant": true, + "documentation": "@return the name of the token.", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null ], - "src": "701:8:9" + "name": "name", + "payable": false, + "scope": 1245, + "stateMutability": "view", + "superFunction": null, + "visibility": "public" }, - "scope": 4058, - "src": "666:67:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1217, + "name": "ParameterList", + "src": "679:2:9" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1224, + "stateVariable": false, + "storageLocation": "default", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1218, + "name": "ElementaryTypeName", + "src": "702:6:9" + } + ], + "id": 1219, + "name": "VariableDeclaration", + "src": "702:6:9" + } + ], + "id": 1220, + "name": "ParameterList", + "src": "701:8:9" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1220 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1188, + "type": "string storage ref", + "value": "_name" + }, + "id": 1221, + "name": "Identifier", + "src": "723:5:9" + } + ], + "id": 1222, + "name": "Return", + "src": "716:12:9" + } + ], + "id": 1223, + "name": "Block", + "src": "710:23:9" + } + ], + "id": 1224, + "name": "FunctionDefinition", + "src": "666:67:9" }, { - "body": { - "id": 4044, - "nodeType": "Block", - "src": "833:25:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4042, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4003, - "src": "846:7:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 4041, - "id": 4043, - "nodeType": "Return", - "src": "839:14:9" - } - ] - }, - "documentation": "@return the symbol of the token.", - "id": 4045, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4038, - "nodeType": "ParameterList", - "parameters": [], - "src": "802:2:9" - }, - "payable": false, - "returnParameters": { - "id": 4041, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4040, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4045, - "src": "825:6:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4039, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "825:6:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } + "attributes": { + "constant": true, + "documentation": "@return the symbol of the token.", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null ], - "src": "824:8:9" + "name": "symbol", + "payable": false, + "scope": 1245, + "stateMutability": "view", + "superFunction": null, + "visibility": "public" }, - "scope": 4058, - "src": "787:71:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1225, + "name": "ParameterList", + "src": "802:2:9" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1232, + "stateVariable": false, + "storageLocation": "default", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1226, + "name": "ElementaryTypeName", + "src": "825:6:9" + } + ], + "id": 1227, + "name": "VariableDeclaration", + "src": "825:6:9" + } + ], + "id": 1228, + "name": "ParameterList", + "src": "824:8:9" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1228 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1190, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 1229, + "name": "Identifier", + "src": "846:7:9" + } + ], + "id": 1230, + "name": "Return", + "src": "839:14:9" + } + ], + "id": 1231, + "name": "Block", + "src": "833:25:9" + } + ], + "id": 1232, + "name": "FunctionDefinition", + "src": "787:71:9" }, { - "body": { - "id": 4052, - "nodeType": "Block", - "src": "971:27:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4050, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4005, - "src": "984:9:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 4049, - "id": 4051, - "nodeType": "Return", - "src": "977:16:9" - } - ] - }, - "documentation": "@return the number of decimals of the token.", - "id": 4053, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "decimals", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4046, - "nodeType": "ParameterList", - "parameters": [], - "src": "941:2:9" - }, - "payable": false, - "returnParameters": { - "id": 4049, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4048, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4053, - "src": "964:5:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 4047, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "964:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } + "attributes": { + "constant": true, + "documentation": "@return the number of decimals of the token.", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null ], - "src": "963:7:9" + "name": "decimals", + "payable": false, + "scope": 1245, + "stateMutability": "view", + "superFunction": null, + "visibility": "public" }, - "scope": 4058, - "src": "924:74:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1233, + "name": "ParameterList", + "src": "941:2:9" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1240, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 1234, + "name": "ElementaryTypeName", + "src": "964:5:9" + } + ], + "id": 1235, + "name": "VariableDeclaration", + "src": "964:5:9" + } + ], + "id": 1236, + "name": "ParameterList", + "src": "963:7:9" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1236 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1192, + "type": "uint8", + "value": "_decimals" + }, + "id": 1237, + "name": "Identifier", + "src": "984:9:9" + } + ], + "id": 1238, + "name": "Return", + "src": "977:16:9" + } + ], + "id": 1239, + "name": "Block", + "src": "971:27:9" + } + ], + "id": 1240, + "name": "FunctionDefinition", + "src": "924:74:9" }, { - "constant": false, - "id": 4057, - "name": "______gap", - "nodeType": "VariableDeclaration", - "scope": 4058, - "src": "1002:29:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$50_storage", - "typeString": "uint256[50]" + "attributes": { + "constant": false, + "name": "______gap", + "scope": 1245, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256[50]", + "value": null, + "visibility": "private" }, - "typeName": { - "baseType": { - "id": 4054, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1002:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4056, - "length": { - "argumentTypes": null, - "hexValue": "3530", - "id": 4055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1010:2:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null + "children": [ + { + "attributes": { + "type": "uint256[50]" }, - "value": "50" - }, - "nodeType": "ArrayTypeName", - "src": "1002:11:9", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", - "typeString": "uint256[50]" + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1241, + "name": "ElementaryTypeName", + "src": "1002:7:9" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "3530", + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": null, + "value": "50" + }, + "id": 1242, + "name": "Literal", + "src": "1010:2:9" + } + ], + "id": 1243, + "name": "ArrayTypeName", + "src": "1002:11:9" } - }, - "value": null, - "visibility": "private" + ], + "id": 1244, + "name": "VariableDeclaration", + "src": "1002:29:9" } ], - "scope": 4059, + "id": 1245, + "name": "ContractDefinition", "src": "330:704:9" } ], + "id": 1246, + "name": "SourceUnit", "src": "0:1035:9" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.4.25+commit.59dbf8f1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.1", - "updatedAt": "2019-08-15T18:51:44.485Z" + "schemaVersion": "3.3.4", + "updatedAt": "2021-04-02T09:51:14.585Z", + "devdoc": { + "methods": { + "decimals()": { + "return": "the number of decimals of the token." + }, + "name()": { + "return": "the name of the token." + }, + "symbol()": { + "return": "the symbol of the token." + } + }, + "title": "ERC20Detailed token" + }, + "userdoc": { + "methods": {} + } } \ No newline at end of file diff --git a/build/contracts/ERC865Token.json b/build/contracts/ERC865Token.json index 0c52c78d..6bbc8d3f 100644 --- a/build/contracts/ERC865Token.json +++ b/build/contracts/ERC865Token.json @@ -176,70 +176,6 @@ "stateMutability": "view", "type": "function" }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": true, - "name": "delegate", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "fee", - "type": "uint256" - } - ], - "name": "TransferPreSigned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": true, - "name": "delegate", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "fee", - "type": "uint256" - } - ], - "name": "ApprovalPreSigned", - "type": "event" - }, { "anonymous": false, "inputs": [ @@ -283,21635 +219,507 @@ ], "name": "Approval", "type": "event" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.4.25+commit.59dbf8f1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"Function to check the amount of tokens that an owner allowed to a spender.\",\"params\":{\"owner\":\"address The address which owns the funds.\",\"spender\":\"address The address which will spend the funds.\"},\"return\":\"A uint256 specifying the amount of tokens still available for the spender.\"},\"approve(address,uint256)\":{\"details\":\"Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\",\"params\":{\"spender\":\"The address which will spend the funds.\",\"value\":\"The amount of tokens to be spent.\"}},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address.\",\"params\":{\"owner\":\"The address to query the the balance of.\"},\"return\":\"An uint256 representing the amount owned by the passed address.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Decrease the amount of tokens that an owner allowed to a spender. approve should be called when allowed_[_spender] == 0. To decrement allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol\",\"params\":{\"spender\":\"The address which will spend the funds.\",\"subtractedValue\":\"The amount of tokens to decrease the allowance by.\"}},\"increaseAllowance(address,uint256)\":{\"details\":\"Increase the amount of tokens that an owner allowed to a spender. approve should be called when allowed_[_spender] == 0. To increment allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol\",\"params\":{\"addedValue\":\"The amount of tokens to increase the allowance by.\",\"spender\":\"The address which will spend the funds.\"}},\"totalSupply()\":{\"details\":\"Total number of tokens in existence\"},\"transfer(address,uint256)\":{\"details\":\"Transfer token for a specified address\",\"params\":{\"to\":\"The address to transfer to.\",\"value\":\"The amount to be transferred.\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfer tokens from one address to another\",\"params\":{\"from\":\"address The address which you want to send tokens from\",\"to\":\"address The address which you want to transfer to\",\"value\":\"uint256 the amount of tokens to be transferred\"}}},\"title\":\"ERC865Token Token * ERC865Token allows users paying transfers in tokens instead of gas https://github.com/ethereum/EIPs/issues/865 \"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/george/Development/props/props-token-distribution/contracts/token/ERC865Token.sol\":\"ERC865Token\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/george/Development/props/props-token-distribution/contracts/token/ERC865Token.sol\":{\"keccak256\":\"0x13ec86b7f6509a70674e94bdd570443ab1032a693abc5bec67fb1dd1ddf5bca8\",\"urls\":[\"bzzr://624dbda42d8e44204c13b60f4369cdecd976b57ec4a6a884ed8ea3b52e4a7cfd\"]},\"/home/george/Development/props/props-token-distribution/contracts/token/IERC865.sol\":{\"keccak256\":\"0x94b2dffbb5a3429040ea84c2d9186185ad4ed32402bd0ce3310e79aa7750f2cf\",\"urls\":[\"bzzr://bd4e55bed687adc411bc7201427a87a5cafc6dea0482859c438cccd6bccfe817\"]},\"openzeppelin-eth/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0x223f5e7e2fe8d7082e3c49a2b930096369c2beb960d751c80e1495556952420a\",\"urls\":[\"bzzr://8a9559aaad12d8dddc40e7bb3db79dc533b239ad77c55f96a56bea9f28baa987\"]},\"openzeppelin-eth/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xca27427124232a675642ba45303b78d5a36e1207ee222030ef249e11eba5a224\",\"urls\":[\"bzzr://013c67962737acca577ecd24e6b6c80f85b05fd03c1c75ab68f65a084f4b4cfd\"]},\"openzeppelin-eth/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24252d4567a1cbf14d609a8308e491359c9200d58a2e78282938d945aeeb2bb3\",\"urls\":[\"bzzr://61401aaae518b765df91e443ef9dfb7af874341921829a063cb4804a6fb49c5e\"]},\"openzeppelin-eth/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x0786a09def412e5a92e1da8545114b39f9bbd8bd1ba6f62a5bf8b81f54ab25bf\",\"urls\":[\"bzzr://b35dbbf6dd505fcb601ca968d4628714a3af84024224228433eadf700e94f250\"]},\"zos-lib/contracts/Initializable.sol\":{\"keccak256\":\"0xac4cc87395794e21e95549a1b4002881621d59878c4129d534a0089ce5cf7212\",\"urls\":[\"bzzr://1725ac3e1941f8e2bf5c1966abd66bd744d40c85ae8195eb697ec3256bc1fc39\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50610a97806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b31461009357806318160ddd146100f857806323b872dd1461012357806339509351146101a857806370a082311461020d578063a457c2d714610264578063a9059cbb146102c9578063dd62ed3e1461032e575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103a5565b604051808215151515815260200191505060405180910390f35b34801561010457600080fd5b5061010d6103bc565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b5061018e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103c6565b604051808215151515815260200191505060405180910390f35b3480156101b457600080fd5b506101f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610477565b604051808215151515815260200191505060405180910390f35b34801561021957600080fd5b5061024e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061051c565b6040518082815260200191505060405180910390f35b34801561027057600080fd5b506102af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610565565b604051808215151515815260200191505060405180910390f35b3480156102d557600080fd5b50610314600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061060a565b604051808215151515815260200191505060405180910390f35b34801561033a57600080fd5b5061038f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610621565b6040518082815260200191505060405180910390f35b60006103b23384846106a8565b6001905092915050565b6000603554905090565b60006103d384848461080b565b61046c843361046785603460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a2990919063ffffffff16565b6106a8565b600190509392505050565b6000610512338461050d85603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a4a90919063ffffffff16565b6106a8565b6001905092915050565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600061060033846105fb85603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a2990919063ffffffff16565b6106a8565b6001905092915050565b600061061733848461080b565b6001905092915050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156106e457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561072057600080fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561085957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561089557600080fd5b6108e781603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a2990919063ffffffff16565b603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061097c81603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a4a90919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080838311151515610a3b57600080fd5b82840390508091505092915050565b6000808284019050838110151515610a6157600080fd5b80915050929150505600a165627a7a72305820e6e74e4f4f7498428028a45db1e2e23da92fe7f83e81e3039544f7635eebc9060029", + "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b31461009357806318160ddd146100f857806323b872dd1461012357806339509351146101a857806370a082311461020d578063a457c2d714610264578063a9059cbb146102c9578063dd62ed3e1461032e575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103a5565b604051808215151515815260200191505060405180910390f35b34801561010457600080fd5b5061010d6103bc565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b5061018e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103c6565b604051808215151515815260200191505060405180910390f35b3480156101b457600080fd5b506101f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610477565b604051808215151515815260200191505060405180910390f35b34801561021957600080fd5b5061024e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061051c565b6040518082815260200191505060405180910390f35b34801561027057600080fd5b506102af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610565565b604051808215151515815260200191505060405180910390f35b3480156102d557600080fd5b50610314600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061060a565b604051808215151515815260200191505060405180910390f35b34801561033a57600080fd5b5061038f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610621565b6040518082815260200191505060405180910390f35b60006103b23384846106a8565b6001905092915050565b6000603554905090565b60006103d384848461080b565b61046c843361046785603460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a2990919063ffffffff16565b6106a8565b600190509392505050565b6000610512338461050d85603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a4a90919063ffffffff16565b6106a8565b6001905092915050565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600061060033846105fb85603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a2990919063ffffffff16565b6106a8565b6001905092915050565b600061061733848461080b565b6001905092915050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156106e457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561072057600080fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561085957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561089557600080fd5b6108e781603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a2990919063ffffffff16565b603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061097c81603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a4a90919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080838311151515610a3b57600080fd5b82840390508091505092915050565b6000808284019050838110151515610a6157600080fd5b80915050929150505600a165627a7a72305820e6e74e4f4f7498428028a45db1e2e23da92fe7f83e81e3039544f7635eebc9060029", + "sourceMap": "481:13434:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;481:13434:0;;;;;;;", + "deployedSourceMap": "481:13434:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2462:145:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2462:145:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;702:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;702:83:8;;;;;;;;;;;;;;;;;;;;;;;2879:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2879:240:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3570:212;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3570:212:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;986:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;986:98:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4238:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4238:222:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1703:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1703:127:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1401:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1401:150:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2462:145;2527:4;2543:36;2552:10;2564:7;2573:5;2543:8;:36::i;:::-;2596:4;2589:11;;2462:145;;;;:::o;702:83::-;746:7;768:12;;761:19;;702:83;:::o;2879:240::-;2982:4;3000:26;3010:4;3016:2;3020:5;3000:9;:26::i;:::-;3032:65;3041:4;3047:10;3059:37;3090:5;3059:8;:14;3068:4;3059:14;;;;;;;;;;;;;;;:26;3074:10;3059:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;3032:8;:65::i;:::-;3110:4;3103:11;;2879:240;;;;;:::o;3570:212::-;3670:4;3684:76;3693:10;3705:7;3714:45;3748:10;3714:8;:20;3723:10;3714:20;;;;;;;;;;;;;;;:29;3735:7;3714:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;3684:8;:76::i;:::-;3773:4;3766:11;;3570:212;;;;:::o;986:98::-;1041:7;1063:9;:16;1073:5;1063:16;;;;;;;;;;;;;;;;1056:23;;986:98;;;:::o;4238:222::-;4343:4;4357:81;4366:10;4378:7;4387:50;4421:15;4387:8;:20;4396:10;4387:20;;;;;;;;;;;;;;;:29;4408:7;4387:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;4357:8;:81::i;:::-;4451:4;4444:11;;4238:222;;;;:::o;1703:127::-;1764:4;1776:32;1786:10;1798:2;1802:5;1776:9;:32::i;:::-;1821:4;1814:11;;1703:127;;;;:::o;1401:150::-;1498:7;1522:8;:15;1531:5;1522:15;;;;;;;;;;;;;;;:24;1538:7;1522:24;;;;;;;;;;;;;;;;1515:31;;1401:150;;;;:::o;6263:248::-;6374:1;6355:21;;:7;:21;;;;6347:30;;;;;;;;6412:1;6395:19;;:5;:19;;;;6387:28;;;;;;;;6453:5;6426:8;:15;6435:5;6426:15;;;;;;;;;;;;;;;:24;6442:7;6426:24;;;;;;;;;;;;;;;:32;;;;6489:7;6473:31;;6482:5;6473:31;;;6498:5;6473:31;;;;;;;;;;;;;;;;;;6263:248;;;:::o;4660:277::-;4752:9;:15;4762:4;4752:15;;;;;;;;;;;;;;;;4743:5;:24;;4735:33;;;;;;;;4796:1;4782:16;;:2;:16;;;;4774:25;;;;;;;;4824:26;4844:5;4824:9;:15;4834:4;4824:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;4806:9;:15;4816:4;4806:15;;;;;;;;;;;;;;;:44;;;;4872:24;4890:5;4872:9;:13;4882:2;4872:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;4856:9;:13;4866:2;4856:13;;;;;;;;;;;;;;;:40;;;;4922:2;4907:25;;4916:4;4907:25;;;4926:5;4907:25;;;;;;;;;;;;;;;;;;4660:277;;;:::o;1079:131:7:-;1137:7;1173:9;1165:1;1160;:6;;1152:15;;;;;;;;1189:1;1185;:5;1173:17;;1204:1;1197:8;;1079:131;;;;;:::o;1273:::-;1331:7;1346:9;1362:1;1358;:5;1346:17;;1382:1;1377;:6;;1369:15;;;;;;;;1398:1;1391:8;;1273:131;;;;;:::o", + "source": "pragma solidity ^0.4.24;\n/*\n THIS CONTRACT IS OBSOLETE AND REMAINS ONLY FOR UPGRADABILITY/STORAGE CONSIDERATIONS\n*/\nimport \"zos-lib/contracts/Initializable.sol\";\nimport \"openzeppelin-eth/contracts/token/ERC20/ERC20.sol\";\nimport { ECDSA } from \"openzeppelin-eth/contracts/cryptography/ECDSA.sol\";\nimport \"./IERC865.sol\";\n\n/**\n * @title ERC865Token Token\n *\n * ERC865Token allows users paying transfers in tokens instead of gas\n * https://github.com/ethereum/EIPs/issues/865\n *\n */\n\ncontract ERC865Token is Initializable, ERC20, IERC865 {\n\n /* hashed tx of transfers performed */\n mapping(bytes32 => bool) hashedTxs;\n // /**\n // * @dev Submit a presigned transfer\n // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds\n // * @param _signature bytes The signature, issued by the owner.\n // * @param _to address The address which you want to transfer to.\n // * @param _value uint256 The amount of tokens to be transferred.\n // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n // * @param _nonce uint256 Presigned transaction number.\n // */\n // function transferPreSigned(\n // bytes _signature,\n // address _to,\n // uint256 _value,\n // uint256 _fee,\n // uint256 _nonce\n // )\n // public\n // returns (bool)\n // {\n // require(_to != address(0), \"Invalid _to address\");\n\n // bytes32 hashedParams = getTransferPreSignedHash(address(this), _to, _value, _fee, _nonce);\n // address from = ECDSA.recover(hashedParams, _signature);\n // require(from != address(0), \"Invalid from address recovered\");\n // bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams));\n // require(hashedTxs[hashedTx] == false,\"Transaction hash was already used\");\n // hashedTxs[hashedTx] = true;\n // _transfer(from, _to, _value);\n // _transfer(from, msg.sender, _fee);\n\n // emit TransferPreSigned(from, _to, msg.sender, _value, _fee);\n // return true;\n // }\n\n // /**\n // * @dev Submit a presigned approval\n // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds\n // * @param _signature bytes The signature, issued by the owner.\n // * @param _spender address The address which will spend the funds.\n // * @param _value uint256 The amount of tokens to allow.\n // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n // * @param _nonce uint256 Presigned transaction number.\n // */\n // function approvePreSigned(\n // bytes _signature,\n // address _spender,\n // uint256 _value,\n // uint256 _fee,\n // uint256 _nonce\n // )\n // public\n // returns (bool)\n // {\n // require(_spender != address(0),\"Invalid _spender address\");\n\n // bytes32 hashedParams = getApprovePreSignedHash(address(this), _spender, _value, _fee, _nonce);\n // address from = ECDSA.recover(hashedParams, _signature);\n // require(from != address(0),\"Invalid from address recovered\");\n // bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams));\n // require(hashedTxs[hashedTx] == false,\"Transaction hash was already used\");\n // hashedTxs[hashedTx] = true;\n // _approve(from, _spender, _value);\n // _transfer(from, msg.sender, _fee);\n\n // emit ApprovalPreSigned(from, _spender, msg.sender, _value, _fee);\n // return true;\n // }\n\n // /**\n // * @dev Increase the amount of tokens that an owner allowed to a spender.\n // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds\n // * @param _signature bytes The signature, issued by the owner.\n // * @param _spender address The address which will spend the funds.\n // * @param _addedValue uint256 The amount of tokens to increase the allowance by.\n // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n // * @param _nonce uint256 Presigned transaction number.\n // */\n // function increaseAllowancePreSigned(\n // bytes _signature,\n // address _spender,\n // uint256 _addedValue,\n // uint256 _fee,\n // uint256 _nonce\n // )\n // public\n // returns (bool)\n // {\n // require(_spender != address(0),\"Invalid _spender address\");\n\n // bytes32 hashedParams = getIncreaseAllowancePreSignedHash(address(this), _spender, _addedValue, _fee, _nonce);\n // address from = ECDSA.recover(hashedParams, _signature);\n // require(from != address(0),\"Invalid from address recovered\");\n // bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams));\n // require(hashedTxs[hashedTx] == false,\"Transaction hash was already used\");\n // hashedTxs[hashedTx] = true;\n // _approve(from, _spender, allowance(from, _spender).add(_addedValue));\n // _transfer(from, msg.sender, _fee);\n\n // emit ApprovalPreSigned(from, _spender, msg.sender, allowance(from, _spender), _fee);\n // return true;\n // }\n\n // /**\n // * @dev Decrease the amount of tokens that an owner allowed to a spender.\n // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds\n // * @param _signature bytes The signature, issued by the owner\n // * @param _spender address The address which will spend the funds.\n // * @param _subtractedValue uint256 The amount of tokens to decrease the allowance by.\n // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n // * @param _nonce uint256 Presigned transaction number.\n // */\n // function decreaseAllowancePreSigned(\n // bytes _signature,\n // address _spender,\n // uint256 _subtractedValue,\n // uint256 _fee,\n // uint256 _nonce\n // )\n // public\n // returns (bool)\n // {\n // require(_spender != address(0),\"Invalid _spender address\");\n\n // bytes32 hashedParams = getDecreaseAllowancePreSignedHash(address(this), _spender, _subtractedValue, _fee, _nonce);\n // address from = ECDSA.recover(hashedParams, _signature);\n // require(from != address(0),\"Invalid from address recovered\");\n // bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams));\n // require(hashedTxs[hashedTx] == false,\"Transaction hash was already used\");\n // // if substractedValue is greater than allowance will fail as allowance is uint256\n // hashedTxs[hashedTx] = true;\n // _approve(from, _spender, allowance(from,_spender).sub(_subtractedValue));\n // _transfer(from, msg.sender, _fee);\n\n // emit ApprovalPreSigned(from, _spender, msg.sender, allowance(from, _spender), _fee);\n // return true;\n // }\n\n // /**\n // * @dev Transfer tokens from one address to another\n // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds\n // * @param _signature bytes The signature, issued by the spender.\n // * @param _from address The address which you want to send tokens from.\n // * @param _to address The address which you want to transfer to.\n // * @param _value uint256 The amount of tokens to be transferred.\n // * @param _fee uint256 The amount of tokens paid to msg.sender, by the spender.\n // * @param _nonce uint256 Presigned transaction number.\n // */\n // function transferFromPreSigned(\n // bytes _signature,\n // address _from,\n // address _to,\n // uint256 _value,\n // uint256 _fee,\n // uint256 _nonce\n // )\n // public\n // returns (bool)\n // {\n // require(_to != address(0),\"Invalid _to address\");\n\n // bytes32 hashedParams = getTransferFromPreSignedHash(address(this), _from, _to, _value, _fee, _nonce);\n\n // address spender = ECDSA.recover(hashedParams, _signature);\n // require(spender != address(0),\"Invalid spender address recovered\");\n // bytes32 hashedTx = keccak256(abi.encodePacked(spender, hashedParams));\n // require(hashedTxs[hashedTx] == false,\"Transaction hash was already used\");\n // hashedTxs[hashedTx] = true;\n // _transfer(_from, _to, _value);\n // _approve(_from, spender, allowance(_from, spender).sub(_value));\n // _transfer(spender, msg.sender, _fee);\n\n // emit TransferPreSigned(_from, _to, msg.sender, _value, _fee);\n // return true;\n // }\n\n\n // /**\n // * @dev Hash (keccak256) of the payload used by transferPreSigned\n // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds\n // * @param _token address The address of the token.\n // * @param _to address The address which you want to transfer to.\n // * @param _value uint256 The amount of tokens to be transferred.\n // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n // * @param _nonce uint256 Presigned transaction number.\n // */\n // function getTransferPreSignedHash(\n // address _token,\n // address _to,\n // uint256 _value,\n // uint256 _fee,\n // uint256 _nonce\n // )\n // public\n // pure\n // returns (bytes32)\n // {\n // /* \"0d98dcb1\": getTransferPreSignedHash(address,address,uint256,uint256,uint256) */\n // return keccak256(abi.encodePacked(bytes4(0x0d98dcb1), _token, _to, _value, _fee, _nonce));\n // }\n\n // /**\n // * @dev Hash (keccak256) of the payload used by approvePreSigned\n // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds\n // * @param _token address The address of the token\n // * @param _spender address The address which will spend the funds.\n // * @param _value uint256 The amount of tokens to allow.\n // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n // * @param _nonce uint256 Presigned transaction number.\n // */\n // function getApprovePreSignedHash(\n // address _token,\n // address _spender,\n // uint256 _value,\n // uint256 _fee,\n // uint256 _nonce\n // )\n // public\n // pure\n // returns (bytes32)\n // {\n // /* \"79250dcf\": getApprovePreSignedHash(address,address,uint256,uint256,uint256) */\n // return keccak256(abi.encodePacked(bytes4(0x79250dcf), _token, _spender, _value, _fee, _nonce));\n // }\n\n // /**\n // * @dev Hash (keccak256) of the payload used by increaseAllowancePreSigned\n // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds\n // * @param _token address The address of the token\n // * @param _spender address The address which will spend the funds.\n // * @param _addedValue uint256 The amount of tokens to increase the allowance by.\n // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n // * @param _nonce uint256 Presigned transaction number.\n // */\n // function getIncreaseAllowancePreSignedHash(\n // address _token,\n // address _spender,\n // uint256 _addedValue,\n // uint256 _fee,\n // uint256 _nonce\n // )\n // public\n // pure\n // returns (bytes32)\n // {\n // /* \"138e8da1\": getIncreaseAllowancePreSignedHash(address,address,uint256,uint256,uint256) */\n // return keccak256(abi.encodePacked(bytes4(0x138e8da1), _token, _spender, _addedValue, _fee, _nonce));\n // }\n\n // /**\n // * @dev Hash (keccak256) of the payload used by decreaseAllowancePreSigned\n // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds\n // * @param _token address The address of the token\n // * @param _spender address The address which will spend the funds.\n // * @param _subtractedValue uint256 The amount of tokens to decrease the allowance by.\n // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n // * @param _nonce uint256 Presigned transaction number.\n // */\n // function getDecreaseAllowancePreSignedHash(\n // address _token,\n // address _spender,\n // uint256 _subtractedValue,\n // uint256 _fee,\n // uint256 _nonce\n // )\n // public\n // pure\n // returns (bytes32)\n // {\n // /* \"5229c56f\": getDecreaseAllowancePreSignedHash(address,address,uint256,uint256,uint256) */\n // return keccak256(abi.encodePacked(bytes4(0x5229c56f), _token, _spender, _subtractedValue, _fee, _nonce));\n // }\n\n // /**\n // * @dev Hash (keccak256) of the payload used by transferFromPreSigned\n // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds\n // * @param _token address The address of the token\n // * @param _from address The address which you want to send tokens from.\n // * @param _to address The address which you want to transfer to.\n // * @param _value uint256 The amount of tokens to be transferred.\n // * @param _fee uint256 The amount of tokens paid to msg.sender, by the spender.\n // * @param _nonce uint256 Presigned transaction number.\n // */\n // function getTransferFromPreSignedHash(\n // address _token,\n // address _from,\n // address _to,\n // uint256 _value,\n // uint256 _fee,\n // uint256 _nonce\n // )\n // public\n // pure\n // returns (bytes32)\n // {\n // /* \"a70c41b4\": getTransferFromPreSignedHash(address,address,address,uint256,uint256,uint256) */\n // return keccak256(abi.encodePacked(bytes4(0xa70c41b4), _token, _from, _to, _value, _fee, _nonce));\n // }\n}", + "sourcePath": "/home/george/Development/props/props-token-distribution/contracts/token/ERC865Token.sol", + "ast": { + "absolutePath": "/home/george/Development/props/props-token-distribution/contracts/token/ERC865Token.sol", + "exportedSymbols": { + "ERC865Token": [ + 17 + ] }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" + "id": 18, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:0" + }, + { + "absolutePath": "zos-lib/contracts/Initializable.sol", + "file": "zos-lib/contracts/Initializable.sol", + "id": 2, + "nodeType": "ImportDirective", + "scope": 18, + "sourceUnit": 1433, + "src": "116:45:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", + "file": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", + "id": 3, + "nodeType": "ImportDirective", + "scope": 18, + "sourceUnit": 1179, + "src": "162:58:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-eth/contracts/cryptography/ECDSA.sol", + "file": "openzeppelin-eth/contracts/cryptography/ECDSA.sol", + "id": 5, + "nodeType": "ImportDirective", + "scope": 18, + "sourceUnit": 649, + "src": "221:74:0", + "symbolAliases": [ + { + "foreign": 4, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/home/george/Development/props/props-token-distribution/contracts/token/IERC865.sol", + "file": "./IERC865.sol", + "id": 6, + "nodeType": "ImportDirective", + "scope": 18, + "sourceUnit": 21, + "src": "296:23:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 7, + "name": "Initializable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1432, + "src": "505:13:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Initializable_$1432", + "typeString": "contract Initializable" + } + }, + "id": 8, + "nodeType": "InheritanceSpecifier", + "src": "505:13:0" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1178, + "src": "520:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$1178", + "typeString": "contract ERC20" + } + }, + "id": 10, + "nodeType": "InheritanceSpecifier", + "src": "520:5:0" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 11, + "name": "IERC865", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 20, + "src": "527:7:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC865_$20", + "typeString": "contract IERC865" + } + }, + "id": 12, + "nodeType": "InheritanceSpecifier", + "src": "527:7:0" + } + ], + "contractDependencies": [ + 20, + 1178, + 1314, + 1432 + ], + "contractKind": "contract", + "documentation": "@title ERC865Token Token\n * ERC865Token allows users paying transfers in tokens instead of gas\nhttps://github.com/ethereum/EIPs/issues/865\n ", + "fullyImplemented": true, + "id": 17, + "linearizedBaseContracts": [ + 17, + 20, + 1178, + 1314, + 1432 + ], + "name": "ERC865Token", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 16, + "name": "hashedTxs", + "nodeType": "VariableDeclaration", + "scope": 17, + "src": "585:34:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "typeName": { + "id": 15, + "keyType": { + "id": 13, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "593:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "585:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "valueType": { + "id": 14, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "604:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "scope": 18, + "src": "481:13434:0" + } + ], + "src": "0:13915:0" + }, + "legacyAST": { + "attributes": { + "absolutePath": "/home/george/Development/props/props-token-distribution/contracts/token/ERC865Token.sol", + "exportedSymbols": { + "ERC865Token": [ + 17 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ] }, - { - "name": "_to", - "type": "address" + "id": 1, + "name": "PragmaDirective", + "src": "0:24:0" + }, + { + "attributes": { + "SourceUnit": 1433, + "absolutePath": "zos-lib/contracts/Initializable.sol", + "file": "zos-lib/contracts/Initializable.sol", + "scope": 18, + "symbolAliases": [ + null + ], + "unitAlias": "" }, - { - "name": "_value", - "type": "uint256" + "id": 2, + "name": "ImportDirective", + "src": "116:45:0" + }, + { + "attributes": { + "SourceUnit": 1179, + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", + "file": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", + "scope": 18, + "symbolAliases": [ + null + ], + "unitAlias": "" }, - { - "name": "_fee", - "type": "uint256" + "id": 3, + "name": "ImportDirective", + "src": "162:58:0" + }, + { + "attributes": { + "SourceUnit": 649, + "absolutePath": "openzeppelin-eth/contracts/cryptography/ECDSA.sol", + "file": "openzeppelin-eth/contracts/cryptography/ECDSA.sol", + "scope": 18, + "symbolAliases": [ + { + "foreign": 4, + "local": null + } + ], + "unitAlias": "" }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "transferPreSigned", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" + "id": 5, + "name": "ImportDirective", + "src": "221:74:0" + }, + { + "attributes": { + "SourceUnit": 21, + "absolutePath": "/home/george/Development/props/props-token-distribution/contracts/token/IERC865.sol", + "file": "./IERC865.sol", + "scope": 18, + "symbolAliases": [ + null + ], + "unitAlias": "" }, - { - "name": "_spender", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "approvePreSigned", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_spender", - "type": "address" - }, - { - "name": "_addedValue", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "increaseAllowancePreSigned", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_spender", - "type": "address" - }, - { - "name": "_subtractedValue", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "decreaseAllowancePreSigned", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "transferFromPreSigned", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "getTransferPreSignedHash", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_spender", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "getApprovePreSignedHash", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_spender", - "type": "address" - }, - { - "name": "_addedValue", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "getIncreaseAllowancePreSignedHash", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_spender", - "type": "address" - }, - { - "name": "_subtractedValue", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "getDecreaseAllowancePreSignedHash", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "getTransferFromPreSignedHash", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50612f13806100206000396000f3006080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b3146101015780630d98dcb1146101665780631296830d14610203578063138e8da1146102c257806318160ddd1461035f57806323b872dd1461038a578063395093511461040f5780635229c56f14610474578063617b390b1461051157806370a08231146105d057806379250dcf14610627578063a457c2d7146106c4578063a70c41b414610729578063a9059cbb146107e6578063bca505151461084b578063dd62ed3e1461092a578063f2959d6e146109a1578063f80801d014610a60575b600080fd5b34801561010d57600080fd5b5061014c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b1f565b604051808215151515815260200191505060405180910390f35b34801561017257600080fd5b506101e5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050610b36565b60405180826000191660001916815260200191505060405180910390f35b34801561020f57600080fd5b506102a8600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050610cc4565b604051808215151515815260200191505060405180910390f35b3480156102ce57600080fd5b50610341600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001909291905050506110a6565b60405180826000191660001916815260200191505060405180910390f35b34801561036b57600080fd5b50610374611234565b6040518082815260200191505060405180910390f35b34801561039657600080fd5b506103f5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061123e565b604051808215151515815260200191505060405180910390f35b34801561041b57600080fd5b5061045a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112ef565b604051808215151515815260200191505060405180910390f35b34801561048057600080fd5b506104f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611394565b60405180826000191660001916815260200191505060405180910390f35b34801561051d57600080fd5b506105b6600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611522565b604051808215151515815260200191505060405180910390f35b3480156105dc57600080fd5b50610611600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611904565b6040518082815260200191505060405180910390f35b34801561063357600080fd5b506106a6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019092919050505061194d565b60405180826000191660001916815260200191505060405180910390f35b3480156106d057600080fd5b5061070f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611adb565b604051808215151515815260200191505060405180910390f35b34801561073557600080fd5b506107c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611b80565b60405180826000191660001916815260200191505060405180910390f35b3480156107f257600080fd5b50610831600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d52565b604051808215151515815260200191505060405180910390f35b34801561085757600080fd5b50610910600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611d69565b604051808215151515815260200191505060405180910390f35b34801561093657600080fd5b5061098b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612199565b6040518082815260200191505060405180910390f35b3480156109ad57600080fd5b50610a46600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050612220565b604051808215151515815260200191505060405180910390f35b348015610a6c57600080fd5b50610b05600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050612626565b604051808215151515815260200191505060405180910390f35b6000610b2c338484612a2c565b6001905092915050565b6000630d98dcb17c010000000000000000000000000000000000000000000000000000000002868686868660405160200180877bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526004018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140184815260200183815260200182815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515610c8c5780518252602082019150602081019050602083039250610c67565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614151515610d6f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e76616c6964205f746f20616464726573730000000000000000000000000081525060200191505060405180910390fd5b610d7c3089898989610b36565b9250610d88838a612b8f565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610e2f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c69642066726f6d2061646472657373207265636f7665726564000081525060200191505060405180910390fd5b8183604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083101515610ecf5780518252602082019150602081019050602083039250610eaa565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090506000151560686000836000191660001916815260200190815260200160002060009054906101000a900460ff161515141515610fc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f5472616e73616374696f6e20686173682077617320616c72656164792075736581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160686000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550611007828989612c87565b611012823388612c87565b3373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fec5a73fd1f178be20c1bca1b406cbf4b5c20d833b66e582fc122fb4baa0fc2a48a8a604051808381526020018281526020019250505060405180910390a46001935050505095945050505050565b600063138e8da17c010000000000000000000000000000000000000000000000000000000002868686868660405160200180877bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526004018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140184815260200183815260200182815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156111fc57805182526020820191506020810190506020830392506111d7565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b6000603554905090565b600061124b848484612c87565b6112e484336112df85603460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ea590919063ffffffff16565b612a2c565b600190509392505050565b600061138a338461138585603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ec690919063ffffffff16565b612a2c565b6001905092915050565b6000635229c56f7c010000000000000000000000000000000000000000000000000000000002868686868660405160200180877bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526004018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140184815260200183815260200182815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156114ea57805182526020820191506020810190506020830392506114c5565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141515156115cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964205f7370656e6465722061646472657373000000000000000081525060200191505060405180910390fd5b6115da308989898961194d565b92506115e6838a612b8f565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561168d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c69642066726f6d2061646472657373207265636f7665726564000081525060200191505060405180910390fd5b8183604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b60208310151561172d5780518252602082019150602081019050602083039250611708565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090506000151560686000836000191660001916815260200190815260200160002060009054906101000a900460ff161515141515611826576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f5472616e73616374696f6e20686173682077617320616c72656164792075736581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160686000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550611865828989612a2c565b611870823388612c87565b3373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f43a220267705e74ee2ceafd46afc841850db6f85a662189a7def697bbdd90ffb8a8a604051808381526020018281526020019250505060405180910390a46001935050505095945050505050565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006379250dcf7c010000000000000000000000000000000000000000000000000000000002868686868660405160200180877bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526004018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140184815260200183815260200182815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515611aa35780518252602082019150602081019050602083039250611a7e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b6000611b763384611b7185603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ea590919063ffffffff16565b612a2c565b6001905092915050565b600063a70c41b47c01000000000000000000000000000000000000000000000000000000000287878787878760405160200180887bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526004018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018481526020018381526020018281526020019750505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515611d195780518252602082019150602081019050602083039250611cf4565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090509695505050505050565b6000611d5f338484612c87565b6001905092915050565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614151515611e14576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e76616c6964205f746f20616464726573730000000000000000000000000081525060200191505060405180910390fd5b611e22308a8a8a8a8a611b80565b9250611e2e838b612b8f565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611efb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f496e76616c6964207370656e6465722061646472657373207265636f7665726581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8183604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083101515611f9b5780518252602082019150602081019050602083039250611f76565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090506000151560686000836000191660001916815260200190815260200160002060009054906101000a900460ff161515141515612094576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f5472616e73616374696f6e20686173682077617320616c72656164792075736581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160686000836000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055506120d3898989612c87565b6120f989836120f48a6120e68e88612199565b612ea590919063ffffffff16565b612a2c565b612104823388612c87565b3373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fec5a73fd1f178be20c1bca1b406cbf4b5c20d833b66e582fc122fb4baa0fc2a48a8a604051808381526020018281526020019250505060405180910390a4600193505050509695505050505050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141515156122cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964205f7370656e6465722061646472657373000000000000000081525060200191505060405180910390fd5b6122d83089898989611394565b92506122e4838a612b8f565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561238b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c69642066726f6d2061646472657373207265636f7665726564000081525060200191505060405180910390fd5b8183604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b60208310151561242b5780518252602082019150602081019050602083039250612406565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090506000151560686000836000191660001916815260200190815260200160002060009054906101000a900460ff161515141515612524576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f5472616e73616374696f6e20686173682077617320616c72656164792075736581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160686000836000191660001916815260200190815260200160002060006101000a81548160ff02191690831515021790555061257e82896125798a61256b878e612199565b612ea590919063ffffffff16565b612a2c565b612589823388612c87565b3373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f43a220267705e74ee2ceafd46afc841850db6f85a662189a7def697bbdd90ffb6125f9868d612199565b8a604051808381526020018281526020019250505060405180910390a46001935050505095945050505050565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141515156126d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964205f7370656e6465722061646472657373000000000000000081525060200191505060405180910390fd5b6126de30898989896110a6565b92506126ea838a612b8f565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612791576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c69642066726f6d2061646472657373207265636f7665726564000081525060200191505060405180910390fd5b8183604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083101515612831578051825260208201915060208101905060208303925061280c565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090506000151560686000836000191660001916815260200190815260200160002060009054906101000a900460ff16151514151561292a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f5472616e73616374696f6e20686173682077617320616c72656164792075736581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160686000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550612984828961297f8a612971878e612199565b612ec690919063ffffffff16565b612a2c565b61298f823388612c87565b3373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f43a220267705e74ee2ceafd46afc841850db6f85a662189a7def697bbdd90ffb6129ff868d612199565b8a604051808381526020018281526020019250505060405180910390a46001935050505095945050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612a6857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612aa457600080fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60008060008060418551141515612ba95760009350612c7e565b6020850151925060408501519150606085015160001a9050601b8160ff161015612bd457601b810190505b601b8160ff1614158015612bec5750601c8160ff1614155b15612bfa5760009350612c7e565b600186828585604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015612c71573d6000803e3d6000fd5b5050506020604051035193505b50505092915050565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515612cd557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612d1157600080fd5b612d6381603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ea590919063ffffffff16565b603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612df881603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ec690919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080838311151515612eb757600080fd5b82840390508091505092915050565b6000808284019050838110151515612edd57600080fd5b80915050929150505600a165627a7a72305820fd98d42a27b93bb3b4ef99e141a36ac892bfe24f01821442b49b8019bec693f10029", - "deployedBytecode": "0x6080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b3146101015780630d98dcb1146101665780631296830d14610203578063138e8da1146102c257806318160ddd1461035f57806323b872dd1461038a578063395093511461040f5780635229c56f14610474578063617b390b1461051157806370a08231146105d057806379250dcf14610627578063a457c2d7146106c4578063a70c41b414610729578063a9059cbb146107e6578063bca505151461084b578063dd62ed3e1461092a578063f2959d6e146109a1578063f80801d014610a60575b600080fd5b34801561010d57600080fd5b5061014c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b1f565b604051808215151515815260200191505060405180910390f35b34801561017257600080fd5b506101e5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050610b36565b60405180826000191660001916815260200191505060405180910390f35b34801561020f57600080fd5b506102a8600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050610cc4565b604051808215151515815260200191505060405180910390f35b3480156102ce57600080fd5b50610341600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001909291905050506110a6565b60405180826000191660001916815260200191505060405180910390f35b34801561036b57600080fd5b50610374611234565b6040518082815260200191505060405180910390f35b34801561039657600080fd5b506103f5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061123e565b604051808215151515815260200191505060405180910390f35b34801561041b57600080fd5b5061045a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112ef565b604051808215151515815260200191505060405180910390f35b34801561048057600080fd5b506104f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611394565b60405180826000191660001916815260200191505060405180910390f35b34801561051d57600080fd5b506105b6600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611522565b604051808215151515815260200191505060405180910390f35b3480156105dc57600080fd5b50610611600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611904565b6040518082815260200191505060405180910390f35b34801561063357600080fd5b506106a6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019092919050505061194d565b60405180826000191660001916815260200191505060405180910390f35b3480156106d057600080fd5b5061070f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611adb565b604051808215151515815260200191505060405180910390f35b34801561073557600080fd5b506107c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611b80565b60405180826000191660001916815260200191505060405180910390f35b3480156107f257600080fd5b50610831600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d52565b604051808215151515815260200191505060405180910390f35b34801561085757600080fd5b50610910600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611d69565b604051808215151515815260200191505060405180910390f35b34801561093657600080fd5b5061098b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612199565b6040518082815260200191505060405180910390f35b3480156109ad57600080fd5b50610a46600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050612220565b604051808215151515815260200191505060405180910390f35b348015610a6c57600080fd5b50610b05600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050612626565b604051808215151515815260200191505060405180910390f35b6000610b2c338484612a2c565b6001905092915050565b6000630d98dcb17c010000000000000000000000000000000000000000000000000000000002868686868660405160200180877bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526004018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140184815260200183815260200182815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515610c8c5780518252602082019150602081019050602083039250610c67565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614151515610d6f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e76616c6964205f746f20616464726573730000000000000000000000000081525060200191505060405180910390fd5b610d7c3089898989610b36565b9250610d88838a612b8f565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610e2f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c69642066726f6d2061646472657373207265636f7665726564000081525060200191505060405180910390fd5b8183604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083101515610ecf5780518252602082019150602081019050602083039250610eaa565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090506000151560686000836000191660001916815260200190815260200160002060009054906101000a900460ff161515141515610fc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f5472616e73616374696f6e20686173682077617320616c72656164792075736581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160686000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550611007828989612c87565b611012823388612c87565b3373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fec5a73fd1f178be20c1bca1b406cbf4b5c20d833b66e582fc122fb4baa0fc2a48a8a604051808381526020018281526020019250505060405180910390a46001935050505095945050505050565b600063138e8da17c010000000000000000000000000000000000000000000000000000000002868686868660405160200180877bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526004018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140184815260200183815260200182815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156111fc57805182526020820191506020810190506020830392506111d7565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b6000603554905090565b600061124b848484612c87565b6112e484336112df85603460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ea590919063ffffffff16565b612a2c565b600190509392505050565b600061138a338461138585603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ec690919063ffffffff16565b612a2c565b6001905092915050565b6000635229c56f7c010000000000000000000000000000000000000000000000000000000002868686868660405160200180877bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526004018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140184815260200183815260200182815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156114ea57805182526020820191506020810190506020830392506114c5565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141515156115cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964205f7370656e6465722061646472657373000000000000000081525060200191505060405180910390fd5b6115da308989898961194d565b92506115e6838a612b8f565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561168d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c69642066726f6d2061646472657373207265636f7665726564000081525060200191505060405180910390fd5b8183604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b60208310151561172d5780518252602082019150602081019050602083039250611708565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090506000151560686000836000191660001916815260200190815260200160002060009054906101000a900460ff161515141515611826576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f5472616e73616374696f6e20686173682077617320616c72656164792075736581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160686000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550611865828989612a2c565b611870823388612c87565b3373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f43a220267705e74ee2ceafd46afc841850db6f85a662189a7def697bbdd90ffb8a8a604051808381526020018281526020019250505060405180910390a46001935050505095945050505050565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006379250dcf7c010000000000000000000000000000000000000000000000000000000002868686868660405160200180877bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526004018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140184815260200183815260200182815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515611aa35780518252602082019150602081019050602083039250611a7e565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b6000611b763384611b7185603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ea590919063ffffffff16565b612a2c565b6001905092915050565b600063a70c41b47c01000000000000000000000000000000000000000000000000000000000287878787878760405160200180887bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526004018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018481526020018381526020018281526020019750505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515611d195780518252602082019150602081019050602083039250611cf4565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090509695505050505050565b6000611d5f338484612c87565b6001905092915050565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614151515611e14576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e76616c6964205f746f20616464726573730000000000000000000000000081525060200191505060405180910390fd5b611e22308a8a8a8a8a611b80565b9250611e2e838b612b8f565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611efb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f496e76616c6964207370656e6465722061646472657373207265636f7665726581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8183604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083101515611f9b5780518252602082019150602081019050602083039250611f76565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090506000151560686000836000191660001916815260200190815260200160002060009054906101000a900460ff161515141515612094576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f5472616e73616374696f6e20686173682077617320616c72656164792075736581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160686000836000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055506120d3898989612c87565b6120f989836120f48a6120e68e88612199565b612ea590919063ffffffff16565b612a2c565b612104823388612c87565b3373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fec5a73fd1f178be20c1bca1b406cbf4b5c20d833b66e582fc122fb4baa0fc2a48a8a604051808381526020018281526020019250505060405180910390a4600193505050509695505050505050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141515156122cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964205f7370656e6465722061646472657373000000000000000081525060200191505060405180910390fd5b6122d83089898989611394565b92506122e4838a612b8f565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561238b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c69642066726f6d2061646472657373207265636f7665726564000081525060200191505060405180910390fd5b8183604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b60208310151561242b5780518252602082019150602081019050602083039250612406565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090506000151560686000836000191660001916815260200190815260200160002060009054906101000a900460ff161515141515612524576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f5472616e73616374696f6e20686173682077617320616c72656164792075736581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160686000836000191660001916815260200190815260200160002060006101000a81548160ff02191690831515021790555061257e82896125798a61256b878e612199565b612ea590919063ffffffff16565b612a2c565b612589823388612c87565b3373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f43a220267705e74ee2ceafd46afc841850db6f85a662189a7def697bbdd90ffb6125f9868d612199565b8a604051808381526020018281526020019250505060405180910390a46001935050505095945050505050565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141515156126d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964205f7370656e6465722061646472657373000000000000000081525060200191505060405180910390fd5b6126de30898989896110a6565b92506126ea838a612b8f565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612791576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c69642066726f6d2061646472657373207265636f7665726564000081525060200191505060405180910390fd5b8183604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083101515612831578051825260208201915060208101905060208303925061280c565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090506000151560686000836000191660001916815260200190815260200160002060009054906101000a900460ff16151514151561292a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f5472616e73616374696f6e20686173682077617320616c72656164792075736581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160686000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550612984828961297f8a612971878e612199565b612ec690919063ffffffff16565b612a2c565b61298f823388612c87565b3373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f43a220267705e74ee2ceafd46afc841850db6f85a662189a7def697bbdd90ffb6129ff868d612199565b8a604051808381526020018281526020019250505060405180910390a46001935050505095945050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612a6857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515612aa457600080fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60008060008060418551141515612ba95760009350612c7e565b6020850151925060408501519150606085015160001a9050601b8160ff161015612bd457601b810190505b601b8160ff1614158015612bec5750601c8160ff1614155b15612bfa5760009350612c7e565b600186828585604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015612c71573d6000803e3d6000fd5b5050506020604051035193505b50505092915050565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515612cd557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612d1157600080fd5b612d6381603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ea590919063ffffffff16565b603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612df881603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ec690919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080838311151515612eb757600080fd5b82840390508091505092915050565b6000808284019050838110151515612edd57600080fd5b80915050929150505600a165627a7a72305820fd98d42a27b93bb3b4ef99e141a36ac892bfe24f01821442b49b8019bec693f10029", - "sourceMap": "391:12606:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;391:12606:0;;;;;;;", - "deployedSourceMap": "391:12606:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2462:145:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2462:145:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8566:411:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8566:411:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1035:860;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1035:860:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10461:449;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10461:449:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;702:83:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;702:83:8;;;;;;;;;;;;;;;;;;;;;;;2879:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2879:240:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3570:212;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3570:212:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11474:459:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11474:459:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2394:885;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2394:885:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;986:98:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;986:98:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9492:419:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9492:419:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4238:222:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4238:222:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12538:457:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12538:457:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1703:127:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1703:127:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7054:987:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7054:987:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1401:150:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1401:150:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5377:1075:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5377:1075:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3841:970;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3841:970:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2462:145:8;2527:4;2543:36;2552:10;2564:7;2573:5;2543:8;:36::i;:::-;2596:4;2589:11;;2462:145;;;;:::o;8566:411:0:-;8766:7;8922:10;8915:18;;8935:6;8943:3;8948:6;8956:4;8962:6;8898:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8898:71:0;;;8888:82;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;8888:82:0;;;;;;;;;;;;;;;;8881:89;;8566:411;;;;;;;:::o;1035:860::-;1217:4;1297:20;1396:12;1531:16;1260:1;1245:17;;:3;:17;;;;1237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1320:66;1353:4;1360:3;1365:6;1373:4;1379:6;1320:24;:66::i;:::-;1297:89;;1411:39;1425:12;1439:10;1411:13;:39::i;:::-;1396:54;;1484:1;1468:18;;:4;:18;;;;1460:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1577:4;1583:12;1560:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1560:36:0;;;1550:47;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1550:47:0;;;;;;;;;;;;;;;;1531:66;;1638:5;1615:28;;:9;:19;1625:8;1615:19;;;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;1607:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1712:4;1690:9;:19;1700:8;1690:19;;;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;1726:28;1736:4;1742:3;1747:6;1726:9;:28::i;:::-;1764:33;1774:4;1780:10;1792:4;1764:9;:33::i;:::-;1842:10;1813:54;;1837:3;1813:54;;1831:4;1813:54;;;1854:6;1862:4;1813:54;;;;;;;;;;;;;;;;;;;;;;;;1884:4;1877:11;;1035:860;;;;;;;;;;:::o;10461:449::-;10680:7;10845:10;10838:18;;10858:6;10866:8;10876:11;10889:4;10895:6;10821:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;10821:81:0;;;10811:92;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;10811:92:0;;;;;;;;;;;;;;;;10804:99;;10461:449;;;;;;;:::o;702:83:8:-;746:7;768:12;;761:19;;702:83;:::o;2879:240::-;2982:4;3000:26;3010:4;3016:2;3020:5;3000:9;:26::i;:::-;3032:65;3041:4;3047:10;3059:37;3090:5;3059:8;:14;3068:4;3059:14;;;;;;;;;;;;;;;:26;3074:10;3059:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;3032:8;:65::i;:::-;3110:4;3103:11;;2879:240;;;;;:::o;3570:212::-;3670:4;3684:76;3693:10;3705:7;3714:45;3748:10;3714:8;:20;3723:10;3714:20;;;;;;;;;;;;;;;:29;3735:7;3714:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;3684:8;:76::i;:::-;3773:4;3766:11;;3570:212;;;;:::o;11474:459:0:-;11698:7;11863:10;11856:18;;11876:6;11884:8;11894:16;11912:4;11918:6;11839:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11839:86:0;;;11829:97;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;11829:97:0;;;;;;;;;;;;;;;;11822:104;;11474:459;;;;;;;:::o;2394:885::-;2580:4;2669:20;2772:12;2906:16;2628:1;2608:22;;:8;:22;;;;2600:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2692:70;2724:4;2731:8;2741:6;2749:4;2755:6;2692:23;:70::i;:::-;2669:93;;2787:39;2801:12;2815:10;2787:13;:39::i;:::-;2772:54;;2860:1;2844:18;;:4;:18;;;;2836:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2952:4;2958:12;2935:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2935:36:0;;;2925:47;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2925:47:0;;;;;;;;;;;;;;;;2906:66;;3013:5;2990:28;;:9;:19;3000:8;2990:19;;;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;2982:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3087:4;3065:9;:19;3075:8;3065:19;;;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3101:32;3110:4;3116:8;3126:6;3101:8;:32::i;:::-;3143:33;3153:4;3159:10;3171:4;3143:9;:33::i;:::-;3226:10;3192:59;;3216:8;3192:59;;3210:4;3192:59;;;3238:6;3246:4;3192:59;;;;;;;;;;;;;;;;;;;;;;;;3268:4;3261:11;;2394:885;;;;;;;;;;:::o;986:98:8:-;1041:7;1063:9;:16;1073:5;1063:16;;;;;;;;;;;;;;;;1056:23;;986:98;;;:::o;9492:419:0:-;9696:7;9851:10;9844:18;;9864:6;9872:8;9882:6;9890:4;9896:6;9827:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9827:76:0;;;9817:87;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;9817:87:0;;;;;;;;;;;;;;;;9810:94;;9492:419;;;;;;;:::o;4238:222:8:-;4343:4;4357:81;4366:10;4378:7;4387:50;4421:15;4387:8;:20;4396:10;4387:20;;;;;;;;;;;;;;;:29;4408:7;4387:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;4357:8;:81::i;:::-;4451:4;4444:11;;4238:222;;;;:::o;12538:457:0:-;12765:7;12933:10;12926:18;;12946:6;12954:5;12961:3;12966:6;12974:4;12980:6;12909:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12909:78:0;;;12899:89;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12899:89:0;;;;;;;;;;;;;;;;12892:96;;12538:457;;;;;;;;:::o;1703:127:8:-;1764:4;1776:32;1786:10;1798:2;1802:5;1776:9;:32::i;:::-;1821:4;1814:11;;1703:127;;;;:::o;7054:987:0:-;7263:4;7342:20;7453:15;7596:16;7306:1;7291:17;;:3;:17;;;;7283:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7365:77;7402:4;7409:5;7416:3;7421:6;7429:4;7435:6;7365:28;:77::i;:::-;7342:100;;7471:39;7485:12;7499:10;7471:13;:39::i;:::-;7453:57;;7547:1;7528:21;;:7;:21;;;;7520:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7642:7;7651:12;7625:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7625:39:0;;;7615:50;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7615:50:0;;;;;;;;;;;;;;;;7596:69;;7706:5;7683:28;;:9;:19;7693:8;7683:19;;;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;7675:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7780:4;7758:9;:19;7768:8;7758:19;;;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;7794:29;7804:5;7811:3;7816:6;7794:9;:29::i;:::-;7833:63;7842:5;7849:7;7858:37;7888:6;7858:25;7868:5;7875:7;7858:9;:25::i;:::-;:29;;:37;;;;:::i;:::-;7833:8;:63::i;:::-;7906:36;7916:7;7925:10;7937:4;7906:9;:36::i;:::-;7988:10;7958:55;;7983:3;7958:55;;7976:5;7958:55;;;8000:6;8008:4;7958:55;;;;;;;;;;;;;;;;;;;;;;;;8030:4;8023:11;;7054:987;;;;;;;;;;;:::o;1401:150:8:-;1498:7;1522:8;:15;1531:5;1522:15;;;;;;;;;;;;;;;:24;1538:7;1522:24;;;;;;;;;;;;;;;;1515:31;;1401:150;;;;:::o;5377:1075:0:-;5583:4;5672:20;5795:12;5929:16;5631:1;5611:22;;:8;:22;;;;5603:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5695:90;5737:4;5744:8;5754:16;5772:4;5778:6;5695:33;:90::i;:::-;5672:113;;5810:39;5824:12;5838:10;5810:13;:39::i;:::-;5795:54;;5883:1;5867:18;;:4;:18;;;;5859:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5975:4;5981:12;5958:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5958:36:0;;;5948:47;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;5948:47:0;;;;;;;;;;;;;;;;5929:66;;6036:5;6013:28;;:9;:19;6023:8;6013:19;;;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;6005:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6201:4;6179:9;:19;6189:8;6179:19;;;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;6215:72;6224:4;6230:8;6240:46;6269:16;6240:24;6250:4;6255:8;6240:9;:24::i;:::-;:28;;:46;;;;:::i;:::-;6215:8;:72::i;:::-;6297:33;6307:4;6313:10;6325:4;6297:9;:33::i;:::-;6380:10;6346:78;;6370:8;6346:78;;6364:4;6346:78;;;6392:25;6402:4;6408:8;6392:9;:25::i;:::-;6419:4;6346:78;;;;;;;;;;;;;;;;;;;;;;;;6441:4;6434:11;;5377:1075;;;;;;;;;;:::o;3841:970::-;4042:4;4131:20;4249:12;4383:16;4090:1;4070:22;;:8;:22;;;;4062:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4154:85;4196:4;4203:8;4213:11;4226:4;4232:6;4154:33;:85::i;:::-;4131:108;;4264:39;4278:12;4292:10;4264:13;:39::i;:::-;4249:54;;4337:1;4321:18;;:4;:18;;;;4313:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4429:4;4435:12;4412:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4412:36:0;;;4402:47;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4402:47:0;;;;;;;;;;;;;;;;4383:66;;4490:5;4467:28;;:9;:19;4477:8;4467:19;;;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;4459:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4564:4;4542:9;:19;4552:8;4542:19;;;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;4578:68;4587:4;4593:8;4603:42;4633:11;4603:25;4613:4;4619:8;4603:9;:25::i;:::-;:29;;:42;;;;:::i;:::-;4578:8;:68::i;:::-;4656:33;4666:4;4672:10;4684:4;4656:9;:33::i;:::-;4739:10;4705:78;;4729:8;4705:78;;4723:4;4705:78;;;4751:25;4761:4;4767:8;4751:9;:25::i;:::-;4778:4;4705:78;;;;;;;;;;;;;;;;;;;;;;;;4800:4;4793:11;;3841:970;;;;;;;;;;:::o;6263:248:8:-;6374:1;6355:21;;:7;:21;;;;6347:30;;;;;;;;6412:1;6395:19;;:5;:19;;;;6387:28;;;;;;;;6453:5;6426:8;:15;6435:5;6426:15;;;;;;;;;;;;;;;:24;6442:7;6426:24;;;;;;;;;;;;;;;:32;;;;6489:7;6473:31;;6482:5;6473:31;;;6498:5;6473:31;;;;;;;;;;;;;;;;;;6263:248;;;:::o;600:962:6:-;683:7;700:9;715;730:7;802:2;782:9;:16;:22;;778:62;;;830:1;814:19;;;;778:62;1116:2;1105:9;1101:18;1095:25;1090:30;;1153:2;1142:9;1138:18;1132:25;1127:30;;1198:2;1187:9;1183:18;1177:25;1174:1;1169:34;1164:39;;1310:2;1306:1;:6;;;1302:34;;;1327:2;1322:7;;;;1302:34;1410:2;1405:1;:7;;;;:18;;;;;1421:2;1416:1;:7;;;;1405:18;1401:157;;;1449:1;1433:19;;;;1401:157;1527:24;1537:4;1543:1;1546;1549;1527:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1527:24:6;;;;;;;;1520:31;;600:962;;;;;;;;:::o;4660:277:8:-;4752:9;:15;4762:4;4752:15;;;;;;;;;;;;;;;;4743:5;:24;;4735:33;;;;;;;;4796:1;4782:16;;:2;:16;;;;4774:25;;;;;;;;4824:26;4844:5;4824:9;:15;4834:4;4824:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;4806:9;:15;4816:4;4806:15;;;;;;;;;;;;;;;:44;;;;4872:24;4890:5;4872:9;:13;4882:2;4872:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;4856:9;:13;4866:2;4856:13;;;;;;;;;;;;;;;:40;;;;4922:2;4907:25;;4916:4;4907:25;;;4926:5;4907:25;;;;;;;;;;;;;;;;;;4660:277;;;:::o;1079:131:7:-;1137:7;1173:9;1165:1;1160;:6;;1152:15;;;;;;;;1189:1;1185;:5;1173:17;;1204:1;1197:8;;1079:131;;;;;:::o;1273:::-;1331:7;1346:9;1362:1;1358;:5;1346:17;;1382:1;1377;:6;;1369:15;;;;;;;;1398:1;1391:8;;1273:131;;;;;:::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"zos-lib/contracts/Initializable.sol\";\nimport \"openzeppelin-eth/contracts/token/ERC20/ERC20.sol\";\nimport { ECDSA } from \"openzeppelin-eth/contracts/cryptography/ECDSA.sol\";\nimport \"./IERC865.sol\";\n\n/**\n * @title ERC865Token Token\n *\n * ERC865Token allows users paying transfers in tokens instead of gas\n * https://github.com/ethereum/EIPs/issues/865\n *\n */\n\ncontract ERC865Token is Initializable, ERC20, IERC865 {\n\n /* hashed tx of transfers performed */\n mapping(bytes32 => bool) hashedTxs;\n /**\n * @dev Submit a presigned transfer\n * @notice fee will be given to sender if it's a smart contract make sure it can accept funds\n * @param _signature bytes The signature, issued by the owner.\n * @param _to address The address which you want to transfer to.\n * @param _value uint256 The amount of tokens to be transferred.\n * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n * @param _nonce uint256 Presigned transaction number.\n */\n function transferPreSigned(\n bytes _signature,\n address _to,\n uint256 _value,\n uint256 _fee,\n uint256 _nonce\n )\n public\n returns (bool)\n {\n require(_to != address(0), \"Invalid _to address\");\n\n bytes32 hashedParams = getTransferPreSignedHash(address(this), _to, _value, _fee, _nonce);\n address from = ECDSA.recover(hashedParams, _signature);\n require(from != address(0), \"Invalid from address recovered\");\n bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams));\n require(hashedTxs[hashedTx] == false,\"Transaction hash was already used\");\n hashedTxs[hashedTx] = true;\n _transfer(from, _to, _value);\n _transfer(from, msg.sender, _fee);\n\n emit TransferPreSigned(from, _to, msg.sender, _value, _fee);\n return true;\n }\n\n /**\n * @dev Submit a presigned approval\n * @notice fee will be given to sender if it's a smart contract make sure it can accept funds\n * @param _signature bytes The signature, issued by the owner.\n * @param _spender address The address which will spend the funds.\n * @param _value uint256 The amount of tokens to allow.\n * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n * @param _nonce uint256 Presigned transaction number.\n */\n function approvePreSigned(\n bytes _signature,\n address _spender,\n uint256 _value,\n uint256 _fee,\n uint256 _nonce\n )\n public\n returns (bool)\n {\n require(_spender != address(0),\"Invalid _spender address\");\n\n bytes32 hashedParams = getApprovePreSignedHash(address(this), _spender, _value, _fee, _nonce);\n address from = ECDSA.recover(hashedParams, _signature);\n require(from != address(0),\"Invalid from address recovered\");\n bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams));\n require(hashedTxs[hashedTx] == false,\"Transaction hash was already used\");\n hashedTxs[hashedTx] = true;\n _approve(from, _spender, _value);\n _transfer(from, msg.sender, _fee);\n\n emit ApprovalPreSigned(from, _spender, msg.sender, _value, _fee);\n return true;\n }\n\n /**\n * @dev Increase the amount of tokens that an owner allowed to a spender.\n * @notice fee will be given to sender if it's a smart contract make sure it can accept funds\n * @param _signature bytes The signature, issued by the owner.\n * @param _spender address The address which will spend the funds.\n * @param _addedValue uint256 The amount of tokens to increase the allowance by.\n * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n * @param _nonce uint256 Presigned transaction number.\n */\n function increaseAllowancePreSigned(\n bytes _signature,\n address _spender,\n uint256 _addedValue,\n uint256 _fee,\n uint256 _nonce\n )\n public\n returns (bool)\n {\n require(_spender != address(0),\"Invalid _spender address\");\n\n bytes32 hashedParams = getIncreaseAllowancePreSignedHash(address(this), _spender, _addedValue, _fee, _nonce);\n address from = ECDSA.recover(hashedParams, _signature);\n require(from != address(0),\"Invalid from address recovered\");\n bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams));\n require(hashedTxs[hashedTx] == false,\"Transaction hash was already used\");\n hashedTxs[hashedTx] = true;\n _approve(from, _spender, allowance(from, _spender).add(_addedValue));\n _transfer(from, msg.sender, _fee);\n\n emit ApprovalPreSigned(from, _spender, msg.sender, allowance(from, _spender), _fee);\n return true;\n }\n\n /**\n * @dev Decrease the amount of tokens that an owner allowed to a spender.\n * @notice fee will be given to sender if it's a smart contract make sure it can accept funds\n * @param _signature bytes The signature, issued by the owner\n * @param _spender address The address which will spend the funds.\n * @param _subtractedValue uint256 The amount of tokens to decrease the allowance by.\n * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n * @param _nonce uint256 Presigned transaction number.\n */\n function decreaseAllowancePreSigned(\n bytes _signature,\n address _spender,\n uint256 _subtractedValue,\n uint256 _fee,\n uint256 _nonce\n )\n public\n returns (bool)\n {\n require(_spender != address(0),\"Invalid _spender address\");\n\n bytes32 hashedParams = getDecreaseAllowancePreSignedHash(address(this), _spender, _subtractedValue, _fee, _nonce);\n address from = ECDSA.recover(hashedParams, _signature);\n require(from != address(0),\"Invalid from address recovered\");\n bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams));\n require(hashedTxs[hashedTx] == false,\"Transaction hash was already used\");\n // if substractedValue is greater than allowance will fail as allowance is uint256\n hashedTxs[hashedTx] = true;\n _approve(from, _spender, allowance(from,_spender).sub(_subtractedValue));\n _transfer(from, msg.sender, _fee);\n\n emit ApprovalPreSigned(from, _spender, msg.sender, allowance(from, _spender), _fee);\n return true;\n }\n\n /**\n * @dev Transfer tokens from one address to another\n * @notice fee will be given to sender if it's a smart contract make sure it can accept funds\n * @param _signature bytes The signature, issued by the spender.\n * @param _from address The address which you want to send tokens from.\n * @param _to address The address which you want to transfer to.\n * @param _value uint256 The amount of tokens to be transferred.\n * @param _fee uint256 The amount of tokens paid to msg.sender, by the spender.\n * @param _nonce uint256 Presigned transaction number.\n */\n function transferFromPreSigned(\n bytes _signature,\n address _from,\n address _to,\n uint256 _value,\n uint256 _fee,\n uint256 _nonce\n )\n public\n returns (bool)\n {\n require(_to != address(0),\"Invalid _to address\");\n\n bytes32 hashedParams = getTransferFromPreSignedHash(address(this), _from, _to, _value, _fee, _nonce);\n\n address spender = ECDSA.recover(hashedParams, _signature);\n require(spender != address(0),\"Invalid spender address recovered\");\n bytes32 hashedTx = keccak256(abi.encodePacked(spender, hashedParams));\n require(hashedTxs[hashedTx] == false,\"Transaction hash was already used\");\n hashedTxs[hashedTx] = true;\n _transfer(_from, _to, _value);\n _approve(_from, spender, allowance(_from, spender).sub(_value));\n _transfer(spender, msg.sender, _fee);\n\n emit TransferPreSigned(_from, _to, msg.sender, _value, _fee);\n return true;\n }\n\n\n /**\n * @dev Hash (keccak256) of the payload used by transferPreSigned\n * @notice fee will be given to sender if it's a smart contract make sure it can accept funds\n * @param _token address The address of the token.\n * @param _to address The address which you want to transfer to.\n * @param _value uint256 The amount of tokens to be transferred.\n * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n * @param _nonce uint256 Presigned transaction number.\n */\n function getTransferPreSignedHash(\n address _token,\n address _to,\n uint256 _value,\n uint256 _fee,\n uint256 _nonce\n )\n public\n pure\n returns (bytes32)\n {\n /* \"0d98dcb1\": getTransferPreSignedHash(address,address,uint256,uint256,uint256) */\n return keccak256(abi.encodePacked(bytes4(0x0d98dcb1), _token, _to, _value, _fee, _nonce));\n }\n\n /**\n * @dev Hash (keccak256) of the payload used by approvePreSigned\n * @notice fee will be given to sender if it's a smart contract make sure it can accept funds\n * @param _token address The address of the token\n * @param _spender address The address which will spend the funds.\n * @param _value uint256 The amount of tokens to allow.\n * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n * @param _nonce uint256 Presigned transaction number.\n */\n function getApprovePreSignedHash(\n address _token,\n address _spender,\n uint256 _value,\n uint256 _fee,\n uint256 _nonce\n )\n public\n pure\n returns (bytes32)\n {\n /* \"79250dcf\": getApprovePreSignedHash(address,address,uint256,uint256,uint256) */\n return keccak256(abi.encodePacked(bytes4(0x79250dcf), _token, _spender, _value, _fee, _nonce));\n }\n\n /**\n * @dev Hash (keccak256) of the payload used by increaseAllowancePreSigned\n * @notice fee will be given to sender if it's a smart contract make sure it can accept funds\n * @param _token address The address of the token\n * @param _spender address The address which will spend the funds.\n * @param _addedValue uint256 The amount of tokens to increase the allowance by.\n * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n * @param _nonce uint256 Presigned transaction number.\n */\n function getIncreaseAllowancePreSignedHash(\n address _token,\n address _spender,\n uint256 _addedValue,\n uint256 _fee,\n uint256 _nonce\n )\n public\n pure\n returns (bytes32)\n {\n /* \"138e8da1\": getIncreaseAllowancePreSignedHash(address,address,uint256,uint256,uint256) */\n return keccak256(abi.encodePacked(bytes4(0x138e8da1), _token, _spender, _addedValue, _fee, _nonce));\n }\n\n /**\n * @dev Hash (keccak256) of the payload used by decreaseAllowancePreSigned\n * @notice fee will be given to sender if it's a smart contract make sure it can accept funds\n * @param _token address The address of the token\n * @param _spender address The address which will spend the funds.\n * @param _subtractedValue uint256 The amount of tokens to decrease the allowance by.\n * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n * @param _nonce uint256 Presigned transaction number.\n */\n function getDecreaseAllowancePreSignedHash(\n address _token,\n address _spender,\n uint256 _subtractedValue,\n uint256 _fee,\n uint256 _nonce\n )\n public\n pure\n returns (bytes32)\n {\n /* \"5229c56f\": getDecreaseAllowancePreSignedHash(address,address,uint256,uint256,uint256) */\n return keccak256(abi.encodePacked(bytes4(0x5229c56f), _token, _spender, _subtractedValue, _fee, _nonce));\n }\n\n /**\n * @dev Hash (keccak256) of the payload used by transferFromPreSigned\n * @notice fee will be given to sender if it's a smart contract make sure it can accept funds\n * @param _token address The address of the token\n * @param _from address The address which you want to send tokens from.\n * @param _to address The address which you want to transfer to.\n * @param _value uint256 The amount of tokens to be transferred.\n * @param _fee uint256 The amount of tokens paid to msg.sender, by the spender.\n * @param _nonce uint256 Presigned transaction number.\n */\n function getTransferFromPreSignedHash(\n address _token,\n address _from,\n address _to,\n uint256 _value,\n uint256 _fee,\n uint256 _nonce\n )\n public\n pure\n returns (bytes32)\n {\n /* \"a70c41b4\": getTransferFromPreSignedHash(address,address,address,uint256,uint256,uint256) */\n return keccak256(abi.encodePacked(bytes4(0xa70c41b4), _token, _from, _to, _value, _fee, _nonce));\n }\n}", - "sourcePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/ERC865Token.sol", - "ast": { - "absolutePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/ERC865Token.sol", - "exportedSymbols": { - "ERC865Token": [ - 718 - ] - }, - "id": 719, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:0" - }, - { - "absolutePath": "zos-lib/contracts/Initializable.sol", - "file": "zos-lib/contracts/Initializable.sol", - "id": 2, - "nodeType": "ImportDirective", - "scope": 719, - "sourceUnit": 4184, - "src": "26:45:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", - "id": 3, - "nodeType": "ImportDirective", - "scope": 719, - "sourceUnit": 3992, - "src": "72:58:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-eth/contracts/cryptography/ECDSA.sol", - "file": "openzeppelin-eth/contracts/cryptography/ECDSA.sol", - "id": 5, - "nodeType": "ImportDirective", - "scope": 719, - "sourceUnit": 3462, - "src": "131:74:0", - "symbolAliases": [ - { - "foreign": 4, - "local": null - } - ], - "unitAlias": "" - }, - { - "absolutePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/IERC865.sol", - "file": "./IERC865.sol", - "id": 6, - "nodeType": "ImportDirective", - "scope": 719, - "sourceUnit": 823, - "src": "206:23:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 7, - "name": "Initializable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4183, - "src": "415:13:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Initializable_$4183", - "typeString": "contract Initializable" - } - }, - "id": 8, - "nodeType": "InheritanceSpecifier", - "src": "415:13:0" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 9, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3991, - "src": "430:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$3991", - "typeString": "contract ERC20" - } - }, - "id": 10, - "nodeType": "InheritanceSpecifier", - "src": "430:5:0" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 11, - "name": "IERC865", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 822, - "src": "437:7:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC865_$822", - "typeString": "contract IERC865" - } - }, - "id": 12, - "nodeType": "InheritanceSpecifier", - "src": "437:7:0" - } - ], - "contractDependencies": [ - 822, - 3991, - 4127, - 4183 - ], - "contractKind": "contract", - "documentation": "@title ERC865Token Token\n * ERC865Token allows users paying transfers in tokens instead of gas\nhttps://github.com/ethereum/EIPs/issues/865\n ", - "fullyImplemented": true, - "id": 718, - "linearizedBaseContracts": [ - 718, - 822, - 3991, - 4127, - 4183 - ], - "name": "ERC865Token", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 16, - "name": "hashedTxs", - "nodeType": "VariableDeclaration", - "scope": 718, - "src": "495:34:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 15, - "keyType": { - "id": 13, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "503:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "495:24:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 14, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "514:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 118, - "nodeType": "Block", - "src": "1227:668:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 36, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 32, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20, - "src": "1245:3:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 34, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1260:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 33, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1252:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 35, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1252:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1245:17:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964205f746f2061646472657373", - "id": 37, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1264:21:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_aaddd998129bc39ca6dc602048c375b7109290ec7563369e9df91bb8161c9d33", - "typeString": "literal_string \"Invalid _to address\"" - }, - "value": "Invalid _to address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_aaddd998129bc39ca6dc602048c375b7109290ec7563369e9df91bb8161c9d33", - "typeString": "literal_string \"Invalid _to address\"" - } - ], - "id": 31, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "1237:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 38, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1237:49:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 39, - "nodeType": "ExpressionStatement", - "src": "1237:49:0" - }, - { - "assignments": [ - 41 - ], - "declarations": [ - { - "constant": false, - "id": 41, - "name": "hashedParams", - "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1297:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 40, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1297:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 51, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 44, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "1353:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC865Token_$718", - "typeString": "contract ERC865Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC865Token_$718", - "typeString": "contract ERC865Token" - } - ], - "id": 43, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1345:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 45, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1345:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 46, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20, - "src": "1360:3:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 47, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22, - "src": "1365:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 48, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "1373:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 49, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 26, - "src": "1379:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 42, - "name": "getTransferPreSignedHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 594, - "src": "1320:24:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,address,uint256,uint256,uint256) pure returns (bytes32)" - } - }, - "id": 50, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1320:66:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1297:89:0" - }, - { - "assignments": [ - 53 - ], - "declarations": [ - { - "constant": false, - "id": 53, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1396:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 52, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1396:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 59, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 56, - "name": "hashedParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "1425:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 57, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18, - "src": "1439:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 54, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "1411:5:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$3461_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 55, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 3444, - "src": "1411:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 58, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1411:39:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1396:54:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 65, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 61, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "1468:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 63, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1484:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 62, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1476:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 64, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1476:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1468:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c69642066726f6d2061646472657373207265636f7665726564", - "id": 66, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1488:32:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9511c22d1eaecede4ce0a9e5c0777e39b425a0a18d9129795c6ab245da55d151", - "typeString": "literal_string \"Invalid from address recovered\"" - }, - "value": "Invalid from address recovered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9511c22d1eaecede4ce0a9e5c0777e39b425a0a18d9129795c6ab245da55d151", - "typeString": "literal_string \"Invalid from address recovered\"" - } - ], - "id": 60, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "1460:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 67, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1460:61:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 68, - "nodeType": "ExpressionStatement", - "src": "1460:61:0" - }, - { - "assignments": [ - 70 - ], - "declarations": [ - { - "constant": false, - "id": 70, - "name": "hashedTx", - "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1531:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 69, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1531:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 78, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 74, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "1577:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 75, - "name": "hashedParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "1583:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 72, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "1560:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 73, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1560:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 76, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1560:36:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 71, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "1550:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 77, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1550:47:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1531:66:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 84, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 80, - "name": "hashedTxs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "1615:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 82, - "indexExpression": { - "argumentTypes": null, - "id": 81, - "name": "hashedTx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 70, - "src": "1625:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1615:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 83, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1638:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "1615:28:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5472616e73616374696f6e20686173682077617320616c72656164792075736564", - "id": 85, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1644:35:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_560ec6ef29f13441fd3828e9ccd389c24197530b6d027ca9ee3fd6449d37fdd8", - "typeString": "literal_string \"Transaction hash was already used\"" - }, - "value": "Transaction hash was already used" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_560ec6ef29f13441fd3828e9ccd389c24197530b6d027ca9ee3fd6449d37fdd8", - "typeString": "literal_string \"Transaction hash was already used\"" - } - ], - "id": 79, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "1607:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 86, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1607:73:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 87, - "nodeType": "ExpressionStatement", - "src": "1607:73:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 92, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 88, - "name": "hashedTxs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "1690:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 90, - "indexExpression": { - "argumentTypes": null, - "id": 89, - "name": "hashedTx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 70, - "src": "1700:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1690:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 91, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1712:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "1690:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 93, - "nodeType": "ExpressionStatement", - "src": "1690:26:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 95, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "1736:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 96, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20, - "src": "1742:3:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 97, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22, - "src": "1747:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 94, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "1726:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 98, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1726:28:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 99, - "nodeType": "ExpressionStatement", - "src": "1726:28:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 101, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "1774:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 102, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "1780: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": "1780:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 104, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "1792:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 100, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "1764:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1764:33:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 106, - "nodeType": "ExpressionStatement", - "src": "1764:33:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 108, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "1831:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 109, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20, - "src": "1837:3:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 110, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "1842:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1842:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 112, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22, - "src": "1854:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 113, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "1862:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 107, - "name": "TransferPreSigned", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 732, - "src": "1813:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256,uint256)" - } - }, - "id": 114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1813:54:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 115, - "nodeType": "EmitStatement", - "src": "1808:59:0" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 116, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1884:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 30, - "id": 117, - "nodeType": "Return", - "src": "1877:11:0" - } - ] - }, - "documentation": "@dev Submit a presigned transfer\n@notice fee will be given to sender if it's a smart contract make sure it can accept funds\n@param _signature bytes The signature, issued by the owner.\n@param _to address The address which you want to transfer to.\n@param _value uint256 The amount of tokens to be transferred.\n@param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n@param _nonce uint256 Presigned transaction number.", - "id": 119, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferPreSigned", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 27, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1071:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 17, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1071:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 20, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1097:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 19, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1097:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 22, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1118:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1118:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 24, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1142:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 23, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1142:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 26, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1164:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 25, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1164:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1061:123:0" - }, - "payable": false, - "returnParameters": { - "id": 30, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 29, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1217:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 28, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1217:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1216:6:0" - }, - "scope": 718, - "src": "1035:860:0", - "stateMutability": "nonpayable", - "superFunction": 759, - "visibility": "public" - }, - { - "body": { - "id": 221, - "nodeType": "Block", - "src": "2590:689:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 135, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "2608:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2628:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 136, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2620:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2620:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2608:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964205f7370656e6465722061646472657373", - "id": 140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2631:26:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_42fe7f86ff346da536060619c7d4746ff90e08ddf018075cae110880b4ba9b81", - "typeString": "literal_string \"Invalid _spender address\"" - }, - "value": "Invalid _spender address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_42fe7f86ff346da536060619c7d4746ff90e08ddf018075cae110880b4ba9b81", - "typeString": "literal_string \"Invalid _spender address\"" - } - ], - "id": 134, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "2600:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2600:58:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 142, - "nodeType": "ExpressionStatement", - "src": "2600:58:0" - }, - { - "assignments": [ - 144 - ], - "declarations": [ - { - "constant": false, - "id": 144, - "name": "hashedParams", - "nodeType": "VariableDeclaration", - "scope": 222, - "src": "2669:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 143, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2669:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 147, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "2724:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC865Token_$718", - "typeString": "contract ERC865Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC865Token_$718", - "typeString": "contract ERC865Token" - } - ], - "id": 146, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2716:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2716:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 149, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "2731:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 150, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 125, - "src": "2741:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 151, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "2749:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 152, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 129, - "src": "2755:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 145, - "name": "getApprovePreSignedHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 624, - "src": "2692:23:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,address,uint256,uint256,uint256) pure returns (bytes32)" - } - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2692:70:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2669:93:0" - }, - { - "assignments": [ - 156 - ], - "declarations": [ - { - "constant": false, - "id": 156, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 222, - "src": "2772:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 155, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2772:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 162, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 159, - "name": "hashedParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "2801:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 160, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121, - "src": "2815:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 157, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "2787:5:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$3461_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 3444, - "src": "2787:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2787:39:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2772:54:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 164, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 156, - "src": "2844:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 166, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2860:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 165, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2852:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 167, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2852:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2844:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c69642066726f6d2061646472657373207265636f7665726564", - "id": 169, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2863:32:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9511c22d1eaecede4ce0a9e5c0777e39b425a0a18d9129795c6ab245da55d151", - "typeString": "literal_string \"Invalid from address recovered\"" - }, - "value": "Invalid from address recovered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9511c22d1eaecede4ce0a9e5c0777e39b425a0a18d9129795c6ab245da55d151", - "typeString": "literal_string \"Invalid from address recovered\"" - } - ], - "id": 163, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "2836:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2836:60:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 171, - "nodeType": "ExpressionStatement", - "src": "2836:60:0" - }, - { - "assignments": [ - 173 - ], - "declarations": [ - { - "constant": false, - "id": 173, - "name": "hashedTx", - "nodeType": "VariableDeclaration", - "scope": 222, - "src": "2906:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 172, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2906:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 181, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 177, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 156, - "src": "2952:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 178, - "name": "hashedParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "2958:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 175, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "2935:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 176, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2935:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2935:36:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 174, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "2925:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2925:47:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2906:66:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 183, - "name": "hashedTxs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "2990:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 185, - "indexExpression": { - "argumentTypes": null, - "id": 184, - "name": "hashedTx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 173, - "src": "3000:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2990:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 186, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3013:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "2990:28:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5472616e73616374696f6e20686173682077617320616c72656164792075736564", - "id": 188, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3019:35:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_560ec6ef29f13441fd3828e9ccd389c24197530b6d027ca9ee3fd6449d37fdd8", - "typeString": "literal_string \"Transaction hash was already used\"" - }, - "value": "Transaction hash was already used" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_560ec6ef29f13441fd3828e9ccd389c24197530b6d027ca9ee3fd6449d37fdd8", - "typeString": "literal_string \"Transaction hash was already used\"" - } - ], - "id": 182, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "2982:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2982:73:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 190, - "nodeType": "ExpressionStatement", - "src": "2982:73:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 191, - "name": "hashedTxs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "3065:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 193, - "indexExpression": { - "argumentTypes": null, - "id": 192, - "name": "hashedTx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 173, - "src": "3075:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3065:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 194, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3087:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "3065:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 196, - "nodeType": "ExpressionStatement", - "src": "3065:26:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 198, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 156, - "src": "3110:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 199, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "3116:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 200, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 125, - "src": "3126:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 197, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3958, - "src": "3101:8:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3101:32:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 202, - "nodeType": "ExpressionStatement", - "src": "3101:32:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 204, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 156, - "src": "3153:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 205, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "3159:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3159:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 207, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "3171:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 203, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "3143:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3143:33:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 209, - "nodeType": "ExpressionStatement", - "src": "3143:33:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 211, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 156, - "src": "3210:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 212, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "3216:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 213, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "3226:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3226:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 215, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 125, - "src": "3238:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 216, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "3246:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 210, - "name": "ApprovalPreSigned", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 744, - "src": "3192:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256,uint256)" - } - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3192:59:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 218, - "nodeType": "EmitStatement", - "src": "3187:64:0" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3268:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 133, - "id": 220, - "nodeType": "Return", - "src": "3261:11:0" - } - ] - }, - "documentation": "@dev Submit a presigned approval\n@notice fee will be given to sender if it's a smart contract make sure it can accept funds\n@param _signature bytes The signature, issued by the owner.\n@param _spender address The address which will spend the funds.\n@param _value uint256 The amount of tokens to allow.\n@param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n@param _nonce uint256 Presigned transaction number.", - "id": 222, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approvePreSigned", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 121, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 222, - "src": "2429:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 120, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2429:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 123, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 222, - "src": "2455:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 122, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2455:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 125, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 222, - "src": "2481:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 124, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2481:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 127, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 222, - "src": "2505:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 126, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2505:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 222, - "src": "2527:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 128, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2527:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2419:128:0" - }, - "payable": false, - "returnParameters": { - "id": 133, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 132, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 222, - "src": "2580:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 131, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2579:6:0" - }, - "scope": 718, - "src": "2394:885:0", - "stateMutability": "nonpayable", - "superFunction": 774, - "visibility": "public" - }, - { - "body": { - "id": 333, - "nodeType": "Block", - "src": "4052:759:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 238, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "4070:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 240, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4090:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4082:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 241, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4082:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4070:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964205f7370656e6465722061646472657373", - "id": 243, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4093:26:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_42fe7f86ff346da536060619c7d4746ff90e08ddf018075cae110880b4ba9b81", - "typeString": "literal_string \"Invalid _spender address\"" - }, - "value": "Invalid _spender address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_42fe7f86ff346da536060619c7d4746ff90e08ddf018075cae110880b4ba9b81", - "typeString": "literal_string \"Invalid _spender address\"" - } - ], - "id": 237, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "4062:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4062:58:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 245, - "nodeType": "ExpressionStatement", - "src": "4062:58:0" - }, - { - "assignments": [ - 247 - ], - "declarations": [ - { - "constant": false, - "id": 247, - "name": "hashedParams", - "nodeType": "VariableDeclaration", - "scope": 334, - "src": "4131:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 246, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4131:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 257, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 250, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "4196:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC865Token_$718", - "typeString": "contract ERC865Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC865Token_$718", - "typeString": "contract ERC865Token" - } - ], - "id": 249, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4188:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4188:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 252, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "4203:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 253, - "name": "_addedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "4213:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 254, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "4226:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 255, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 232, - "src": "4232:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 248, - "name": "getIncreaseAllowancePreSignedHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 654, - "src": "4154:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,address,uint256,uint256,uint256) pure returns (bytes32)" - } - }, - "id": 256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4154:85:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4131:108:0" - }, - { - "assignments": [ - 259 - ], - "declarations": [ - { - "constant": false, - "id": 259, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 334, - "src": "4249:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 258, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4249:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 265, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 262, - "name": "hashedParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 247, - "src": "4278:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 263, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 224, - "src": "4292:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 260, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "4264:5:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$3461_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 3444, - "src": "4264:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4264:39:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4249:54:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 267, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "4321:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4337:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 268, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4329:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 270, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4329:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4321:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c69642066726f6d2061646472657373207265636f7665726564", - "id": 272, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4340:32:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9511c22d1eaecede4ce0a9e5c0777e39b425a0a18d9129795c6ab245da55d151", - "typeString": "literal_string \"Invalid from address recovered\"" - }, - "value": "Invalid from address recovered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9511c22d1eaecede4ce0a9e5c0777e39b425a0a18d9129795c6ab245da55d151", - "typeString": "literal_string \"Invalid from address recovered\"" - } - ], - "id": 266, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "4313:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4313:60:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 274, - "nodeType": "ExpressionStatement", - "src": "4313:60:0" - }, - { - "assignments": [ - 276 - ], - "declarations": [ - { - "constant": false, - "id": 276, - "name": "hashedTx", - "nodeType": "VariableDeclaration", - "scope": 334, - "src": "4383:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 275, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4383:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 284, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 280, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "4429:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 281, - "name": "hashedParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 247, - "src": "4435:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 278, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "4412:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 279, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4412:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4412:36:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 277, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "4402:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4402:47:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4383:66:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 286, - "name": "hashedTxs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "4467:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 288, - "indexExpression": { - "argumentTypes": null, - "id": 287, - "name": "hashedTx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 276, - "src": "4477:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4467:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 289, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4490:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "4467:28:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5472616e73616374696f6e20686173682077617320616c72656164792075736564", - "id": 291, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4496:35:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_560ec6ef29f13441fd3828e9ccd389c24197530b6d027ca9ee3fd6449d37fdd8", - "typeString": "literal_string \"Transaction hash was already used\"" - }, - "value": "Transaction hash was already used" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_560ec6ef29f13441fd3828e9ccd389c24197530b6d027ca9ee3fd6449d37fdd8", - "typeString": "literal_string \"Transaction hash was already used\"" - } - ], - "id": 285, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "4459:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4459:73:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 293, - "nodeType": "ExpressionStatement", - "src": "4459:73:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 294, - "name": "hashedTxs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "4542:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 296, - "indexExpression": { - "argumentTypes": null, - "id": 295, - "name": "hashedTx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 276, - "src": "4552:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4542:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4564:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4542:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 299, - "nodeType": "ExpressionStatement", - "src": "4542:26:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 301, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "4587:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 302, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "4593:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 308, - "name": "_addedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "4633:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 304, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "4613:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 305, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "4619:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 303, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "4603:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view returns (uint256)" - } - }, - "id": 306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4603:25:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 307, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3568, - "src": "4603:29:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4603:42:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 300, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3958, - "src": "4578:8:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4578:68:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 311, - "nodeType": "ExpressionStatement", - "src": "4578:68:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 313, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "4666:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 314, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "4672:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4672:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 316, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "4684:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 312, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "4656:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4656:33:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 318, - "nodeType": "ExpressionStatement", - "src": "4656:33:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 320, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "4723:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 321, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "4729:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 322, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "4739:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4739:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 325, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "4761:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 326, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "4767:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 324, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "4751:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view returns (uint256)" - } - }, - "id": 327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4751:25:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 328, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "4778:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 319, - "name": "ApprovalPreSigned", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 744, - "src": "4705:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256,uint256)" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4705:78:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 330, - "nodeType": "EmitStatement", - "src": "4700:83:0" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4800:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 236, - "id": 332, - "nodeType": "Return", - "src": "4793:11:0" - } - ] - }, - "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\n@notice fee will be given to sender if it's a smart contract make sure it can accept funds\n@param _signature bytes The signature, issued by the owner.\n@param _spender address The address which will spend the funds.\n@param _addedValue uint256 The amount of tokens to increase the allowance by.\n@param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n@param _nonce uint256 Presigned transaction number.", - "id": 334, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "increaseAllowancePreSigned", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 233, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 224, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 334, - "src": "3886:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 223, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3886:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 226, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 334, - "src": "3912:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 225, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3912:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "_addedValue", - "nodeType": "VariableDeclaration", - "scope": 334, - "src": "3938:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3938:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 230, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 334, - "src": "3967:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 229, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3967:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 232, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 334, - "src": "3989:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 231, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3989:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3876:133:0" - }, - "payable": false, - "returnParameters": { - "id": 236, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 235, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 334, - "src": "4042:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 234, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4042:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4041:6:0" - }, - "scope": 718, - "src": "3841:970:0", - "stateMutability": "nonpayable", - "superFunction": 789, - "visibility": "public" - }, - { - "body": { - "id": 445, - "nodeType": "Block", - "src": "5593:859:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 350, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 338, - "src": "5611:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 352, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5631:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5623:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5623:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5611:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964205f7370656e6465722061646472657373", - "id": 355, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5634:26:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_42fe7f86ff346da536060619c7d4746ff90e08ddf018075cae110880b4ba9b81", - "typeString": "literal_string \"Invalid _spender address\"" - }, - "value": "Invalid _spender address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_42fe7f86ff346da536060619c7d4746ff90e08ddf018075cae110880b4ba9b81", - "typeString": "literal_string \"Invalid _spender address\"" - } - ], - "id": 349, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "5603:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 356, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5603:58:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 357, - "nodeType": "ExpressionStatement", - "src": "5603:58:0" - }, - { - "assignments": [ - 359 - ], - "declarations": [ - { - "constant": false, - "id": 359, - "name": "hashedParams", - "nodeType": "VariableDeclaration", - "scope": 446, - "src": "5672:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 358, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5672:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 369, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 362, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "5737:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC865Token_$718", - "typeString": "contract ERC865Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC865Token_$718", - "typeString": "contract ERC865Token" - } - ], - "id": 361, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5729:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 363, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5729:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 364, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 338, - "src": "5744:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 365, - "name": "_subtractedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 340, - "src": "5754:16:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 366, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "5772:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 367, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 344, - "src": "5778:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 360, - "name": "getDecreaseAllowancePreSignedHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "5695:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,address,uint256,uint256,uint256) pure returns (bytes32)" - } - }, - "id": 368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5695:90:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5672:113:0" - }, - { - "assignments": [ - 371 - ], - "declarations": [ - { - "constant": false, - "id": 371, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 446, - "src": "5795:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 370, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5795:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 377, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 374, - "name": "hashedParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 359, - "src": "5824:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 375, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "5838:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 372, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "5810:5:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$3461_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 3444, - "src": "5810:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5810:39:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5795:54:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 379, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "5867:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5883:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5875:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5875:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5867:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c69642066726f6d2061646472657373207265636f7665726564", - "id": 384, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5886:32:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9511c22d1eaecede4ce0a9e5c0777e39b425a0a18d9129795c6ab245da55d151", - "typeString": "literal_string \"Invalid from address recovered\"" - }, - "value": "Invalid from address recovered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9511c22d1eaecede4ce0a9e5c0777e39b425a0a18d9129795c6ab245da55d151", - "typeString": "literal_string \"Invalid from address recovered\"" - } - ], - "id": 378, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "5859:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5859:60:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 386, - "nodeType": "ExpressionStatement", - "src": "5859:60:0" - }, - { - "assignments": [ - 388 - ], - "declarations": [ - { - "constant": false, - "id": 388, - "name": "hashedTx", - "nodeType": "VariableDeclaration", - "scope": 446, - "src": "5929:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 387, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5929:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 396, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 392, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "5975:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 393, - "name": "hashedParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 359, - "src": "5981:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 390, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "5958:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 391, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5958:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5958:36:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 389, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "5948:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 395, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5948:47:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5929:66:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 398, - "name": "hashedTxs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "6013:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 400, - "indexExpression": { - "argumentTypes": null, - "id": 399, - "name": "hashedTx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 388, - "src": "6023:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6013:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 401, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6036:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "6013:28:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5472616e73616374696f6e20686173682077617320616c72656164792075736564", - "id": 403, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6042:35:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_560ec6ef29f13441fd3828e9ccd389c24197530b6d027ca9ee3fd6449d37fdd8", - "typeString": "literal_string \"Transaction hash was already used\"" - }, - "value": "Transaction hash was already used" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_560ec6ef29f13441fd3828e9ccd389c24197530b6d027ca9ee3fd6449d37fdd8", - "typeString": "literal_string \"Transaction hash was already used\"" - } - ], - "id": 397, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "6005:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6005:73:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 405, - "nodeType": "ExpressionStatement", - "src": "6005:73:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 406, - "name": "hashedTxs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "6179:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 408, - "indexExpression": { - "argumentTypes": null, - "id": 407, - "name": "hashedTx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 388, - "src": "6189:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6179:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 409, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6201:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "6179:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 411, - "nodeType": "ExpressionStatement", - "src": "6179:26:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 413, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "6224:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 414, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 338, - "src": "6230:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 420, - "name": "_subtractedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 340, - "src": "6269:16:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 416, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "6250:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 417, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 338, - "src": "6255:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 415, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "6240:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view returns (uint256)" - } - }, - "id": 418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6240:24:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3544, - "src": "6240:28:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6240:46:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 412, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3958, - "src": "6215:8:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6215:72:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 423, - "nodeType": "ExpressionStatement", - "src": "6215:72:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 425, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "6307:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 426, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "6313:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 427, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6313:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 428, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "6325:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 424, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "6297:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6297:33:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "6297:33:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 432, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "6364:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 433, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 338, - "src": "6370:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 434, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "6380:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6380:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 437, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "6402:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 438, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 338, - "src": "6408:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 436, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "6392:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view returns (uint256)" - } - }, - "id": 439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6392:25:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 440, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "6419:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 431, - "name": "ApprovalPreSigned", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 744, - "src": "6346:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256,uint256)" - } - }, - "id": 441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6346:78:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 442, - "nodeType": "EmitStatement", - "src": "6341:83:0" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6441:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 348, - "id": 444, - "nodeType": "Return", - "src": "6434:11:0" - } - ] - }, - "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\n@notice fee will be given to sender if it's a smart contract make sure it can accept funds\n@param _signature bytes The signature, issued by the owner\n@param _spender address The address which will spend the funds.\n@param _subtractedValue uint256 The amount of tokens to decrease the allowance by.\n@param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n@param _nonce uint256 Presigned transaction number.", - "id": 446, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "decreaseAllowancePreSigned", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 345, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 336, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 446, - "src": "5422:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 335, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5422:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 338, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 446, - "src": "5448:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 337, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5448:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 340, - "name": "_subtractedValue", - "nodeType": "VariableDeclaration", - "scope": 446, - "src": "5474:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 339, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5474:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 342, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 446, - "src": "5508:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 341, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5508:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 344, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 446, - "src": "5530:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 343, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5530:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5412:138:0" - }, - "payable": false, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 347, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 446, - "src": "5583:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 346, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5583:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5582:6:0" - }, - "scope": 718, - "src": "5377:1075:0", - "stateMutability": "nonpayable", - "superFunction": 804, - "visibility": "public" - }, - { - "body": { - "id": 563, - "nodeType": "Block", - "src": "7273:768:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 464, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 452, - "src": "7291:3:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 466, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7306:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 465, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7298:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 467, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7298:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7291:17:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964205f746f2061646472657373", - "id": 469, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7309:21:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_aaddd998129bc39ca6dc602048c375b7109290ec7563369e9df91bb8161c9d33", - "typeString": "literal_string \"Invalid _to address\"" - }, - "value": "Invalid _to address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_aaddd998129bc39ca6dc602048c375b7109290ec7563369e9df91bb8161c9d33", - "typeString": "literal_string \"Invalid _to address\"" - } - ], - "id": 463, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "7283:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 470, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7283:48:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 471, - "nodeType": "ExpressionStatement", - "src": "7283:48:0" - }, - { - "assignments": [ - 473 - ], - "declarations": [ - { - "constant": false, - "id": 473, - "name": "hashedParams", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "7342:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 472, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7342:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 484, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 476, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "7402:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC865Token_$718", - "typeString": "contract ERC865Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC865Token_$718", - "typeString": "contract ERC865Token" - } - ], - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7394:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7394:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 478, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 450, - "src": "7409:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 479, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 452, - "src": "7416:3:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 480, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "7421:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 481, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 456, - "src": "7429:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 482, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 458, - "src": "7435:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 474, - "name": "getTransferFromPreSignedHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "7365:28:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,address,address,uint256,uint256,uint256) pure returns (bytes32)" - } - }, - "id": 483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7365:77:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7342:100:0" - }, - { - "assignments": [ - 486 - ], - "declarations": [ - { - "constant": false, - "id": 486, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "7453:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 485, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7453:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 489, - "name": "hashedParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 473, - "src": "7485:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 490, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 448, - "src": "7499:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 487, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7471:5:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$3461_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 3444, - "src": "7471:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7471:39:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7453:57:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 486, - "src": "7528:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7547:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 495, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7539:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7539:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7528:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964207370656e6465722061646472657373207265636f7665726564", - "id": 499, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7550:35:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_40fd40beb5edc995d47c412adaf53e604ceedb2a85a18389481b64c8c153112e", - "typeString": "literal_string \"Invalid spender address recovered\"" - }, - "value": "Invalid spender address recovered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_40fd40beb5edc995d47c412adaf53e604ceedb2a85a18389481b64c8c153112e", - "typeString": "literal_string \"Invalid spender address recovered\"" - } - ], - "id": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "7520:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 500, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7520:66:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 501, - "nodeType": "ExpressionStatement", - "src": "7520:66:0" - }, - { - "assignments": [ - 503 - ], - "declarations": [ - { - "constant": false, - "id": 503, - "name": "hashedTx", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "7596:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 502, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7596:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 511, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 507, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 486, - "src": "7642:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 508, - "name": "hashedParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 473, - "src": "7651:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 505, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "7625:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 506, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7625:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7625:39:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 504, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "7615:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7615:50:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7596:69:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 513, - "name": "hashedTxs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "7683:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 515, - "indexExpression": { - "argumentTypes": null, - "id": 514, - "name": "hashedTx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 503, - "src": "7693:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7683:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7706:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "7683:28:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5472616e73616374696f6e20686173682077617320616c72656164792075736564", - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7712:35:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_560ec6ef29f13441fd3828e9ccd389c24197530b6d027ca9ee3fd6449d37fdd8", - "typeString": "literal_string \"Transaction hash was already used\"" - }, - "value": "Transaction hash was already used" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_560ec6ef29f13441fd3828e9ccd389c24197530b6d027ca9ee3fd6449d37fdd8", - "typeString": "literal_string \"Transaction hash was already used\"" - } - ], - "id": 512, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "7675:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7675:73:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 520, - "nodeType": "ExpressionStatement", - "src": "7675:73:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 521, - "name": "hashedTxs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "7758:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 523, - "indexExpression": { - "argumentTypes": null, - "id": 522, - "name": "hashedTx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 503, - "src": "7768:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7758:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7780:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "7758:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 526, - "nodeType": "ExpressionStatement", - "src": "7758:26:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 528, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 450, - "src": "7804:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 529, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 452, - "src": "7811:3:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 530, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "7816:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 527, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "7794:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7794:29:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 532, - "nodeType": "ExpressionStatement", - "src": "7794:29:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 534, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 450, - "src": "7842:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 535, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 486, - "src": "7849:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 541, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "7888:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 537, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 450, - "src": "7868:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 538, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 486, - "src": "7875:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 536, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "7858:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view returns (uint256)" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7858:25:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3544, - "src": "7858:29:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7858:37:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 533, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3958, - "src": "7833:8:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7833:63:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 544, - "nodeType": "ExpressionStatement", - "src": "7833:63:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 546, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 486, - "src": "7916:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 547, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "7925:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7925:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 549, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 456, - "src": "7937:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 545, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "7906:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7906:36:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 551, - "nodeType": "ExpressionStatement", - "src": "7906:36:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 553, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 450, - "src": "7976:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 554, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 452, - "src": "7983:3:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "7988:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7988:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 557, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "8000:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 558, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 456, - "src": "8008:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 552, - "name": "TransferPreSigned", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 732, - "src": "7958:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256,uint256)" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7958:55:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "EmitStatement", - "src": "7953:60:0" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 561, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8030:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 462, - "id": 562, - "nodeType": "Return", - "src": "8023:11:0" - } - ] - }, - "documentation": "@dev Transfer tokens from one address to another\n@notice fee will be given to sender if it's a smart contract make sure it can accept funds\n@param _signature bytes The signature, issued by the spender.\n@param _from address The address which you want to send tokens from.\n@param _to address The address which you want to transfer to.\n@param _value uint256 The amount of tokens to be transferred.\n@param _fee uint256 The amount of tokens paid to msg.sender, by the spender.\n@param _nonce uint256 Presigned transaction number.", - "id": 564, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFromPreSigned", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 459, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 448, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "7094:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 447, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7094:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 450, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "7120:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 449, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7120:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 452, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "7143:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 451, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7143:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 454, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "7164:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 453, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7164:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 456, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "7188:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 455, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7188:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 458, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "7210:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 457, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7210:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7084:146:0" - }, - "payable": false, - "returnParameters": { - "id": 462, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 461, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "7263:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 460, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7263:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7262:6:0" - }, - "scope": 718, - "src": "7054:987:0", - "stateMutability": "nonpayable", - "superFunction": 821, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "8779:198:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783064393864636231", - "id": 583, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8922:10:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_228121777_by_1", - "typeString": "int_const 228121777" - }, - "value": "0x0d98dcb1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_228121777_by_1", - "typeString": "int_const 228121777" - } - ], - "id": 582, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8915:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 584, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8915:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 585, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 566, - "src": "8935:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 586, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 568, - "src": "8943:3:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 587, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 570, - "src": "8948:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 588, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 572, - "src": "8956:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 589, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 574, - "src": "8962:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 580, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "8898:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 581, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8898:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8898:71:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 579, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "8888:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8888:82:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 578, - "id": 592, - "nodeType": "Return", - "src": "8881:89:0" - } - ] - }, - "documentation": "@dev Hash (keccak256) of the payload used by transferPreSigned\n@notice fee will be given to sender if it's a smart contract make sure it can accept funds\n@param _token address The address of the token.\n@param _to address The address which you want to transfer to.\n@param _value uint256 The amount of tokens to be transferred.\n@param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n@param _nonce uint256 Presigned transaction number.", - "id": 594, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTransferPreSignedHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 575, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 566, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "8609:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8609:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 568, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "8633:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 567, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8633:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 570, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "8654:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 569, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8654:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 572, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "8678:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 571, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8678:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 574, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "8700:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 573, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8700:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8599:121:0" - }, - "payable": false, - "returnParameters": { - "id": 578, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 577, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "8766:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 576, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8766:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8765:9:0" - }, - "scope": 718, - "src": "8566:411:0", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 623, - "nodeType": "Block", - "src": "9709:202:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783739323530646366", - "id": 613, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9851:10:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2032471503_by_1", - "typeString": "int_const 2032471503" - }, - "value": "0x79250dcf" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_2032471503_by_1", - "typeString": "int_const 2032471503" - } - ], - "id": 612, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9844:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 614, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9844:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "9864:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 616, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "9872:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 617, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "9882:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 618, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 602, - "src": "9890:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 619, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 604, - "src": "9896:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 610, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "9827:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 611, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9827:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9827:76:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 609, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "9817:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9817:87:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 608, - "id": 622, - "nodeType": "Return", - "src": "9810:94:0" - } - ] - }, - "documentation": "@dev Hash (keccak256) of the payload used by approvePreSigned\n@notice fee will be given to sender if it's a smart contract make sure it can accept funds\n@param _token address The address of the token\n@param _spender address The address which will spend the funds.\n@param _value uint256 The amount of tokens to allow.\n@param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n@param _nonce uint256 Presigned transaction number.", - "id": 624, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getApprovePreSignedHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 605, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 624, - "src": "9534:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9534:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 624, - "src": "9558:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9558:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 624, - "src": "9584:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9584:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 602, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 624, - "src": "9608:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 601, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9608:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 604, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 624, - "src": "9630:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 603, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9630:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9524:126:0" - }, - "payable": false, - "returnParameters": { - "id": 608, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 607, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 624, - "src": "9696:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 606, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9696:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9695:9:0" - }, - "scope": 718, - "src": "9492:419:0", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 653, - "nodeType": "Block", - "src": "10693:217:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783133386538646131", - "id": 643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10845:10:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_328109473_by_1", - "typeString": "int_const 328109473" - }, - "value": "0x138e8da1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_328109473_by_1", - "typeString": "int_const 328109473" - } - ], - "id": 642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10838:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 644, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10838:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 645, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 626, - "src": "10858:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 646, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 628, - "src": "10866:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 647, - "name": "_addedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "10876:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 648, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 632, - "src": "10889:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10895:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 640, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "10821:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10821:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10821:81:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 639, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "10811:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10811:92:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 638, - "id": 652, - "nodeType": "Return", - "src": "10804:99:0" - } - ] - }, - "documentation": "@dev Hash (keccak256) of the payload used by increaseAllowancePreSigned\n@notice fee will be given to sender if it's a smart contract make sure it can accept funds\n@param _token address The address of the token\n@param _spender address The address which will spend the funds.\n@param _addedValue uint256 The amount of tokens to increase the allowance by.\n@param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n@param _nonce uint256 Presigned transaction number.", - "id": 654, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getIncreaseAllowancePreSignedHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 635, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 626, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 654, - "src": "10513:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 625, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10513:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 628, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 654, - "src": "10537:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 627, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10537:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 630, - "name": "_addedValue", - "nodeType": "VariableDeclaration", - "scope": 654, - "src": "10563:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 629, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10563:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 632, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 654, - "src": "10592:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 631, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10592:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 634, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 654, - "src": "10614:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 633, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10614:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10503:131:0" - }, - "payable": false, - "returnParameters": { - "id": 638, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 637, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 654, - "src": "10680:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 636, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10680:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10679:9:0" - }, - "scope": 718, - "src": "10461:449:0", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 683, - "nodeType": "Block", - "src": "11711:222:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783532323963353666", - "id": 673, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11863:10:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1378469231_by_1", - "typeString": "int_const 1378469231" - }, - "value": "0x5229c56f" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1378469231_by_1", - "typeString": "int_const 1378469231" - } - ], - "id": 672, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11856:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 674, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11856:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 675, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 656, - "src": "11876:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 676, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "11884:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 677, - "name": "_subtractedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 660, - "src": "11894:16:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 678, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 662, - "src": "11912:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 679, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 664, - "src": "11918:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 670, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "11839:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 671, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11839:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11839:86:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 669, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "11829:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11829:97:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 668, - "id": 682, - "nodeType": "Return", - "src": "11822:104:0" - } - ] - }, - "documentation": "@dev Hash (keccak256) of the payload used by decreaseAllowancePreSigned\n@notice fee will be given to sender if it's a smart contract make sure it can accept funds\n@param _token address The address of the token\n@param _spender address The address which will spend the funds.\n@param _subtractedValue uint256 The amount of tokens to decrease the allowance by.\n@param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n@param _nonce uint256 Presigned transaction number.", - "id": 684, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getDecreaseAllowancePreSignedHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 665, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 656, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "11526:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 655, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11526:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 658, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "11550:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 657, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11550:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 660, - "name": "_subtractedValue", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "11576:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 659, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11576:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 662, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "11610:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 661, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11610:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 664, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "11632:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 663, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11632:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11516:136:0" - }, - "payable": false, - "returnParameters": { - "id": 668, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 667, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "11698:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 666, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11698:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11697:9:0" - }, - "scope": 718, - "src": "11474:459:0", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 716, - "nodeType": "Block", - "src": "12778:217:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30786137306334316234", - "id": 705, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12933:10:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2802598324_by_1", - "typeString": "int_const 2802598324" - }, - "value": "0xa70c41b4" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_2802598324_by_1", - "typeString": "int_const 2802598324" - } - ], - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12926:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 706, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12926:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 707, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "12946:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 708, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "12954:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 709, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 690, - "src": "12961:3:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 710, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "12966:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 711, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 694, - "src": "12974:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 712, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 696, - "src": "12980:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 702, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "12909:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12909:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12909:78:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 701, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "12899:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12899:89:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 700, - "id": 715, - "nodeType": "Return", - "src": "12892:96:0" - } - ] - }, - "documentation": "@dev Hash (keccak256) of the payload used by transferFromPreSigned\n@notice fee will be given to sender if it's a smart contract make sure it can accept funds\n@param _token address The address of the token\n@param _from address The address which you want to send tokens from.\n@param _to address The address which you want to transfer to.\n@param _value uint256 The amount of tokens to be transferred.\n@param _fee uint256 The amount of tokens paid to msg.sender, by the spender.\n@param _nonce uint256 Presigned transaction number.", - "id": 717, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTransferFromPreSignedHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 697, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 717, - "src": "12585:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12585:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 717, - "src": "12609:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 687, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12609:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 690, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 717, - "src": "12632:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 689, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12632:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 692, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 717, - "src": "12653:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 691, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12653:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 694, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 717, - "src": "12677:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 693, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12677:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 696, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 717, - "src": "12699:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 695, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12699:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12575:144:0" - }, - "payable": false, - "returnParameters": { - "id": 700, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 699, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 717, - "src": "12765:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 698, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "12765:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12764:9:0" - }, - "scope": 718, - "src": "12538:457:0", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 719, - "src": "391:12606:0" - } - ], - "src": "0:12997:0" - }, - "legacyAST": { - "absolutePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/ERC865Token.sol", - "exportedSymbols": { - "ERC865Token": [ - 718 - ] - }, - "id": 719, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:0" - }, - { - "absolutePath": "zos-lib/contracts/Initializable.sol", - "file": "zos-lib/contracts/Initializable.sol", - "id": 2, - "nodeType": "ImportDirective", - "scope": 719, - "sourceUnit": 4184, - "src": "26:45:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", - "id": 3, - "nodeType": "ImportDirective", - "scope": 719, - "sourceUnit": 3992, - "src": "72:58:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-eth/contracts/cryptography/ECDSA.sol", - "file": "openzeppelin-eth/contracts/cryptography/ECDSA.sol", - "id": 5, - "nodeType": "ImportDirective", - "scope": 719, - "sourceUnit": 3462, - "src": "131:74:0", - "symbolAliases": [ - { - "foreign": 4, - "local": null - } - ], - "unitAlias": "" - }, - { - "absolutePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/IERC865.sol", - "file": "./IERC865.sol", - "id": 6, - "nodeType": "ImportDirective", - "scope": 719, - "sourceUnit": 823, - "src": "206:23:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 7, - "name": "Initializable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4183, - "src": "415:13:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Initializable_$4183", - "typeString": "contract Initializable" - } - }, - "id": 8, - "nodeType": "InheritanceSpecifier", - "src": "415:13:0" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 9, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3991, - "src": "430:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$3991", - "typeString": "contract ERC20" - } - }, - "id": 10, - "nodeType": "InheritanceSpecifier", - "src": "430:5:0" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 11, - "name": "IERC865", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 822, - "src": "437:7:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC865_$822", - "typeString": "contract IERC865" - } - }, - "id": 12, - "nodeType": "InheritanceSpecifier", - "src": "437:7:0" - } - ], - "contractDependencies": [ - 822, - 3991, - 4127, - 4183 - ], - "contractKind": "contract", - "documentation": "@title ERC865Token Token\n * ERC865Token allows users paying transfers in tokens instead of gas\nhttps://github.com/ethereum/EIPs/issues/865\n ", - "fullyImplemented": true, - "id": 718, - "linearizedBaseContracts": [ - 718, - 822, - 3991, - 4127, - 4183 - ], - "name": "ERC865Token", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 16, - "name": "hashedTxs", - "nodeType": "VariableDeclaration", - "scope": 718, - "src": "495:34:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 15, - "keyType": { - "id": 13, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "503:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "495:24:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 14, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "514:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 118, - "nodeType": "Block", - "src": "1227:668:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 36, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 32, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20, - "src": "1245:3:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 34, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1260:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 33, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1252:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 35, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1252:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1245:17:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964205f746f2061646472657373", - "id": 37, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1264:21:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_aaddd998129bc39ca6dc602048c375b7109290ec7563369e9df91bb8161c9d33", - "typeString": "literal_string \"Invalid _to address\"" - }, - "value": "Invalid _to address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_aaddd998129bc39ca6dc602048c375b7109290ec7563369e9df91bb8161c9d33", - "typeString": "literal_string \"Invalid _to address\"" - } - ], - "id": 31, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "1237:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 38, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1237:49:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 39, - "nodeType": "ExpressionStatement", - "src": "1237:49:0" - }, - { - "assignments": [ - 41 - ], - "declarations": [ - { - "constant": false, - "id": 41, - "name": "hashedParams", - "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1297:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 40, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1297:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 51, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 44, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "1353:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC865Token_$718", - "typeString": "contract ERC865Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC865Token_$718", - "typeString": "contract ERC865Token" - } - ], - "id": 43, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1345:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 45, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1345:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 46, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20, - "src": "1360:3:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 47, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22, - "src": "1365:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 48, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "1373:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 49, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 26, - "src": "1379:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 42, - "name": "getTransferPreSignedHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 594, - "src": "1320:24:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,address,uint256,uint256,uint256) pure returns (bytes32)" - } - }, - "id": 50, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1320:66:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1297:89:0" - }, - { - "assignments": [ - 53 - ], - "declarations": [ - { - "constant": false, - "id": 53, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1396:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 52, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1396:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 59, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 56, - "name": "hashedParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "1425:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 57, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18, - "src": "1439:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 54, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "1411:5:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$3461_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 55, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 3444, - "src": "1411:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 58, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1411:39:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1396:54:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 65, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 61, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "1468:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 63, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1484:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 62, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1476:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 64, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1476:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1468:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c69642066726f6d2061646472657373207265636f7665726564", - "id": 66, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1488:32:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9511c22d1eaecede4ce0a9e5c0777e39b425a0a18d9129795c6ab245da55d151", - "typeString": "literal_string \"Invalid from address recovered\"" - }, - "value": "Invalid from address recovered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9511c22d1eaecede4ce0a9e5c0777e39b425a0a18d9129795c6ab245da55d151", - "typeString": "literal_string \"Invalid from address recovered\"" - } - ], - "id": 60, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "1460:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 67, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1460:61:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 68, - "nodeType": "ExpressionStatement", - "src": "1460:61:0" - }, - { - "assignments": [ - 70 - ], - "declarations": [ - { - "constant": false, - "id": 70, - "name": "hashedTx", - "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1531:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 69, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1531:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 78, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 74, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "1577:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 75, - "name": "hashedParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "1583:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 72, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "1560:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 73, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1560:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 76, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1560:36:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 71, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "1550:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 77, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1550:47:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1531:66:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 84, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 80, - "name": "hashedTxs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "1615:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 82, - "indexExpression": { - "argumentTypes": null, - "id": 81, - "name": "hashedTx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 70, - "src": "1625:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1615:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 83, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1638:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "1615:28:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5472616e73616374696f6e20686173682077617320616c72656164792075736564", - "id": 85, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1644:35:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_560ec6ef29f13441fd3828e9ccd389c24197530b6d027ca9ee3fd6449d37fdd8", - "typeString": "literal_string \"Transaction hash was already used\"" - }, - "value": "Transaction hash was already used" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_560ec6ef29f13441fd3828e9ccd389c24197530b6d027ca9ee3fd6449d37fdd8", - "typeString": "literal_string \"Transaction hash was already used\"" - } - ], - "id": 79, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "1607:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 86, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1607:73:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 87, - "nodeType": "ExpressionStatement", - "src": "1607:73:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 92, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 88, - "name": "hashedTxs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "1690:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 90, - "indexExpression": { - "argumentTypes": null, - "id": 89, - "name": "hashedTx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 70, - "src": "1700:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1690:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 91, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1712:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "1690:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 93, - "nodeType": "ExpressionStatement", - "src": "1690:26:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 95, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "1736:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 96, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20, - "src": "1742:3:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 97, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22, - "src": "1747:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 94, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "1726:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 98, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1726:28:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 99, - "nodeType": "ExpressionStatement", - "src": "1726:28:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 101, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "1774:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 102, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "1780: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": "1780:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 104, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "1792:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 100, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "1764:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1764:33:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 106, - "nodeType": "ExpressionStatement", - "src": "1764:33:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 108, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "1831:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 109, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20, - "src": "1837:3:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 110, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "1842:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1842:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 112, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22, - "src": "1854:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 113, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "1862:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 107, - "name": "TransferPreSigned", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 732, - "src": "1813:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256,uint256)" - } - }, - "id": 114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1813:54:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 115, - "nodeType": "EmitStatement", - "src": "1808:59:0" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 116, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1884:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 30, - "id": 117, - "nodeType": "Return", - "src": "1877:11:0" - } - ] - }, - "documentation": "@dev Submit a presigned transfer\n@notice fee will be given to sender if it's a smart contract make sure it can accept funds\n@param _signature bytes The signature, issued by the owner.\n@param _to address The address which you want to transfer to.\n@param _value uint256 The amount of tokens to be transferred.\n@param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n@param _nonce uint256 Presigned transaction number.", - "id": 119, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferPreSigned", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 27, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 18, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1071:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 17, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1071:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 20, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1097:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 19, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1097:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 22, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1118:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1118:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 24, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1142:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 23, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1142:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 26, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1164:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 25, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1164:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1061:123:0" - }, - "payable": false, - "returnParameters": { - "id": 30, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 29, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 119, - "src": "1217:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 28, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1217:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1216:6:0" - }, - "scope": 718, - "src": "1035:860:0", - "stateMutability": "nonpayable", - "superFunction": 759, - "visibility": "public" - }, - { - "body": { - "id": 221, - "nodeType": "Block", - "src": "2590:689:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 135, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "2608:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2628:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 136, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2620:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2620:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2608:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964205f7370656e6465722061646472657373", - "id": 140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2631:26:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_42fe7f86ff346da536060619c7d4746ff90e08ddf018075cae110880b4ba9b81", - "typeString": "literal_string \"Invalid _spender address\"" - }, - "value": "Invalid _spender address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_42fe7f86ff346da536060619c7d4746ff90e08ddf018075cae110880b4ba9b81", - "typeString": "literal_string \"Invalid _spender address\"" - } - ], - "id": 134, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "2600:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2600:58:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 142, - "nodeType": "ExpressionStatement", - "src": "2600:58:0" - }, - { - "assignments": [ - 144 - ], - "declarations": [ - { - "constant": false, - "id": 144, - "name": "hashedParams", - "nodeType": "VariableDeclaration", - "scope": 222, - "src": "2669:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 143, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2669:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 154, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 147, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "2724:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC865Token_$718", - "typeString": "contract ERC865Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC865Token_$718", - "typeString": "contract ERC865Token" - } - ], - "id": 146, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2716:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2716:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 149, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "2731:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 150, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 125, - "src": "2741:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 151, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "2749:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 152, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 129, - "src": "2755:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 145, - "name": "getApprovePreSignedHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 624, - "src": "2692:23:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,address,uint256,uint256,uint256) pure returns (bytes32)" - } - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2692:70:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2669:93:0" - }, - { - "assignments": [ - 156 - ], - "declarations": [ - { - "constant": false, - "id": 156, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 222, - "src": "2772:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 155, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2772:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 162, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 159, - "name": "hashedParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "2801:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 160, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121, - "src": "2815:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 157, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "2787:5:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$3461_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 3444, - "src": "2787:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2787:39:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2772:54:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 164, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 156, - "src": "2844:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 166, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2860:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 165, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2852:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 167, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2852:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2844:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c69642066726f6d2061646472657373207265636f7665726564", - "id": 169, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2863:32:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9511c22d1eaecede4ce0a9e5c0777e39b425a0a18d9129795c6ab245da55d151", - "typeString": "literal_string \"Invalid from address recovered\"" - }, - "value": "Invalid from address recovered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9511c22d1eaecede4ce0a9e5c0777e39b425a0a18d9129795c6ab245da55d151", - "typeString": "literal_string \"Invalid from address recovered\"" - } - ], - "id": 163, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "2836:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2836:60:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 171, - "nodeType": "ExpressionStatement", - "src": "2836:60:0" - }, - { - "assignments": [ - 173 - ], - "declarations": [ - { - "constant": false, - "id": 173, - "name": "hashedTx", - "nodeType": "VariableDeclaration", - "scope": 222, - "src": "2906:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 172, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2906:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 181, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 177, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 156, - "src": "2952:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 178, - "name": "hashedParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "2958:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 175, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "2935:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 176, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2935:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2935:36:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 174, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "2925:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2925:47:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2906:66:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 183, - "name": "hashedTxs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "2990:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 185, - "indexExpression": { - "argumentTypes": null, - "id": 184, - "name": "hashedTx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 173, - "src": "3000:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2990:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 186, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3013:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "2990:28:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5472616e73616374696f6e20686173682077617320616c72656164792075736564", - "id": 188, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3019:35:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_560ec6ef29f13441fd3828e9ccd389c24197530b6d027ca9ee3fd6449d37fdd8", - "typeString": "literal_string \"Transaction hash was already used\"" - }, - "value": "Transaction hash was already used" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_560ec6ef29f13441fd3828e9ccd389c24197530b6d027ca9ee3fd6449d37fdd8", - "typeString": "literal_string \"Transaction hash was already used\"" - } - ], - "id": 182, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "2982:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2982:73:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 190, - "nodeType": "ExpressionStatement", - "src": "2982:73:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 191, - "name": "hashedTxs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "3065:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 193, - "indexExpression": { - "argumentTypes": null, - "id": 192, - "name": "hashedTx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 173, - "src": "3075:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3065:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 194, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3087:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "3065:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 196, - "nodeType": "ExpressionStatement", - "src": "3065:26:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 198, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 156, - "src": "3110:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 199, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "3116:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 200, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 125, - "src": "3126:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 197, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3958, - "src": "3101:8:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3101:32:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 202, - "nodeType": "ExpressionStatement", - "src": "3101:32:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 204, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 156, - "src": "3153:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 205, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "3159:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3159:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 207, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "3171:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 203, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "3143:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3143:33:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 209, - "nodeType": "ExpressionStatement", - "src": "3143:33:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 211, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 156, - "src": "3210:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 212, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "3216:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 213, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "3226:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3226:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 215, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 125, - "src": "3238:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 216, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "3246:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 210, - "name": "ApprovalPreSigned", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 744, - "src": "3192:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256,uint256)" - } - }, - "id": 217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3192:59:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 218, - "nodeType": "EmitStatement", - "src": "3187:64:0" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3268:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 133, - "id": 220, - "nodeType": "Return", - "src": "3261:11:0" - } - ] - }, - "documentation": "@dev Submit a presigned approval\n@notice fee will be given to sender if it's a smart contract make sure it can accept funds\n@param _signature bytes The signature, issued by the owner.\n@param _spender address The address which will spend the funds.\n@param _value uint256 The amount of tokens to allow.\n@param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n@param _nonce uint256 Presigned transaction number.", - "id": 222, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approvePreSigned", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 121, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 222, - "src": "2429:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 120, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2429:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 123, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 222, - "src": "2455:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 122, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2455:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 125, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 222, - "src": "2481:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 124, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2481:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 127, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 222, - "src": "2505:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 126, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2505:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 129, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 222, - "src": "2527:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 128, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2527:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2419:128:0" - }, - "payable": false, - "returnParameters": { - "id": 133, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 132, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 222, - "src": "2580:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 131, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2580:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2579:6:0" - }, - "scope": 718, - "src": "2394:885:0", - "stateMutability": "nonpayable", - "superFunction": 774, - "visibility": "public" - }, - { - "body": { - "id": 333, - "nodeType": "Block", - "src": "4052:759:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 238, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "4070:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 240, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4090:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4082:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 241, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4082:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4070:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964205f7370656e6465722061646472657373", - "id": 243, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4093:26:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_42fe7f86ff346da536060619c7d4746ff90e08ddf018075cae110880b4ba9b81", - "typeString": "literal_string \"Invalid _spender address\"" - }, - "value": "Invalid _spender address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_42fe7f86ff346da536060619c7d4746ff90e08ddf018075cae110880b4ba9b81", - "typeString": "literal_string \"Invalid _spender address\"" - } - ], - "id": 237, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "4062:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4062:58:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 245, - "nodeType": "ExpressionStatement", - "src": "4062:58:0" - }, - { - "assignments": [ - 247 - ], - "declarations": [ - { - "constant": false, - "id": 247, - "name": "hashedParams", - "nodeType": "VariableDeclaration", - "scope": 334, - "src": "4131:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 246, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4131:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 257, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 250, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "4196:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC865Token_$718", - "typeString": "contract ERC865Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC865Token_$718", - "typeString": "contract ERC865Token" - } - ], - "id": 249, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4188:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4188:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 252, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "4203:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 253, - "name": "_addedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "4213:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 254, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "4226:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 255, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 232, - "src": "4232:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 248, - "name": "getIncreaseAllowancePreSignedHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 654, - "src": "4154:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,address,uint256,uint256,uint256) pure returns (bytes32)" - } - }, - "id": 256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4154:85:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4131:108:0" - }, - { - "assignments": [ - 259 - ], - "declarations": [ - { - "constant": false, - "id": 259, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 334, - "src": "4249:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 258, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4249:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 265, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 262, - "name": "hashedParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 247, - "src": "4278:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 263, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 224, - "src": "4292:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 260, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "4264:5:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$3461_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 3444, - "src": "4264:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4264:39:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4249:54:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 267, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "4321:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4337:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 268, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4329:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 270, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4329:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4321:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c69642066726f6d2061646472657373207265636f7665726564", - "id": 272, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4340:32:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9511c22d1eaecede4ce0a9e5c0777e39b425a0a18d9129795c6ab245da55d151", - "typeString": "literal_string \"Invalid from address recovered\"" - }, - "value": "Invalid from address recovered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9511c22d1eaecede4ce0a9e5c0777e39b425a0a18d9129795c6ab245da55d151", - "typeString": "literal_string \"Invalid from address recovered\"" - } - ], - "id": 266, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "4313:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4313:60:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 274, - "nodeType": "ExpressionStatement", - "src": "4313:60:0" - }, - { - "assignments": [ - 276 - ], - "declarations": [ - { - "constant": false, - "id": 276, - "name": "hashedTx", - "nodeType": "VariableDeclaration", - "scope": 334, - "src": "4383:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 275, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4383:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 284, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 280, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "4429:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 281, - "name": "hashedParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 247, - "src": "4435:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 278, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "4412:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 279, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4412:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4412:36:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 277, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "4402:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4402:47:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4383:66:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 286, - "name": "hashedTxs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "4467:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 288, - "indexExpression": { - "argumentTypes": null, - "id": 287, - "name": "hashedTx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 276, - "src": "4477:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4467:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 289, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4490:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "4467:28:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5472616e73616374696f6e20686173682077617320616c72656164792075736564", - "id": 291, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4496:35:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_560ec6ef29f13441fd3828e9ccd389c24197530b6d027ca9ee3fd6449d37fdd8", - "typeString": "literal_string \"Transaction hash was already used\"" - }, - "value": "Transaction hash was already used" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_560ec6ef29f13441fd3828e9ccd389c24197530b6d027ca9ee3fd6449d37fdd8", - "typeString": "literal_string \"Transaction hash was already used\"" - } - ], - "id": 285, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "4459:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4459:73:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 293, - "nodeType": "ExpressionStatement", - "src": "4459:73:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 294, - "name": "hashedTxs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "4542:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 296, - "indexExpression": { - "argumentTypes": null, - "id": 295, - "name": "hashedTx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 276, - "src": "4552:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4542:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4564:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4542:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 299, - "nodeType": "ExpressionStatement", - "src": "4542:26:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 301, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "4587:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 302, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "4593:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 308, - "name": "_addedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "4633:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 304, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "4613:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 305, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "4619:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 303, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "4603:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view returns (uint256)" - } - }, - "id": 306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4603:25:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 307, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3568, - "src": "4603:29:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4603:42:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 300, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3958, - "src": "4578:8:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4578:68:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 311, - "nodeType": "ExpressionStatement", - "src": "4578:68:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 313, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "4666:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 314, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "4672:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4672:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 316, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "4684:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 312, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "4656:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4656:33:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 318, - "nodeType": "ExpressionStatement", - "src": "4656:33:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 320, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "4723:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 321, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "4729:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 322, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "4739:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4739:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 325, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 259, - "src": "4761:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 326, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "4767:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 324, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "4751:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view returns (uint256)" - } - }, - "id": 327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4751:25:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 328, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "4778:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 319, - "name": "ApprovalPreSigned", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 744, - "src": "4705:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256,uint256)" - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4705:78:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 330, - "nodeType": "EmitStatement", - "src": "4700:83:0" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 331, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4800:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 236, - "id": 332, - "nodeType": "Return", - "src": "4793:11:0" - } - ] - }, - "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\n@notice fee will be given to sender if it's a smart contract make sure it can accept funds\n@param _signature bytes The signature, issued by the owner.\n@param _spender address The address which will spend the funds.\n@param _addedValue uint256 The amount of tokens to increase the allowance by.\n@param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n@param _nonce uint256 Presigned transaction number.", - "id": 334, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "increaseAllowancePreSigned", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 233, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 224, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 334, - "src": "3886:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 223, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3886:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 226, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 334, - "src": "3912:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 225, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3912:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "_addedValue", - "nodeType": "VariableDeclaration", - "scope": 334, - "src": "3938:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3938:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 230, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 334, - "src": "3967:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 229, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3967:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 232, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 334, - "src": "3989:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 231, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3989:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3876:133:0" - }, - "payable": false, - "returnParameters": { - "id": 236, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 235, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 334, - "src": "4042:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 234, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4042:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4041:6:0" - }, - "scope": 718, - "src": "3841:970:0", - "stateMutability": "nonpayable", - "superFunction": 789, - "visibility": "public" - }, - { - "body": { - "id": 445, - "nodeType": "Block", - "src": "5593:859:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 350, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 338, - "src": "5611:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 352, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5631:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 351, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5623:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5623:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5611:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964205f7370656e6465722061646472657373", - "id": 355, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5634:26:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_42fe7f86ff346da536060619c7d4746ff90e08ddf018075cae110880b4ba9b81", - "typeString": "literal_string \"Invalid _spender address\"" - }, - "value": "Invalid _spender address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_42fe7f86ff346da536060619c7d4746ff90e08ddf018075cae110880b4ba9b81", - "typeString": "literal_string \"Invalid _spender address\"" - } - ], - "id": 349, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "5603:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 356, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5603:58:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 357, - "nodeType": "ExpressionStatement", - "src": "5603:58:0" - }, - { - "assignments": [ - 359 - ], - "declarations": [ - { - "constant": false, - "id": 359, - "name": "hashedParams", - "nodeType": "VariableDeclaration", - "scope": 446, - "src": "5672:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 358, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5672:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 369, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 362, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "5737:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC865Token_$718", - "typeString": "contract ERC865Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC865Token_$718", - "typeString": "contract ERC865Token" - } - ], - "id": 361, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5729:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 363, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5729:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 364, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 338, - "src": "5744:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 365, - "name": "_subtractedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 340, - "src": "5754:16:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 366, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "5772:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 367, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 344, - "src": "5778:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 360, - "name": "getDecreaseAllowancePreSignedHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "5695:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,address,uint256,uint256,uint256) pure returns (bytes32)" - } - }, - "id": 368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5695:90:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5672:113:0" - }, - { - "assignments": [ - 371 - ], - "declarations": [ - { - "constant": false, - "id": 371, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 446, - "src": "5795:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 370, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5795:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 377, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 374, - "name": "hashedParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 359, - "src": "5824:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 375, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 336, - "src": "5838:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 372, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "5810:5:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$3461_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 3444, - "src": "5810:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5810:39:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5795:54:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 379, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "5867:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5883:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5875:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5875:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5867:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c69642066726f6d2061646472657373207265636f7665726564", - "id": 384, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5886:32:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9511c22d1eaecede4ce0a9e5c0777e39b425a0a18d9129795c6ab245da55d151", - "typeString": "literal_string \"Invalid from address recovered\"" - }, - "value": "Invalid from address recovered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9511c22d1eaecede4ce0a9e5c0777e39b425a0a18d9129795c6ab245da55d151", - "typeString": "literal_string \"Invalid from address recovered\"" - } - ], - "id": 378, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "5859:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5859:60:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 386, - "nodeType": "ExpressionStatement", - "src": "5859:60:0" - }, - { - "assignments": [ - 388 - ], - "declarations": [ - { - "constant": false, - "id": 388, - "name": "hashedTx", - "nodeType": "VariableDeclaration", - "scope": 446, - "src": "5929:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 387, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5929:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 396, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 392, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "5975:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 393, - "name": "hashedParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 359, - "src": "5981:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 390, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "5958:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 391, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5958:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5958:36:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 389, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "5948:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 395, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5948:47:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5929:66:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 398, - "name": "hashedTxs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "6013:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 400, - "indexExpression": { - "argumentTypes": null, - "id": 399, - "name": "hashedTx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 388, - "src": "6023:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6013:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 401, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6036:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "6013:28:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5472616e73616374696f6e20686173682077617320616c72656164792075736564", - "id": 403, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6042:35:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_560ec6ef29f13441fd3828e9ccd389c24197530b6d027ca9ee3fd6449d37fdd8", - "typeString": "literal_string \"Transaction hash was already used\"" - }, - "value": "Transaction hash was already used" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_560ec6ef29f13441fd3828e9ccd389c24197530b6d027ca9ee3fd6449d37fdd8", - "typeString": "literal_string \"Transaction hash was already used\"" - } - ], - "id": 397, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "6005:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6005:73:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 405, - "nodeType": "ExpressionStatement", - "src": "6005:73:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 406, - "name": "hashedTxs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "6179:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 408, - "indexExpression": { - "argumentTypes": null, - "id": 407, - "name": "hashedTx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 388, - "src": "6189:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6179:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 409, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6201:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "6179:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 411, - "nodeType": "ExpressionStatement", - "src": "6179:26:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 413, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "6224:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 414, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 338, - "src": "6230:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 420, - "name": "_subtractedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 340, - "src": "6269:16:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 416, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "6250:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 417, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 338, - "src": "6255:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 415, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "6240:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view returns (uint256)" - } - }, - "id": 418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6240:24:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3544, - "src": "6240:28:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6240:46:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 412, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3958, - "src": "6215:8:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6215:72:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 423, - "nodeType": "ExpressionStatement", - "src": "6215:72:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 425, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "6307:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 426, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "6313:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 427, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6313:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 428, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "6325:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 424, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "6297:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6297:33:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 430, - "nodeType": "ExpressionStatement", - "src": "6297:33:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 432, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "6364:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 433, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 338, - "src": "6370:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 434, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "6380:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6380:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 437, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "6402:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 438, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 338, - "src": "6408:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 436, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "6392:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view returns (uint256)" - } - }, - "id": 439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6392:25:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 440, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "6419:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 431, - "name": "ApprovalPreSigned", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 744, - "src": "6346:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256,uint256)" - } - }, - "id": 441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6346:78:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 442, - "nodeType": "EmitStatement", - "src": "6341:83:0" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6441:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 348, - "id": 444, - "nodeType": "Return", - "src": "6434:11:0" - } - ] - }, - "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\n@notice fee will be given to sender if it's a smart contract make sure it can accept funds\n@param _signature bytes The signature, issued by the owner\n@param _spender address The address which will spend the funds.\n@param _subtractedValue uint256 The amount of tokens to decrease the allowance by.\n@param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n@param _nonce uint256 Presigned transaction number.", - "id": 446, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "decreaseAllowancePreSigned", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 345, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 336, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 446, - "src": "5422:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 335, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5422:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 338, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 446, - "src": "5448:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 337, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5448:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 340, - "name": "_subtractedValue", - "nodeType": "VariableDeclaration", - "scope": 446, - "src": "5474:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 339, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5474:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 342, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 446, - "src": "5508:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 341, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5508:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 344, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 446, - "src": "5530:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 343, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5530:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5412:138:0" - }, - "payable": false, - "returnParameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 347, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 446, - "src": "5583:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 346, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5583:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5582:6:0" - }, - "scope": 718, - "src": "5377:1075:0", - "stateMutability": "nonpayable", - "superFunction": 804, - "visibility": "public" - }, - { - "body": { - "id": 563, - "nodeType": "Block", - "src": "7273:768:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 464, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 452, - "src": "7291:3:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 466, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7306:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 465, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7298:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 467, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7298:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7291:17:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964205f746f2061646472657373", - "id": 469, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7309:21:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_aaddd998129bc39ca6dc602048c375b7109290ec7563369e9df91bb8161c9d33", - "typeString": "literal_string \"Invalid _to address\"" - }, - "value": "Invalid _to address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_aaddd998129bc39ca6dc602048c375b7109290ec7563369e9df91bb8161c9d33", - "typeString": "literal_string \"Invalid _to address\"" - } - ], - "id": 463, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "7283:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 470, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7283:48:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 471, - "nodeType": "ExpressionStatement", - "src": "7283:48:0" - }, - { - "assignments": [ - 473 - ], - "declarations": [ - { - "constant": false, - "id": 473, - "name": "hashedParams", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "7342:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 472, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7342:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 484, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 476, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "7402:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC865Token_$718", - "typeString": "contract ERC865Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC865Token_$718", - "typeString": "contract ERC865Token" - } - ], - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7394:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7394:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 478, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 450, - "src": "7409:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 479, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 452, - "src": "7416:3:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 480, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "7421:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 481, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 456, - "src": "7429:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 482, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 458, - "src": "7435:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 474, - "name": "getTransferFromPreSignedHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "7365:28:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,address,address,uint256,uint256,uint256) pure returns (bytes32)" - } - }, - "id": 483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7365:77:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7342:100:0" - }, - { - "assignments": [ - 486 - ], - "declarations": [ - { - "constant": false, - "id": 486, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "7453:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 485, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7453:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 492, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 489, - "name": "hashedParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 473, - "src": "7485:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 490, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 448, - "src": "7499:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 487, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "7471:5:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$3461_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 3444, - "src": "7471:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7471:39:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7453:57:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 494, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 486, - "src": "7528:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7547:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 495, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7539:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7539:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7528:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964207370656e6465722061646472657373207265636f7665726564", - "id": 499, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7550:35:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_40fd40beb5edc995d47c412adaf53e604ceedb2a85a18389481b64c8c153112e", - "typeString": "literal_string \"Invalid spender address recovered\"" - }, - "value": "Invalid spender address recovered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_40fd40beb5edc995d47c412adaf53e604ceedb2a85a18389481b64c8c153112e", - "typeString": "literal_string \"Invalid spender address recovered\"" - } - ], - "id": 493, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "7520:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 500, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7520:66:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 501, - "nodeType": "ExpressionStatement", - "src": "7520:66:0" - }, - { - "assignments": [ - 503 - ], - "declarations": [ - { - "constant": false, - "id": 503, - "name": "hashedTx", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "7596:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 502, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7596:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 511, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 507, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 486, - "src": "7642:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 508, - "name": "hashedParams", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 473, - "src": "7651:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 505, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "7625:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 506, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7625:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7625:39:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 504, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "7615:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7615:50:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7596:69:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 513, - "name": "hashedTxs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "7683:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 515, - "indexExpression": { - "argumentTypes": null, - "id": 514, - "name": "hashedTx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 503, - "src": "7693:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7683:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7706:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "7683:28:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5472616e73616374696f6e20686173682077617320616c72656164792075736564", - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7712:35:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_560ec6ef29f13441fd3828e9ccd389c24197530b6d027ca9ee3fd6449d37fdd8", - "typeString": "literal_string \"Transaction hash was already used\"" - }, - "value": "Transaction hash was already used" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_560ec6ef29f13441fd3828e9ccd389c24197530b6d027ca9ee3fd6449d37fdd8", - "typeString": "literal_string \"Transaction hash was already used\"" - } - ], - "id": 512, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "7675:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7675:73:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 520, - "nodeType": "ExpressionStatement", - "src": "7675:73:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 521, - "name": "hashedTxs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "7758:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 523, - "indexExpression": { - "argumentTypes": null, - "id": 522, - "name": "hashedTx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 503, - "src": "7768:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7758:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7780:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "7758:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 526, - "nodeType": "ExpressionStatement", - "src": "7758:26:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 528, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 450, - "src": "7804:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 529, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 452, - "src": "7811:3:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 530, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "7816:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 527, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "7794:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7794:29:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 532, - "nodeType": "ExpressionStatement", - "src": "7794:29:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 534, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 450, - "src": "7842:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 535, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 486, - "src": "7849:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 541, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "7888:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 537, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 450, - "src": "7868:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 538, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 486, - "src": "7875:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 536, - "name": "allowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "7858:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view returns (uint256)" - } - }, - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7858:25:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3544, - "src": "7858:29:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7858:37:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 533, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3958, - "src": "7833:8:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7833:63:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 544, - "nodeType": "ExpressionStatement", - "src": "7833:63:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 546, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 486, - "src": "7916:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 547, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "7925:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7925:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 549, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 456, - "src": "7937:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 545, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "7906:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7906:36:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 551, - "nodeType": "ExpressionStatement", - "src": "7906:36:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 553, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 450, - "src": "7976:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 554, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 452, - "src": "7983:3:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 555, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "7988:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7988:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 557, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 454, - "src": "8000:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 558, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 456, - "src": "8008:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 552, - "name": "TransferPreSigned", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 732, - "src": "7958:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,address,uint256,uint256)" - } - }, - "id": 559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7958:55:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 560, - "nodeType": "EmitStatement", - "src": "7953:60:0" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 561, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8030:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 462, - "id": 562, - "nodeType": "Return", - "src": "8023:11:0" - } - ] - }, - "documentation": "@dev Transfer tokens from one address to another\n@notice fee will be given to sender if it's a smart contract make sure it can accept funds\n@param _signature bytes The signature, issued by the spender.\n@param _from address The address which you want to send tokens from.\n@param _to address The address which you want to transfer to.\n@param _value uint256 The amount of tokens to be transferred.\n@param _fee uint256 The amount of tokens paid to msg.sender, by the spender.\n@param _nonce uint256 Presigned transaction number.", - "id": 564, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFromPreSigned", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 459, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 448, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "7094:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 447, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7094:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 450, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "7120:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 449, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7120:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 452, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "7143:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 451, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7143:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 454, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "7164:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 453, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7164:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 456, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "7188:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 455, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7188:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 458, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "7210:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 457, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7210:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7084:146:0" - }, - "payable": false, - "returnParameters": { - "id": 462, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 461, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "7263:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 460, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7263:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7262:6:0" - }, - "scope": 718, - "src": "7054:987:0", - "stateMutability": "nonpayable", - "superFunction": 821, - "visibility": "public" - }, - { - "body": { - "id": 593, - "nodeType": "Block", - "src": "8779:198:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783064393864636231", - "id": 583, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8922:10:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_228121777_by_1", - "typeString": "int_const 228121777" - }, - "value": "0x0d98dcb1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_228121777_by_1", - "typeString": "int_const 228121777" - } - ], - "id": 582, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8915:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 584, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8915:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 585, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 566, - "src": "8935:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 586, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 568, - "src": "8943:3:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 587, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 570, - "src": "8948:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 588, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 572, - "src": "8956:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 589, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 574, - "src": "8962:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 580, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "8898:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 581, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8898:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8898:71:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 579, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "8888:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8888:82:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 578, - "id": 592, - "nodeType": "Return", - "src": "8881:89:0" - } - ] - }, - "documentation": "@dev Hash (keccak256) of the payload used by transferPreSigned\n@notice fee will be given to sender if it's a smart contract make sure it can accept funds\n@param _token address The address of the token.\n@param _to address The address which you want to transfer to.\n@param _value uint256 The amount of tokens to be transferred.\n@param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n@param _nonce uint256 Presigned transaction number.", - "id": 594, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTransferPreSignedHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 575, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 566, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "8609:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8609:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 568, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "8633:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 567, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8633:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 570, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "8654:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 569, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8654:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 572, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "8678:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 571, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8678:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 574, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "8700:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 573, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8700:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8599:121:0" - }, - "payable": false, - "returnParameters": { - "id": 578, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 577, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 594, - "src": "8766:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 576, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8766:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8765:9:0" - }, - "scope": 718, - "src": "8566:411:0", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, + "id": 6, + "name": "ImportDirective", + "src": "296:23:0" + }, + { + "attributes": { + "contractDependencies": [ + 20, + 1178, + 1314, + 1432 + ], + "contractKind": "contract", + "documentation": "@title ERC865Token Token\n * ERC865Token allows users paying transfers in tokens instead of gas\nhttps://github.com/ethereum/EIPs/issues/865\n ", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 17, + 20, + 1178, + 1314, + 1432 + ], + "name": "ERC865Token", + "scope": 18 + }, + "children": [ { - "body": { - "id": 623, - "nodeType": "Block", - "src": "9709:202:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783739323530646366", - "id": 613, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9851:10:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2032471503_by_1", - "typeString": "int_const 2032471503" - }, - "value": "0x79250dcf" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_2032471503_by_1", - "typeString": "int_const 2032471503" - } - ], - "id": 612, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9844:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 614, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9844:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 615, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "9864:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 616, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "9872:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 617, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "9882:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 618, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 602, - "src": "9890:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 619, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 604, - "src": "9896:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 610, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "9827:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 611, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9827:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9827:76:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 609, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "9817:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9817:87:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 608, - "id": 622, - "nodeType": "Return", - "src": "9810:94:0" - } - ] - }, - "documentation": "@dev Hash (keccak256) of the payload used by approvePreSigned\n@notice fee will be given to sender if it's a smart contract make sure it can accept funds\n@param _token address The address of the token\n@param _spender address The address which will spend the funds.\n@param _value uint256 The amount of tokens to allow.\n@param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n@param _nonce uint256 Presigned transaction number.", - "id": 624, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getApprovePreSignedHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 605, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 596, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 624, - "src": "9534:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 595, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9534:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 624, - "src": "9558:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9558:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 624, - "src": "9584:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9584:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 602, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 624, - "src": "9608:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 601, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9608:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 604, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 624, - "src": "9630:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 603, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9630:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9524:126:0" - }, - "payable": false, - "returnParameters": { - "id": 608, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 607, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 624, - "src": "9696:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 606, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9696:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9695:9:0" - }, - "scope": 718, - "src": "9492:419:0", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "Initializable", + "referencedDeclaration": 1432, + "type": "contract Initializable" + }, + "id": 7, + "name": "UserDefinedTypeName", + "src": "505:13:0" + } + ], + "id": 8, + "name": "InheritanceSpecifier", + "src": "505:13:0" }, { - "body": { - "id": 653, - "nodeType": "Block", - "src": "10693:217:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783133386538646131", - "id": 643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10845:10:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_328109473_by_1", - "typeString": "int_const 328109473" - }, - "value": "0x138e8da1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_328109473_by_1", - "typeString": "int_const 328109473" - } - ], - "id": 642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10838:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 644, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10838:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 645, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 626, - "src": "10858:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 646, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 628, - "src": "10866:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 647, - "name": "_addedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "10876:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 648, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 632, - "src": "10889:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 649, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 634, - "src": "10895:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 640, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "10821:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10821:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10821:81:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 639, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "10811:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10811:92:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 638, - "id": 652, - "nodeType": "Return", - "src": "10804:99:0" - } - ] - }, - "documentation": "@dev Hash (keccak256) of the payload used by increaseAllowancePreSigned\n@notice fee will be given to sender if it's a smart contract make sure it can accept funds\n@param _token address The address of the token\n@param _spender address The address which will spend the funds.\n@param _addedValue uint256 The amount of tokens to increase the allowance by.\n@param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n@param _nonce uint256 Presigned transaction number.", - "id": 654, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getIncreaseAllowancePreSignedHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 635, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 626, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 654, - "src": "10513:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 625, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10513:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 628, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 654, - "src": "10537:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 627, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10537:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 630, - "name": "_addedValue", - "nodeType": "VariableDeclaration", - "scope": 654, - "src": "10563:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 629, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10563:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 632, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 654, - "src": "10592:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 631, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10592:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 634, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 654, - "src": "10614:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 633, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10614:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10503:131:0" - }, - "payable": false, - "returnParameters": { - "id": 638, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 637, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 654, - "src": "10680:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 636, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10680:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10679:9:0" - }, - "scope": 718, - "src": "10461:449:0", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "ERC20", + "referencedDeclaration": 1178, + "type": "contract ERC20" + }, + "id": 9, + "name": "UserDefinedTypeName", + "src": "520:5:0" + } + ], + "id": 10, + "name": "InheritanceSpecifier", + "src": "520:5:0" }, { - "body": { - "id": 683, - "nodeType": "Block", - "src": "11711:222:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783532323963353666", - "id": 673, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11863:10:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1378469231_by_1", - "typeString": "int_const 1378469231" - }, - "value": "0x5229c56f" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1378469231_by_1", - "typeString": "int_const 1378469231" - } - ], - "id": 672, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11856:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 674, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11856:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 675, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 656, - "src": "11876:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 676, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "11884:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 677, - "name": "_subtractedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 660, - "src": "11894:16:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 678, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 662, - "src": "11912:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 679, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 664, - "src": "11918:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 670, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "11839:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 671, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11839:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11839:86:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 669, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "11829:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11829:97:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 668, - "id": 682, - "nodeType": "Return", - "src": "11822:104:0" - } - ] - }, - "documentation": "@dev Hash (keccak256) of the payload used by decreaseAllowancePreSigned\n@notice fee will be given to sender if it's a smart contract make sure it can accept funds\n@param _token address The address of the token\n@param _spender address The address which will spend the funds.\n@param _subtractedValue uint256 The amount of tokens to decrease the allowance by.\n@param _fee uint256 The amount of tokens paid to msg.sender, by the owner.\n@param _nonce uint256 Presigned transaction number.", - "id": 684, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getDecreaseAllowancePreSignedHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 665, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 656, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "11526:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 655, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11526:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 658, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "11550:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 657, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11550:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 660, - "name": "_subtractedValue", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "11576:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 659, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11576:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 662, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "11610:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 661, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11610:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 664, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "11632:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 663, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11632:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11516:136:0" - }, - "payable": false, - "returnParameters": { - "id": 668, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 667, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 684, - "src": "11698:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 666, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11698:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11697:9:0" - }, - "scope": 718, - "src": "11474:459:0", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IERC865", + "referencedDeclaration": 20, + "type": "contract IERC865" + }, + "id": 11, + "name": "UserDefinedTypeName", + "src": "527:7:0" + } + ], + "id": 12, + "name": "InheritanceSpecifier", + "src": "527:7:0" }, { - "body": { - "id": 716, - "nodeType": "Block", - "src": "12778:217:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30786137306334316234", - "id": 705, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12933:10:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2802598324_by_1", - "typeString": "int_const 2802598324" - }, - "value": "0xa70c41b4" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_2802598324_by_1", - "typeString": "int_const 2802598324" - } - ], - "id": 704, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12926:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 706, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12926:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 707, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "12946:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 708, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "12954:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 709, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 690, - "src": "12961:3:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 710, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "12966:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 711, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 694, - "src": "12974:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 712, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 696, - "src": "12980:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 702, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "12909:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 703, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12909:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12909:78:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 701, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "12899:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12899:89:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 700, - "id": 715, - "nodeType": "Return", - "src": "12892:96:0" - } - ] - }, - "documentation": "@dev Hash (keccak256) of the payload used by transferFromPreSigned\n@notice fee will be given to sender if it's a smart contract make sure it can accept funds\n@param _token address The address of the token\n@param _from address The address which you want to send tokens from.\n@param _to address The address which you want to transfer to.\n@param _value uint256 The amount of tokens to be transferred.\n@param _fee uint256 The amount of tokens paid to msg.sender, by the spender.\n@param _nonce uint256 Presigned transaction number.", - "id": 717, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTransferFromPreSignedHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 697, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 686, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 717, - "src": "12585:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12585:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 688, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 717, - "src": "12609:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 687, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12609:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 690, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 717, - "src": "12632:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 689, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12632:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 692, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 717, - "src": "12653:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 691, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12653:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 694, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 717, - "src": "12677:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 693, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12677:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 696, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 717, - "src": "12699:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 695, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12699:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12575:144:0" - }, - "payable": false, - "returnParameters": { - "id": 700, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 699, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 717, - "src": "12765:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 698, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "12765:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12764:9:0" - }, - "scope": 718, - "src": "12538:457:0", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" + "attributes": { + "constant": false, + "name": "hashedTxs", + "scope": 17, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(bytes32 => bool)", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => bool)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 13, + "name": "ElementaryTypeName", + "src": "593:7:0" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 14, + "name": "ElementaryTypeName", + "src": "604:4:0" + } + ], + "id": 15, + "name": "Mapping", + "src": "585:24:0" + } + ], + "id": 16, + "name": "VariableDeclaration", + "src": "585:34:0" } ], - "scope": 719, - "src": "391:12606:0" + "id": 17, + "name": "ContractDefinition", + "src": "481:13434:0" } ], - "src": "0:12997:0" + "id": 18, + "name": "SourceUnit", + "src": "0:13915:0" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.4.25+commit.59dbf8f1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.1", - "updatedAt": "2019-08-15T18:51:44.493Z" + "schemaVersion": "3.3.4", + "updatedAt": "2021-04-02T09:51:14.557Z", + "devdoc": { + "methods": { + "allowance(address,address)": { + "details": "Function to check the amount of tokens that an owner allowed to a spender.", + "params": { + "owner": "address The address which owns the funds.", + "spender": "address The address which will spend the funds." + }, + "return": "A uint256 specifying the amount of tokens still available for the spender." + }, + "approve(address,uint256)": { + "details": "Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729", + "params": { + "spender": "The address which will spend the funds.", + "value": "The amount of tokens to be spent." + } + }, + "balanceOf(address)": { + "details": "Gets the balance of the specified address.", + "params": { + "owner": "The address to query the the balance of." + }, + "return": "An uint256 representing the amount owned by the passed address." + }, + "decreaseAllowance(address,uint256)": { + "details": "Decrease the amount of tokens that an owner allowed to a spender. approve should be called when allowed_[_spender] == 0. To decrement allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol", + "params": { + "spender": "The address which will spend the funds.", + "subtractedValue": "The amount of tokens to decrease the allowance by." + } + }, + "increaseAllowance(address,uint256)": { + "details": "Increase the amount of tokens that an owner allowed to a spender. approve should be called when allowed_[_spender] == 0. To increment allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol", + "params": { + "addedValue": "The amount of tokens to increase the allowance by.", + "spender": "The address which will spend the funds." + } + }, + "totalSupply()": { + "details": "Total number of tokens in existence" + }, + "transfer(address,uint256)": { + "details": "Transfer token for a specified address", + "params": { + "to": "The address to transfer to.", + "value": "The amount to be transferred." + } + }, + "transferFrom(address,address,uint256)": { + "details": "Transfer tokens from one address to another", + "params": { + "from": "address The address which you want to send tokens from", + "to": "address The address which you want to transfer to", + "value": "uint256 the amount of tokens to be transferred" + } + } + }, + "title": "ERC865Token Token * ERC865Token allows users paying transfers in tokens instead of gas https://github.com/ethereum/EIPs/issues/865 " + }, + "userdoc": { + "methods": {} + } } \ No newline at end of file diff --git a/build/contracts/IERC20.json b/build/contracts/IERC20.json index 8820b9e5..216f66bc 100644 --- a/build/contracts/IERC20.json +++ b/build/contracts/IERC20.json @@ -175,6 +175,7 @@ "type": "function" } ], + "metadata": "", "bytecode": "0x", "deployedBytecode": "0x", "sourceMap": "", @@ -185,14 +186,14 @@ "absolutePath": "openzeppelin-eth/contracts/token/ERC20/IERC20.sol", "exportedSymbols": { "IERC20": [ - 4127 + 1314 ] }, - "id": 4128, + "id": 1315, "nodeType": "SourceUnit", "nodes": [ { - "id": 4060, + "id": 1247, "literals": [ "solidity", "^", @@ -208,9 +209,9 @@ "contractKind": "interface", "documentation": "@title ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/20", "fullyImplemented": false, - "id": 4127, + "id": 1314, "linearizedBaseContracts": [ - 4127 + 1314 ], "name": "IERC20", "nodeType": "ContractDefinition", @@ -218,7 +219,7 @@ { "body": null, "documentation": null, - "id": 4065, + "id": 1252, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -226,22 +227,22 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 4061, + "id": 1248, "nodeType": "ParameterList", "parameters": [], "src": "157:2:10" }, "payable": false, "returnParameters": { - "id": 4064, + "id": 1251, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4063, + "id": 1250, "name": "", "nodeType": "VariableDeclaration", - "scope": 4065, + "scope": 1252, "src": "183:7:10", "stateVariable": false, "storageLocation": "default", @@ -250,7 +251,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4062, + "id": 1249, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "183:7:10", @@ -265,7 +266,7 @@ ], "src": "182:9:10" }, - "scope": 4127, + "scope": 1314, "src": "137:55:10", "stateMutability": "view", "superFunction": null, @@ -274,7 +275,7 @@ { "body": null, "documentation": null, - "id": 4072, + "id": 1259, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -282,15 +283,15 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 4068, + "id": 1255, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4067, + "id": 1254, "name": "who", "nodeType": "VariableDeclaration", - "scope": 4072, + "scope": 1259, "src": "215:11:10", "stateVariable": false, "storageLocation": "default", @@ -299,7 +300,7 @@ "typeString": "address" }, "typeName": { - "id": 4066, + "id": 1253, "name": "address", "nodeType": "ElementaryTypeName", "src": "215:7:10", @@ -316,15 +317,15 @@ }, "payable": false, "returnParameters": { - "id": 4071, + "id": 1258, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4070, + "id": 1257, "name": "", "nodeType": "VariableDeclaration", - "scope": 4072, + "scope": 1259, "src": "251:7:10", "stateVariable": false, "storageLocation": "default", @@ -333,7 +334,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4069, + "id": 1256, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "251:7:10", @@ -348,7 +349,7 @@ ], "src": "250:9:10" }, - "scope": 4127, + "scope": 1314, "src": "196:64:10", "stateMutability": "view", "superFunction": null, @@ -357,7 +358,7 @@ { "body": null, "documentation": null, - "id": 4081, + "id": 1268, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -365,15 +366,15 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 4077, + "id": 1264, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4074, + "id": 1261, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 4081, + "scope": 1268, "src": "283:13:10", "stateVariable": false, "storageLocation": "default", @@ -382,7 +383,7 @@ "typeString": "address" }, "typeName": { - "id": 4073, + "id": 1260, "name": "address", "nodeType": "ElementaryTypeName", "src": "283:7:10", @@ -396,10 +397,10 @@ }, { "constant": false, - "id": 4076, + "id": 1263, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 4081, + "scope": 1268, "src": "298:15:10", "stateVariable": false, "storageLocation": "default", @@ -408,7 +409,7 @@ "typeString": "address" }, "typeName": { - "id": 4075, + "id": 1262, "name": "address", "nodeType": "ElementaryTypeName", "src": "298:7:10", @@ -425,15 +426,15 @@ }, "payable": false, "returnParameters": { - "id": 4080, + "id": 1267, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4079, + "id": 1266, "name": "", "nodeType": "VariableDeclaration", - "scope": 4081, + "scope": 1268, "src": "342:7:10", "stateVariable": false, "storageLocation": "default", @@ -442,7 +443,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4078, + "id": 1265, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "342:7:10", @@ -457,7 +458,7 @@ ], "src": "341:9:10" }, - "scope": 4127, + "scope": 1314, "src": "264:87:10", "stateMutability": "view", "superFunction": null, @@ -466,7 +467,7 @@ { "body": null, "documentation": null, - "id": 4090, + "id": 1277, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -474,15 +475,15 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 4086, + "id": 1273, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4083, + "id": 1270, "name": "to", "nodeType": "VariableDeclaration", - "scope": 4090, + "scope": 1277, "src": "373:10:10", "stateVariable": false, "storageLocation": "default", @@ -491,7 +492,7 @@ "typeString": "address" }, "typeName": { - "id": 4082, + "id": 1269, "name": "address", "nodeType": "ElementaryTypeName", "src": "373:7:10", @@ -505,10 +506,10 @@ }, { "constant": false, - "id": 4085, + "id": 1272, "name": "value", "nodeType": "VariableDeclaration", - "scope": 4090, + "scope": 1277, "src": "385:13:10", "stateVariable": false, "storageLocation": "default", @@ -517,7 +518,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4084, + "id": 1271, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "385:7:10", @@ -534,15 +535,15 @@ }, "payable": false, "returnParameters": { - "id": 4089, + "id": 1276, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4088, + "id": 1275, "name": "", "nodeType": "VariableDeclaration", - "scope": 4090, + "scope": 1277, "src": "418:4:10", "stateVariable": false, "storageLocation": "default", @@ -551,7 +552,7 @@ "typeString": "bool" }, "typeName": { - "id": 4087, + "id": 1274, "name": "bool", "nodeType": "ElementaryTypeName", "src": "418:4:10", @@ -566,7 +567,7 @@ ], "src": "417:6:10" }, - "scope": 4127, + "scope": 1314, "src": "355:69:10", "stateMutability": "nonpayable", "superFunction": null, @@ -575,7 +576,7 @@ { "body": null, "documentation": null, - "id": 4099, + "id": 1286, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -583,15 +584,15 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 4095, + "id": 1282, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4092, + "id": 1279, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 4099, + "scope": 1286, "src": "445:15:10", "stateVariable": false, "storageLocation": "default", @@ -600,7 +601,7 @@ "typeString": "address" }, "typeName": { - "id": 4091, + "id": 1278, "name": "address", "nodeType": "ElementaryTypeName", "src": "445:7:10", @@ -614,10 +615,10 @@ }, { "constant": false, - "id": 4094, + "id": 1281, "name": "value", "nodeType": "VariableDeclaration", - "scope": 4099, + "scope": 1286, "src": "462:13:10", "stateVariable": false, "storageLocation": "default", @@ -626,7 +627,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4093, + "id": 1280, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "462:7:10", @@ -643,15 +644,15 @@ }, "payable": false, "returnParameters": { - "id": 4098, + "id": 1285, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4097, + "id": 1284, "name": "", "nodeType": "VariableDeclaration", - "scope": 4099, + "scope": 1286, "src": "499:4:10", "stateVariable": false, "storageLocation": "default", @@ -660,7 +661,7 @@ "typeString": "bool" }, "typeName": { - "id": 4096, + "id": 1283, "name": "bool", "nodeType": "ElementaryTypeName", "src": "499:4:10", @@ -675,7 +676,7 @@ ], "src": "498:6:10" }, - "scope": 4127, + "scope": 1314, "src": "428:77:10", "stateMutability": "nonpayable", "superFunction": null, @@ -684,7 +685,7 @@ { "body": null, "documentation": null, - "id": 4110, + "id": 1297, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -692,15 +693,15 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 4106, + "id": 1293, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4101, + "id": 1288, "name": "from", "nodeType": "VariableDeclaration", - "scope": 4110, + "scope": 1297, "src": "531:12:10", "stateVariable": false, "storageLocation": "default", @@ -709,7 +710,7 @@ "typeString": "address" }, "typeName": { - "id": 4100, + "id": 1287, "name": "address", "nodeType": "ElementaryTypeName", "src": "531:7:10", @@ -723,10 +724,10 @@ }, { "constant": false, - "id": 4103, + "id": 1290, "name": "to", "nodeType": "VariableDeclaration", - "scope": 4110, + "scope": 1297, "src": "545:10:10", "stateVariable": false, "storageLocation": "default", @@ -735,7 +736,7 @@ "typeString": "address" }, "typeName": { - "id": 4102, + "id": 1289, "name": "address", "nodeType": "ElementaryTypeName", "src": "545:7:10", @@ -749,10 +750,10 @@ }, { "constant": false, - "id": 4105, + "id": 1292, "name": "value", "nodeType": "VariableDeclaration", - "scope": 4110, + "scope": 1297, "src": "557:13:10", "stateVariable": false, "storageLocation": "default", @@ -761,7 +762,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4104, + "id": 1291, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "557:7:10", @@ -778,15 +779,15 @@ }, "payable": false, "returnParameters": { - "id": 4109, + "id": 1296, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4108, + "id": 1295, "name": "", "nodeType": "VariableDeclaration", - "scope": 4110, + "scope": 1297, "src": "594:4:10", "stateVariable": false, "storageLocation": "default", @@ -795,7 +796,7 @@ "typeString": "bool" }, "typeName": { - "id": 4107, + "id": 1294, "name": "bool", "nodeType": "ElementaryTypeName", "src": "594:4:10", @@ -810,7 +811,7 @@ ], "src": "593:6:10" }, - "scope": 4127, + "scope": 1314, "src": "509:91:10", "stateMutability": "nonpayable", "superFunction": null, @@ -819,20 +820,20 @@ { "anonymous": false, "documentation": null, - "id": 4118, + "id": 1305, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 4117, + "id": 1304, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4112, + "id": 1299, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 4118, + "scope": 1305, "src": "624:20:10", "stateVariable": false, "storageLocation": "default", @@ -841,7 +842,7 @@ "typeString": "address" }, "typeName": { - "id": 4111, + "id": 1298, "name": "address", "nodeType": "ElementaryTypeName", "src": "624:7:10", @@ -855,11 +856,11 @@ }, { "constant": false, - "id": 4114, + "id": 1301, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 4118, + "scope": 1305, "src": "650:18:10", "stateVariable": false, "storageLocation": "default", @@ -868,7 +869,7 @@ "typeString": "address" }, "typeName": { - "id": 4113, + "id": 1300, "name": "address", "nodeType": "ElementaryTypeName", "src": "650:7:10", @@ -882,11 +883,11 @@ }, { "constant": false, - "id": 4116, + "id": 1303, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 4118, + "scope": 1305, "src": "674:13:10", "stateVariable": false, "storageLocation": "default", @@ -895,7 +896,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4115, + "id": 1302, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "674:7:10", @@ -915,20 +916,20 @@ { "anonymous": false, "documentation": null, - "id": 4126, + "id": 1313, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 4125, + "id": 1312, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4120, + "id": 1307, "indexed": true, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 4126, + "scope": 1313, "src": "716:21:10", "stateVariable": false, "storageLocation": "default", @@ -937,7 +938,7 @@ "typeString": "address" }, "typeName": { - "id": 4119, + "id": 1306, "name": "address", "nodeType": "ElementaryTypeName", "src": "716:7:10", @@ -951,11 +952,11 @@ }, { "constant": false, - "id": 4122, + "id": 1309, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 4126, + "scope": 1313, "src": "743:23:10", "stateVariable": false, "storageLocation": "default", @@ -964,7 +965,7 @@ "typeString": "address" }, "typeName": { - "id": 4121, + "id": 1308, "name": "address", "nodeType": "ElementaryTypeName", "src": "743:7:10", @@ -978,11 +979,11 @@ }, { "constant": false, - "id": 4124, + "id": 1311, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 4126, + "scope": 1313, "src": "772:13:10", "stateVariable": false, "storageLocation": "default", @@ -991,7 +992,7 @@ "typeString": "uint256" }, "typeName": { - "id": 4123, + "id": 1310, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "772:7:10", @@ -1009,851 +1010,917 @@ "src": "696:94:10" } ], - "scope": 4128, + "scope": 1315, "src": "116:676:10" } ], "src": "0:793:10" }, "legacyAST": { - "absolutePath": "openzeppelin-eth/contracts/token/ERC20/IERC20.sol", - "exportedSymbols": { - "IERC20": [ - 4127 - ] - }, - "id": 4128, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4060, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:10" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@title ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/20", - "fullyImplemented": false, - "id": 4127, - "linearizedBaseContracts": [ - 4127 - ], - "name": "IERC20", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 4065, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4061, - "nodeType": "ParameterList", - "parameters": [], - "src": "157:2:10" - }, - "payable": false, - "returnParameters": { - "id": 4064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4063, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4065, - "src": "183:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4062, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "183:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "182:9:10" - }, - "scope": 4127, - "src": "137:55:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4072, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4068, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4067, - "name": "who", - "nodeType": "VariableDeclaration", - "scope": 4072, - "src": "215:11:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4066, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "215:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "214:13:10" - }, - "payable": false, - "returnParameters": { - "id": 4071, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4070, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4072, - "src": "251:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4069, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "251:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "250:9:10" - }, - "scope": 4127, - "src": "196:64:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4081, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4077, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4074, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 4081, - "src": "283:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4073, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "283:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4076, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 4081, - "src": "298:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4075, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "298:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "282:32:10" - }, - "payable": false, - "returnParameters": { - "id": 4080, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4079, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4081, - "src": "342:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4078, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "342:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "341:9:10" - }, - "scope": 4127, - "src": "264:87:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4090, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4086, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4083, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 4090, - "src": "373:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4082, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "373:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4085, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 4090, - "src": "385:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4084, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "385:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "372:27:10" - }, - "payable": false, - "returnParameters": { - "id": 4089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4088, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4090, - "src": "418:4:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4087, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "418:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "417:6:10" - }, - "scope": 4127, - "src": "355:69:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4099, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4095, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4092, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 4099, - "src": "445:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4091, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "445:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4094, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 4099, - "src": "462:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4093, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "462:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "444:32:10" - }, - "payable": false, - "returnParameters": { - "id": 4098, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4097, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4099, - "src": "499:4:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4096, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "499:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "498:6:10" - }, - "scope": 4127, - "src": "428:77:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4110, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4106, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4101, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 4110, - "src": "531:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4100, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "531:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4103, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 4110, - "src": "545:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4102, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "545:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" + "attributes": { + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/IERC20.sol", + "exportedSymbols": { + "IERC20": [ + 1314 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ] + }, + "id": 1247, + "name": "PragmaDirective", + "src": "0:24:10" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "documentation": "@title ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/20", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 1314 + ], + "name": "IERC20", + "scope": 1315 + }, + "children": [ + { + "attributes": { + "body": null, + "constant": true, + "documentation": null, + "implemented": false, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "totalSupply", + "payable": false, + "scope": 1314, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] }, - { - "constant": false, - "id": 4105, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 4110, - "src": "557:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4104, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "557:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } + "children": [], + "id": 1248, + "name": "ParameterList", + "src": "157:2:10" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1252, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1249, + "name": "ElementaryTypeName", + "src": "183:7:10" + } + ], + "id": 1250, + "name": "VariableDeclaration", + "src": "183:7:10" + } + ], + "id": 1251, + "name": "ParameterList", + "src": "182:9:10" + } + ], + "id": 1252, + "name": "FunctionDefinition", + "src": "137:55:10" + }, + { + "attributes": { + "body": null, + "constant": true, + "documentation": null, + "implemented": false, + "isConstructor": false, + "modifiers": [ + null ], - "src": "530:41:10" + "name": "balanceOf", + "payable": false, + "scope": 1314, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" }, - "payable": false, - "returnParameters": { - "id": 4109, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4108, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4110, - "src": "594:4:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4107, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "594:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "who", + "scope": 1259, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1253, + "name": "ElementaryTypeName", + "src": "215:7:10" + } + ], + "id": 1254, + "name": "VariableDeclaration", + "src": "215:11:10" + } + ], + "id": 1255, + "name": "ParameterList", + "src": "214:13:10" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1259, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1256, + "name": "ElementaryTypeName", + "src": "251:7:10" + } + ], + "id": 1257, + "name": "VariableDeclaration", + "src": "251:7:10" + } + ], + "id": 1258, + "name": "ParameterList", + "src": "250:9:10" + } + ], + "id": 1259, + "name": "FunctionDefinition", + "src": "196:64:10" + }, + { + "attributes": { + "body": null, + "constant": true, + "documentation": null, + "implemented": false, + "isConstructor": false, + "modifiers": [ + null ], - "src": "593:6:10" + "name": "allowance", + "payable": false, + "scope": 1314, + "stateMutability": "view", + "superFunction": null, + "visibility": "external" }, - "scope": 4127, - "src": "509:91:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "owner", + "scope": 1268, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1260, + "name": "ElementaryTypeName", + "src": "283:7:10" + } + ], + "id": 1261, + "name": "VariableDeclaration", + "src": "283:13:10" + }, + { + "attributes": { + "constant": false, + "name": "spender", + "scope": 1268, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1262, + "name": "ElementaryTypeName", + "src": "298:7:10" + } + ], + "id": 1263, + "name": "VariableDeclaration", + "src": "298:15:10" + } + ], + "id": 1264, + "name": "ParameterList", + "src": "282:32:10" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1268, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1265, + "name": "ElementaryTypeName", + "src": "342:7:10" + } + ], + "id": 1266, + "name": "VariableDeclaration", + "src": "342:7:10" + } + ], + "id": 1267, + "name": "ParameterList", + "src": "341:9:10" + } + ], + "id": 1268, + "name": "FunctionDefinition", + "src": "264:87:10" }, { - "anonymous": false, - "documentation": null, - "id": 4118, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 4117, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4112, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 4118, - "src": "624:20:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4111, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "624:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4114, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 4118, - "src": "650:18:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4113, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "650:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4116, - "indexed": false, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 4118, - "src": "674:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4115, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "674:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } + "attributes": { + "body": null, + "constant": false, + "documentation": null, + "implemented": false, + "isConstructor": false, + "modifiers": [ + null ], - "src": "618:73:10" + "name": "transfer", + "payable": false, + "scope": 1314, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" }, - "src": "604:88:10" + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "to", + "scope": 1277, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1269, + "name": "ElementaryTypeName", + "src": "373:7:10" + } + ], + "id": 1270, + "name": "VariableDeclaration", + "src": "373:10:10" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 1277, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1271, + "name": "ElementaryTypeName", + "src": "385:7:10" + } + ], + "id": 1272, + "name": "VariableDeclaration", + "src": "385:13:10" + } + ], + "id": 1273, + "name": "ParameterList", + "src": "372:27:10" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1277, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1274, + "name": "ElementaryTypeName", + "src": "418:4:10" + } + ], + "id": 1275, + "name": "VariableDeclaration", + "src": "418:4:10" + } + ], + "id": 1276, + "name": "ParameterList", + "src": "417:6:10" + } + ], + "id": 1277, + "name": "FunctionDefinition", + "src": "355:69:10" }, { - "anonymous": false, - "documentation": null, - "id": 4126, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 4125, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4120, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 4126, - "src": "716:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4119, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "716:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4122, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 4126, - "src": "743:23:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4121, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "743:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4124, - "indexed": false, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 4126, - "src": "772:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4123, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "772:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } + "attributes": { + "body": null, + "constant": false, + "documentation": null, + "implemented": false, + "isConstructor": false, + "modifiers": [ + null ], - "src": "710:79:10" + "name": "approve", + "payable": false, + "scope": 1314, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "spender", + "scope": 1286, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1278, + "name": "ElementaryTypeName", + "src": "445:7:10" + } + ], + "id": 1279, + "name": "VariableDeclaration", + "src": "445:15:10" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 1286, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1280, + "name": "ElementaryTypeName", + "src": "462:7:10" + } + ], + "id": 1281, + "name": "VariableDeclaration", + "src": "462:13:10" + } + ], + "id": 1282, + "name": "ParameterList", + "src": "444:32:10" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1286, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1283, + "name": "ElementaryTypeName", + "src": "499:4:10" + } + ], + "id": 1284, + "name": "VariableDeclaration", + "src": "499:4:10" + } + ], + "id": 1285, + "name": "ParameterList", + "src": "498:6:10" + } + ], + "id": 1286, + "name": "FunctionDefinition", + "src": "428:77:10" + }, + { + "attributes": { + "body": null, + "constant": false, + "documentation": null, + "implemented": false, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "transferFrom", + "payable": false, + "scope": 1314, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "from", + "scope": 1297, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1287, + "name": "ElementaryTypeName", + "src": "531:7:10" + } + ], + "id": 1288, + "name": "VariableDeclaration", + "src": "531:12:10" + }, + { + "attributes": { + "constant": false, + "name": "to", + "scope": 1297, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1289, + "name": "ElementaryTypeName", + "src": "545:7:10" + } + ], + "id": 1290, + "name": "VariableDeclaration", + "src": "545:10:10" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 1297, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1291, + "name": "ElementaryTypeName", + "src": "557:7:10" + } + ], + "id": 1292, + "name": "VariableDeclaration", + "src": "557:13:10" + } + ], + "id": 1293, + "name": "ParameterList", + "src": "530:41:10" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 1297, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1294, + "name": "ElementaryTypeName", + "src": "594:4:10" + } + ], + "id": 1295, + "name": "VariableDeclaration", + "src": "594:4:10" + } + ], + "id": 1296, + "name": "ParameterList", + "src": "593:6:10" + } + ], + "id": 1297, + "name": "FunctionDefinition", + "src": "509:91:10" + }, + { + "attributes": { + "anonymous": false, + "documentation": null, + "name": "Transfer" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "name": "from", + "scope": 1305, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1298, + "name": "ElementaryTypeName", + "src": "624:7:10" + } + ], + "id": 1299, + "name": "VariableDeclaration", + "src": "624:20:10" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "name": "to", + "scope": 1305, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1300, + "name": "ElementaryTypeName", + "src": "650:7:10" + } + ], + "id": 1301, + "name": "VariableDeclaration", + "src": "650:18:10" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "value", + "scope": 1305, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1302, + "name": "ElementaryTypeName", + "src": "674:7:10" + } + ], + "id": 1303, + "name": "VariableDeclaration", + "src": "674:13:10" + } + ], + "id": 1304, + "name": "ParameterList", + "src": "618:73:10" + } + ], + "id": 1305, + "name": "EventDefinition", + "src": "604:88:10" + }, + { + "attributes": { + "anonymous": false, + "documentation": null, + "name": "Approval" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "name": "owner", + "scope": 1313, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1306, + "name": "ElementaryTypeName", + "src": "716:7:10" + } + ], + "id": 1307, + "name": "VariableDeclaration", + "src": "716:21:10" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "name": "spender", + "scope": 1313, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1308, + "name": "ElementaryTypeName", + "src": "743:7:10" + } + ], + "id": 1309, + "name": "VariableDeclaration", + "src": "743:23:10" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "name": "value", + "scope": 1313, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1310, + "name": "ElementaryTypeName", + "src": "772:7:10" + } + ], + "id": 1311, + "name": "VariableDeclaration", + "src": "772:13:10" + } + ], + "id": 1312, + "name": "ParameterList", + "src": "710:79:10" + } + ], + "id": 1313, + "name": "EventDefinition", "src": "696:94:10" } ], - "scope": 4128, + "id": 1314, + "name": "ContractDefinition", "src": "116:676:10" } ], + "id": 1315, + "name": "SourceUnit", "src": "0:793:10" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.4.25+commit.59dbf8f1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.1", - "updatedAt": "2019-08-15T18:51:44.487Z" + "schemaVersion": "3.3.4", + "updatedAt": "2021-04-02T09:51:14.588Z", + "devdoc": { + "methods": {}, + "title": "ERC20 interface" + }, + "userdoc": { + "methods": {} + } } \ No newline at end of file diff --git a/build/contracts/IERC865.json b/build/contracts/IERC865.json index 13a7c8c0..3719139a 100644 --- a/build/contracts/IERC865.json +++ b/build/contracts/IERC865.json @@ -1,268 +1,25 @@ { "contractName": "IERC865", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": true, - "name": "delegate", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "fee", - "type": "uint256" - } - ], - "name": "TransferPreSigned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": true, - "name": "delegate", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "fee", - "type": "uint256" - } - ], - "name": "ApprovalPreSigned", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "transferPreSigned", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_spender", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "approvePreSigned", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_spender", - "type": "address" - }, - { - "name": "_addedValue", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "increaseAllowancePreSigned", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_spender", - "type": "address" - }, - { - "name": "_subtractedValue", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "decreaseAllowancePreSigned", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "transferFromPreSigned", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity ^0.4.24;\n\n/**\n * @title ERC865 Interface\n * @dev see https://github.com/ethereum/EIPs/issues/865\n *\n */\n\ncontract IERC865 {\n\n event TransferPreSigned(address indexed from, address indexed to, address indexed delegate, uint256 amount, uint256 fee);\n event ApprovalPreSigned(address indexed from, address indexed to, address indexed delegate, uint256 amount, uint256 fee);\n\n function transferPreSigned(\n bytes _signature,\n address _to,\n uint256 _value,\n uint256 _fee,\n uint256 _nonce\n )\n public\n returns (bool);\n\n function approvePreSigned(\n bytes _signature,\n address _spender,\n uint256 _value,\n uint256 _fee,\n uint256 _nonce\n )\n public\n returns (bool);\n\n function increaseAllowancePreSigned(\n bytes _signature,\n address _spender,\n uint256 _addedValue,\n uint256 _fee,\n uint256 _nonce\n )\n public\n returns (bool);\n\n function decreaseAllowancePreSigned(\n bytes _signature,\n address _spender,\n uint256 _subtractedValue,\n uint256 _fee,\n uint256 _nonce\n )\n public\n returns (bool);\n\n function transferFromPreSigned(\n bytes _signature,\n address _from,\n address _to,\n uint256 _value,\n uint256 _fee,\n uint256 _nonce\n )\n public\n returns (bool);\n}", - "sourcePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/IERC865.sol", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.4.25+commit.59dbf8f1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{},\"title\":\"ERC865 Interface\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/george/Development/props/props-token-distribution/contracts/token/IERC865.sol\":\"IERC865\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/george/Development/props/props-token-distribution/contracts/token/IERC865.sol\":{\"keccak256\":\"0x94b2dffbb5a3429040ea84c2d9186185ad4ed32402bd0ce3310e79aa7750f2cf\",\"urls\":[\"bzzr://bd4e55bed687adc411bc7201427a87a5cafc6dea0482859c438cccd6bccfe817\"]}},\"version\":1}", + "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a723058206a2ee1df95cf14f9952be86be4402c2f2770851ad0a6629bfcffe668d4be971e0029", + "deployedBytecode": "0x6080604052600080fd00a165627a7a723058206a2ee1df95cf14f9952be86be4402c2f2770851ad0a6629bfcffe668d4be971e0029", + "sourceMap": "211:1461:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;211:1461:1;;;;;;;", + "deployedSourceMap": "211:1461:1:-;;;;;", + "source": "pragma solidity ^0.4.24;\n/*\n THIS CONTRACT IS OBSOLETE AND REMAINS ONLY FOR UPGRADABILITY/STORAGE CONSIDERATIONS\n*/\n/**\n * @title ERC865 Interface\n * @dev see https://github.com/ethereum/EIPs/issues/865\n *\n */\n\ncontract IERC865 {\n\n // event TransferPreSigned(address indexed from, address indexed to, address indexed delegate, uint256 amount, uint256 fee);\n // event ApprovalPreSigned(address indexed from, address indexed to, address indexed delegate, uint256 amount, uint256 fee);\n\n // function transferPreSigned(\n // bytes _signature,\n // address _to,\n // uint256 _value,\n // uint256 _fee,\n // uint256 _nonce\n // )\n // public\n // returns (bool);\n\n // function approvePreSigned(\n // bytes _signature,\n // address _spender,\n // uint256 _value,\n // uint256 _fee,\n // uint256 _nonce\n // )\n // public\n // returns (bool);\n\n // function increaseAllowancePreSigned(\n // bytes _signature,\n // address _spender,\n // uint256 _addedValue,\n // uint256 _fee,\n // uint256 _nonce\n // )\n // public\n // returns (bool);\n\n // function decreaseAllowancePreSigned(\n // bytes _signature,\n // address _spender,\n // uint256 _subtractedValue,\n // uint256 _fee,\n // uint256 _nonce\n // )\n // public\n // returns (bool);\n\n // function transferFromPreSigned(\n // bytes _signature,\n // address _from,\n // address _to,\n // uint256 _value,\n // uint256 _fee,\n // uint256 _nonce\n // )\n // public\n // returns (bool);\n}", + "sourcePath": "/home/george/Development/props/props-token-distribution/contracts/token/IERC865.sol", "ast": { - "absolutePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/IERC865.sol", + "absolutePath": "/home/george/Development/props/props-token-distribution/contracts/token/IERC865.sol", "exportedSymbols": { "IERC865": [ - 822 + 20 ] }, - "id": 823, + "id": 21, "nodeType": "SourceUnit", "nodes": [ { - "id": 720, + "id": 19, "literals": [ "solidity", "^", @@ -277,2589 +34,84 @@ "contractDependencies": [], "contractKind": "contract", "documentation": "@title ERC865 Interface\n@dev see https://github.com/ethereum/EIPs/issues/865\n ", - "fullyImplemented": false, - "id": 822, + "fullyImplemented": true, + "id": 20, "linearizedBaseContracts": [ - 822 + 20 ], "name": "IERC865", "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 732, - "name": "TransferPreSigned", - "nodeType": "EventDefinition", - "parameters": { - "id": 731, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 722, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 732, - "src": "169:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 721, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "169:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 724, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 732, - "src": "191:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 723, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "191:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 726, - "indexed": true, - "name": "delegate", - "nodeType": "VariableDeclaration", - "scope": 732, - "src": "211:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 725, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "211:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 728, - "indexed": false, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 732, - "src": "237:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 727, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "237:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 730, - "indexed": false, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 732, - "src": "253:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 729, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "253:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "168:97:1" - }, - "src": "145:121:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 744, - "name": "ApprovalPreSigned", - "nodeType": "EventDefinition", - "parameters": { - "id": 743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 734, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 744, - "src": "295:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 733, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "295:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 736, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 744, - "src": "317:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 735, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "317:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 738, - "indexed": true, - "name": "delegate", - "nodeType": "VariableDeclaration", - "scope": 744, - "src": "337:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 737, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "337:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 740, - "indexed": false, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 744, - "src": "363:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 739, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "363:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 742, - "indexed": false, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 744, - "src": "379:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 741, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "294:97:1" - }, - "src": "271:121:1" - }, - { - "body": null, - "documentation": null, - "id": 759, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferPreSigned", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 755, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 746, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "434:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 745, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "434:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 748, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "460:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 747, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 750, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "481:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 749, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "481:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 752, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "505:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 751, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 754, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "527:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 753, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "527:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "424:123:1" - }, - "payable": false, - "returnParameters": { - "id": 758, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 757, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "580:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 756, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "579:6:1" - }, - "scope": 822, - "src": "398:188:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 774, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approvePreSigned", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 770, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 761, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 774, - "src": "627:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 760, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "627:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 763, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 774, - "src": "653:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 762, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "653:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 765, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 774, - "src": "679:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 764, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "679:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 767, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 774, - "src": "703:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 766, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "703:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 769, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 774, - "src": "725:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 768, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "725:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "617:128:1" - }, - "payable": false, - "returnParameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 772, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 774, - "src": "778:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 771, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "778:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "777:6:1" - }, - "scope": 822, - "src": "592:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 789, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "increaseAllowancePreSigned", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 785, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 776, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "835:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 775, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "835:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 778, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "861:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 777, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "861:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 780, - "name": "_addedValue", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "887:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 779, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "887:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 782, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "916:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 781, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 784, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "938:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 783, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "938:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "825:133:1" - }, - "payable": false, - "returnParameters": { - "id": 788, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 787, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "991:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 786, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "991:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "990:6:1" - }, - "scope": 822, - "src": "790:207:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 804, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "decreaseAllowancePreSigned", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 791, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 804, - "src": "1048:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 790, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1048:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 793, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 804, - "src": "1074:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 792, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1074:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 795, - "name": "_subtractedValue", - "nodeType": "VariableDeclaration", - "scope": 804, - "src": "1100:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 794, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1100:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 797, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 804, - "src": "1134:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 796, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1134:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 799, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 804, - "src": "1156:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 798, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1156:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1038:138:1" - }, - "payable": false, - "returnParameters": { - "id": 803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 802, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 804, - "src": "1209:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 801, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1209:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1208:6:1" - }, - "scope": 822, - "src": "1003:212:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 821, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFromPreSigned", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 817, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 806, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 821, - "src": "1261:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 805, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1261:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 808, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 821, - "src": "1287:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 807, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1287:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 810, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 821, - "src": "1310:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 809, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1310:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 812, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 821, - "src": "1331:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 811, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1331:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 814, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 821, - "src": "1355:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 813, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1355:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 816, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 821, - "src": "1377:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 815, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1251:146:1" - }, - "payable": false, - "returnParameters": { - "id": 820, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 819, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 821, - "src": "1430:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 818, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1430:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1429:6:1" - }, - "scope": 822, - "src": "1221:215:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 823, - "src": "121:1317:1" + "nodes": [], + "scope": 21, + "src": "211:1461:1" } ], - "src": "0:1438:1" + "src": "0:1672:1" }, "legacyAST": { - "absolutePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/IERC865.sol", - "exportedSymbols": { - "IERC865": [ - 822 - ] + "attributes": { + "absolutePath": "/home/george/Development/props/props-token-distribution/contracts/token/IERC865.sol", + "exportedSymbols": { + "IERC865": [ + 20 + ] + } }, - "id": 823, - "nodeType": "SourceUnit", - "nodes": [ + "children": [ { - "id": 720, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", + "attributes": { + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ] + }, + "id": 19, + "name": "PragmaDirective", "src": "0:24:1" }, { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC865 Interface\n@dev see https://github.com/ethereum/EIPs/issues/865\n ", - "fullyImplemented": false, - "id": 822, - "linearizedBaseContracts": [ - 822 - ], - "name": "IERC865", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 732, - "name": "TransferPreSigned", - "nodeType": "EventDefinition", - "parameters": { - "id": 731, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 722, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 732, - "src": "169:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 721, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "169:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 724, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 732, - "src": "191:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 723, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "191:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 726, - "indexed": true, - "name": "delegate", - "nodeType": "VariableDeclaration", - "scope": 732, - "src": "211:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 725, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "211:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 728, - "indexed": false, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 732, - "src": "237:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 727, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "237:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 730, - "indexed": false, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 732, - "src": "253:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 729, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "253:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "168:97:1" - }, - "src": "145:121:1" - }, - { - "anonymous": false, - "documentation": null, - "id": 744, - "name": "ApprovalPreSigned", - "nodeType": "EventDefinition", - "parameters": { - "id": 743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 734, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 744, - "src": "295:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 733, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "295:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 736, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 744, - "src": "317:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 735, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "317:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 738, - "indexed": true, - "name": "delegate", - "nodeType": "VariableDeclaration", - "scope": 744, - "src": "337:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 737, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "337:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 740, - "indexed": false, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 744, - "src": "363:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 739, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "363:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 742, - "indexed": false, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 744, - "src": "379:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 741, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "379:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "294:97:1" - }, - "src": "271:121:1" - }, - { - "body": null, - "documentation": null, - "id": 759, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferPreSigned", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 755, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 746, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "434:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 745, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "434:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 748, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "460:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 747, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "460:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 750, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "481:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 749, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "481:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 752, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "505:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 751, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "505:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 754, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "527:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 753, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "527:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "424:123:1" - }, - "payable": false, - "returnParameters": { - "id": 758, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 757, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 759, - "src": "580:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 756, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "580:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "579:6:1" - }, - "scope": 822, - "src": "398:188:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 774, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approvePreSigned", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 770, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 761, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 774, - "src": "627:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 760, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "627:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 763, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 774, - "src": "653:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 762, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "653:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 765, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 774, - "src": "679:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 764, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "679:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 767, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 774, - "src": "703:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 766, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "703:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 769, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 774, - "src": "725:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 768, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "725:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "617:128:1" - }, - "payable": false, - "returnParameters": { - "id": 773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 772, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 774, - "src": "778:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 771, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "778:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "777:6:1" - }, - "scope": 822, - "src": "592:192:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 789, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "increaseAllowancePreSigned", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 785, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 776, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "835:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 775, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "835:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 778, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "861:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 777, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "861:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 780, - "name": "_addedValue", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "887:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 779, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "887:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 782, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "916:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 781, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "916:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 784, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "938:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 783, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "938:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "825:133:1" - }, - "payable": false, - "returnParameters": { - "id": 788, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 787, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 789, - "src": "991:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 786, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "991:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "990:6:1" - }, - "scope": 822, - "src": "790:207:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 804, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "decreaseAllowancePreSigned", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 800, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 791, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 804, - "src": "1048:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 790, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1048:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 793, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 804, - "src": "1074:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 792, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1074:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 795, - "name": "_subtractedValue", - "nodeType": "VariableDeclaration", - "scope": 804, - "src": "1100:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 794, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1100:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 797, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 804, - "src": "1134:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 796, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1134:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 799, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 804, - "src": "1156:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 798, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1156:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1038:138:1" - }, - "payable": false, - "returnParameters": { - "id": 803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 802, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 804, - "src": "1209:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 801, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1209:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1208:6:1" - }, - "scope": 822, - "src": "1003:212:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 821, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFromPreSigned", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 817, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 806, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 821, - "src": "1261:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 805, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1261:5:1", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 808, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 821, - "src": "1287:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 807, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1287:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 810, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 821, - "src": "1310:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 809, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1310:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 812, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 821, - "src": "1331:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 811, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1331:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 814, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 821, - "src": "1355:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 813, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1355:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 816, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 821, - "src": "1377:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 815, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1377:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1251:146:1" - }, - "payable": false, - "returnParameters": { - "id": 820, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 819, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 821, - "src": "1430:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 818, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1430:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1429:6:1" - }, - "scope": 822, - "src": "1221:215:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 823, - "src": "121:1317:1" + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "documentation": "@title ERC865 Interface\n@dev see https://github.com/ethereum/EIPs/issues/865\n ", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 20 + ], + "name": "IERC865", + "nodes": [ + null + ], + "scope": 21 + }, + "id": 20, + "name": "ContractDefinition", + "src": "211:1461:1" } ], - "src": "0:1438:1" + "id": 21, + "name": "SourceUnit", + "src": "0:1672:1" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.4.25+commit.59dbf8f1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.1", - "updatedAt": "2019-08-15T18:51:44.472Z" + "schemaVersion": "3.3.4", + "updatedAt": "2021-04-02T09:51:14.559Z", + "devdoc": { + "methods": {}, + "title": "ERC865 Interface" + }, + "userdoc": { + "methods": {} + } } \ No newline at end of file diff --git a/build/contracts/Initializable.json b/build/contracts/Initializable.json index 711decc1..3491bfcb 100644 --- a/build/contracts/Initializable.json +++ b/build/contracts/Initializable.json @@ -1,24 +1,25 @@ { "contractName": "Initializable", "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a723058201520798fb79371f6a207c3a904fa9314a4839fc1ed4625f14bca8f600a9ea2610029", - "deployedBytecode": "0x6080604052600080fd00a165627a7a723058201520798fb79371f6a207c3a904fa9314a4839fc1ed4625f14bca8f600a9ea2610029", - "sourceMap": "657:1266:11:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;657:1266:11;;;;;;;", - "deployedSourceMap": "657:1266:11:-;;;;;", + "metadata": "{\"compiler\":{\"version\":\"0.4.25+commit.59dbf8f1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{},\"title\":\"Initializable\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"zos-lib/contracts/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"zos-lib/contracts/Initializable.sol\":{\"keccak256\":\"0xac4cc87395794e21e95549a1b4002881621d59878c4129d534a0089ce5cf7212\",\"urls\":[\"bzzr://1725ac3e1941f8e2bf5c1966abd66bd744d40c85ae8195eb697ec3256bc1fc39\"]}},\"version\":1}", + "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820125140c62de47e0ec9d4075279aaf89f8e4924c3a88c825986e81394ede575d00029", + "deployedBytecode": "0x6080604052600080fd00a165627a7a72305820125140c62de47e0ec9d4075279aaf89f8e4924c3a88c825986e81394ede575d00029", + "sourceMap": "657:1266:12:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;657:1266:12;;;;;;;", + "deployedSourceMap": "657:1266:12:-;;;;;", "source": "pragma solidity >=0.4.24 <0.6.0;\n\n\n/**\n * @title Initializable\n *\n * @dev Helper contract to support initializer functions. To use it, replace\n * the constructor with a function that has the `initializer` modifier.\n * WARNING: Unlike constructors, initializer functions must be manually\n * invoked. This applies both to deploying an Initializable contract, as well\n * as extending an Initializable contract via inheritance.\n * WARNING: When used with inheritance, manual care must be taken to not invoke\n * a parent initializer twice, or ensure that all initializers are idempotent,\n * because this is not dealt with automatically as with constructors.\n */\ncontract Initializable {\n\n /**\n * @dev Indicates that the contract has been initialized.\n */\n bool private initialized;\n\n /**\n * @dev Indicates that the contract is in the process of being initialized.\n */\n bool private initializing;\n\n /**\n * @dev Modifier to use in the initializer function of a contract.\n */\n modifier initializer() {\n require(initializing || isConstructor() || !initialized, \"Contract instance has already been initialized\");\n\n bool wasInitializing = initializing;\n initializing = true;\n initialized = true;\n\n _;\n\n initializing = wasInitializing;\n }\n\n /// @dev Returns true if and only if the function is running in the constructor\n function isConstructor() private view returns (bool) {\n // extcodesize checks the size of the code stored in an address, and\n // address returns the current address. Since the code is still not\n // deployed when running a constructor, any checks on its code size will\n // yield zero, making it an effective way to detect if a contract is\n // under construction or not.\n uint256 cs;\n assembly { cs := extcodesize(address) }\n return cs == 0;\n }\n\n // Reserved storage space to allow for layout changes in the future.\n uint256[50] private ______gap;\n}\n", "sourcePath": "zos-lib/contracts/Initializable.sol", "ast": { "absolutePath": "zos-lib/contracts/Initializable.sol", "exportedSymbols": { "Initializable": [ - 4183 + 1432 ] }, - "id": 4184, + "id": 1433, "nodeType": "SourceUnit", "nodes": [ { - "id": 4129, + "id": 1378, "literals": [ "solidity", ">=", @@ -29,7 +30,7 @@ ".0" ], "nodeType": "PragmaDirective", - "src": "0:32:11" + "src": "0:32:12" }, { "baseContracts": [], @@ -37,20 +38,20 @@ "contractKind": "contract", "documentation": "@title Initializable\n * @dev Helper contract to support initializer functions. To use it, replace\nthe constructor with a function that has the `initializer` modifier.\nWARNING: Unlike constructors, initializer functions must be manually\ninvoked. This applies both to deploying an Initializable contract, as well\nas extending an Initializable contract via inheritance.\nWARNING: When used with inheritance, manual care must be taken to not invoke\na parent initializer twice, or ensure that all initializers are idempotent,\nbecause this is not dealt with automatically as with constructors.", "fullyImplemented": true, - "id": 4183, + "id": 1432, "linearizedBaseContracts": [ - 4183 + 1432 ], "name": "Initializable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 4131, + "id": 1380, "name": "initialized", "nodeType": "VariableDeclaration", - "scope": 4183, - "src": "757:24:11", + "scope": 1432, + "src": "757:24:12", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -58,10 +59,10 @@ "typeString": "bool" }, "typeName": { - "id": 4130, + "id": 1379, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "757:4:11", + "src": "757:4:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -72,11 +73,11 @@ }, { "constant": false, - "id": 4133, + "id": 1382, "name": "initializing", "nodeType": "VariableDeclaration", - "scope": 4183, - "src": "876:25:11", + "scope": 1432, + "src": "876:25:12", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -84,10 +85,10 @@ "typeString": "bool" }, "typeName": { - "id": 4132, + "id": 1381, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "876:4:11", + "src": "876:4:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -98,9 +99,9 @@ }, { "body": { - "id": 4163, + "id": 1412, "nodeType": "Block", - "src": "1010:253:11", + "src": "1010:253:12", "statements": [ { "expression": { @@ -112,7 +113,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 4142, + "id": 1391, "isConstant": false, "isLValue": false, "isPure": false, @@ -123,19 +124,19 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 4139, + "id": 1388, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4136, + "id": 1385, "name": "initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4133, - "src": "1024:12:11", + "referencedDeclaration": 1382, + "src": "1024:12:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -148,18 +149,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 4137, + "id": 1386, "name": "isConstructor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4178, - "src": "1040:13:11", + "referencedDeclaration": 1427, + "src": "1040:13:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", "typeString": "function () view returns (bool)" } }, - "id": 4138, + "id": 1387, "isConstant": false, "isLValue": false, "isPure": false, @@ -167,13 +168,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1040:15:11", + "src": "1040:15:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1024:31:11", + "src": "1024:31:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -183,7 +184,7 @@ "operator": "||", "rightExpression": { "argumentTypes": null, - "id": 4141, + "id": 1390, "isConstant": false, "isLValue": false, "isPure": false, @@ -191,15 +192,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1059:12:11", + "src": "1059:12:12", "subExpression": { "argumentTypes": null, - "id": 4140, + "id": 1389, "name": "initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4131, - "src": "1060:11:11", + "referencedDeclaration": 1380, + "src": "1060:11:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -210,7 +211,7 @@ "typeString": "bool" } }, - "src": "1024:47:11", + "src": "1024:47:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -219,14 +220,14 @@ { "argumentTypes": null, "hexValue": "436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564", - "id": 4143, + "id": 1392, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1073:48:11", + "src": "1073:48:12", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9fbba6c4dcac9134893b633b9564f36435b3f927c1d5fa152c5c14b20cecb1a4", @@ -246,21 +247,21 @@ "typeString": "literal_string \"Contract instance has already been initialized\"" } ], - "id": 4135, + "id": 1384, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4201, - 4202 + 1450, + 1451 ], - "referencedDeclaration": 4202, - "src": "1016:7:11", + "referencedDeclaration": 1451, + "src": "1016:7:12", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 4144, + "id": 1393, "isConstant": false, "isLValue": false, "isPure": false, @@ -268,28 +269,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1016:106:11", + "src": "1016:106:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 4145, + "id": 1394, "nodeType": "ExpressionStatement", - "src": "1016:106:11" + "src": "1016:106:12" }, { "assignments": [ - 4147 + 1396 ], "declarations": [ { "constant": false, - "id": 4147, + "id": 1396, "name": "wasInitializing", "nodeType": "VariableDeclaration", - "scope": 4164, - "src": "1129:20:11", + "scope": 1413, + "src": "1129:20:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -297,10 +298,10 @@ "typeString": "bool" }, "typeName": { - "id": 4146, + "id": 1395, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1129:4:11", + "src": "1129:4:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -310,39 +311,39 @@ "visibility": "internal" } ], - "id": 4149, + "id": 1398, "initialValue": { "argumentTypes": null, - "id": 4148, + "id": 1397, "name": "initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4133, - "src": "1152:12:11", + "referencedDeclaration": 1382, + "src": "1152:12:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "1129:35:11" + "src": "1129:35:12" }, { "expression": { "argumentTypes": null, - "id": 4152, + "id": 1401, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4150, + "id": 1399, "name": "initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4133, - "src": "1170:12:11", + "referencedDeclaration": 1382, + "src": "1170:12:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -353,14 +354,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 4151, + "id": 1400, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1185:4:11", + "src": "1185:4:12", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -368,32 +369,32 @@ }, "value": "true" }, - "src": "1170:19:11", + "src": "1170:19:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 4153, + "id": 1402, "nodeType": "ExpressionStatement", - "src": "1170:19:11" + "src": "1170:19:12" }, { "expression": { "argumentTypes": null, - "id": 4156, + "id": 1405, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4154, + "id": 1403, "name": "initialized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4131, - "src": "1195:11:11", + "referencedDeclaration": 1380, + "src": "1195:11:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -404,14 +405,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 4155, + "id": 1404, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1209:4:11", + "src": "1209:4:12", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -419,37 +420,37 @@ }, "value": "true" }, - "src": "1195:18:11", + "src": "1195:18:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 4157, + "id": 1406, "nodeType": "ExpressionStatement", - "src": "1195:18:11" + "src": "1195:18:12" }, { - "id": 4158, + "id": 1407, "nodeType": "PlaceholderStatement", - "src": "1220:1:11" + "src": "1220:1:12" }, { "expression": { "argumentTypes": null, - "id": 4161, + "id": 1410, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 4159, + "id": 1408, "name": "initializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4133, - "src": "1228:12:11", + "referencedDeclaration": 1382, + "src": "1228:12:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -459,58 +460,58 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 4160, + "id": 1409, "name": "wasInitializing", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4147, - "src": "1243:15:11", + "referencedDeclaration": 1396, + "src": "1243:15:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1228:30:11", + "src": "1228:30:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 4162, + "id": 1411, "nodeType": "ExpressionStatement", - "src": "1228:30:11" + "src": "1228:30:12" } ] }, "documentation": "@dev Modifier to use in the initializer function of a contract.", - "id": 4164, + "id": 1413, "name": "initializer", "nodeType": "ModifierDefinition", "parameters": { - "id": 4134, + "id": 1383, "nodeType": "ParameterList", "parameters": [], - "src": "1007:2:11" + "src": "1007:2:12" }, - "src": "987:276:11", + "src": "987:276:12", "visibility": "internal" }, { "body": { - "id": 4177, + "id": 1426, "nodeType": "Block", - "src": "1402:414:11", + "src": "1402:414:12", "statements": [ { "assignments": [], "declarations": [ { "constant": false, - "id": 4170, + "id": 1419, "name": "cs", "nodeType": "VariableDeclaration", - "scope": 4178, - "src": "1737:10:11", + "scope": 1427, + "src": "1737:10:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -518,10 +519,10 @@ "typeString": "uint256" }, "typeName": { - "id": 4169, + "id": 1418, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1737:7:11", + "src": "1737:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -531,27 +532,27 @@ "visibility": "internal" } ], - "id": 4171, + "id": 1420, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "1737:10:11" + "src": "1737:10:12" }, { "externalReferences": [ { "cs": { - "declaration": 4170, + "declaration": 1419, "isOffset": false, "isSlot": false, - "src": "1764:2:11", + "src": "1764:2:12", "valueSize": 1 } } ], - "id": 4172, + "id": 1421, "nodeType": "InlineAssembly", "operations": "{\n cs := extcodesize(address())\n}", - "src": "1753:50:11" + "src": "1753:50:12" }, { "expression": { @@ -560,19 +561,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 4175, + "id": 1424, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 4173, + "id": 1422, "name": "cs", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4170, - "src": "1804:2:11", + "referencedDeclaration": 1419, + "src": "1804:2:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -583,14 +584,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 4174, + "id": 1423, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1810:1:11", + "src": "1810:1:12", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -598,21 +599,21 @@ }, "value": "0" }, - "src": "1804:7:11", + "src": "1804:7:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 4168, - "id": 4176, + "functionReturnParameters": 1417, + "id": 1425, "nodeType": "Return", - "src": "1797:14:11" + "src": "1797:14:12" } ] }, "documentation": "@dev Returns true if and only if the function is running in the constructor", - "id": 4178, + "id": 1427, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -620,23 +621,23 @@ "name": "isConstructor", "nodeType": "FunctionDefinition", "parameters": { - "id": 4165, + "id": 1414, "nodeType": "ParameterList", "parameters": [], - "src": "1371:2:11" + "src": "1371:2:12" }, "payable": false, "returnParameters": { - "id": 4168, + "id": 1417, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 4167, + "id": 1416, "name": "", "nodeType": "VariableDeclaration", - "scope": 4178, - "src": "1396:4:11", + "scope": 1427, + "src": "1396:4:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -644,10 +645,10 @@ "typeString": "bool" }, "typeName": { - "id": 4166, + "id": 1415, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1396:4:11", + "src": "1396:4:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -657,21 +658,21 @@ "visibility": "internal" } ], - "src": "1395:6:11" + "src": "1395:6:12" }, - "scope": 4183, - "src": "1349:467:11", + "scope": 1432, + "src": "1349:467:12", "stateMutability": "view", "superFunction": null, "visibility": "private" }, { "constant": false, - "id": 4182, + "id": 1431, "name": "______gap", "nodeType": "VariableDeclaration", - "scope": 4183, - "src": "1891:29:11", + "scope": 1432, + "src": "1891:29:12", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -680,27 +681,27 @@ }, "typeName": { "baseType": { - "id": 4179, + "id": 1428, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1891:7:11", + "src": "1891:7:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 4181, + "id": 1430, "length": { "argumentTypes": null, "hexValue": "3530", - "id": 4180, + "id": 1429, "isConstant": false, "isLValue": false, "isPure": false, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1899:2:11", + "src": "1899:2:12", "subdenomination": null, "typeDescriptions": { "typeIdentifier": null, @@ -709,7 +710,7 @@ "value": "50" }, "nodeType": "ArrayTypeName", - "src": "1891:11:11", + "src": "1891:11:12", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", "typeString": "uint256[50]" @@ -719,735 +720,814 @@ "visibility": "private" } ], - "scope": 4184, - "src": "657:1266:11" + "scope": 1433, + "src": "657:1266:12" } ], - "src": "0:1924:11" + "src": "0:1924:12" }, "legacyAST": { - "absolutePath": "zos-lib/contracts/Initializable.sol", - "exportedSymbols": { - "Initializable": [ - 4183 - ] + "attributes": { + "absolutePath": "zos-lib/contracts/Initializable.sol", + "exportedSymbols": { + "Initializable": [ + 1432 + ] + } }, - "id": 4184, - "nodeType": "SourceUnit", - "nodes": [ + "children": [ { - "id": 4129, - "literals": [ - "solidity", - ">=", - "0.4", - ".24", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:11" + "attributes": { + "literals": [ + "solidity", + ">=", + "0.4", + ".24", + "<", + "0.6", + ".0" + ] + }, + "id": 1378, + "name": "PragmaDirective", + "src": "0:32:12" }, { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Initializable\n * @dev Helper contract to support initializer functions. To use it, replace\nthe constructor with a function that has the `initializer` modifier.\nWARNING: Unlike constructors, initializer functions must be manually\ninvoked. This applies both to deploying an Initializable contract, as well\nas extending an Initializable contract via inheritance.\nWARNING: When used with inheritance, manual care must be taken to not invoke\na parent initializer twice, or ensure that all initializers are idempotent,\nbecause this is not dealt with automatically as with constructors.", - "fullyImplemented": true, - "id": 4183, - "linearizedBaseContracts": [ - 4183 - ], - "name": "Initializable", - "nodeType": "ContractDefinition", - "nodes": [ + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "documentation": "@title Initializable\n * @dev Helper contract to support initializer functions. To use it, replace\nthe constructor with a function that has the `initializer` modifier.\nWARNING: Unlike constructors, initializer functions must be manually\ninvoked. This applies both to deploying an Initializable contract, as well\nas extending an Initializable contract via inheritance.\nWARNING: When used with inheritance, manual care must be taken to not invoke\na parent initializer twice, or ensure that all initializers are idempotent,\nbecause this is not dealt with automatically as with constructors.", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1432 + ], + "name": "Initializable", + "scope": 1433 + }, + "children": [ { - "constant": false, - "id": 4131, - "name": "initialized", - "nodeType": "VariableDeclaration", - "scope": 4183, - "src": "757:24:11", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "attributes": { + "constant": false, + "name": "initialized", + "scope": 1432, + "stateVariable": true, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "private" }, - "typeName": { - "id": 4130, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "757:4:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1379, + "name": "ElementaryTypeName", + "src": "757:4:12" } - }, - "value": null, - "visibility": "private" + ], + "id": 1380, + "name": "VariableDeclaration", + "src": "757:24:12" }, { - "constant": false, - "id": 4133, - "name": "initializing", - "nodeType": "VariableDeclaration", - "scope": 4183, - "src": "876:25:11", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "attributes": { + "constant": false, + "name": "initializing", + "scope": 1432, + "stateVariable": true, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "private" }, - "typeName": { - "id": 4132, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "876:4:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1381, + "name": "ElementaryTypeName", + "src": "876:4:12" } - }, - "value": null, - "visibility": "private" + ], + "id": 1382, + "name": "VariableDeclaration", + "src": "876:25:12" }, { - "body": { - "id": 4163, - "nodeType": "Block", - "src": "1010:253:11", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ + "attributes": { + "documentation": "@dev Modifier to use in the initializer function of a contract.", + "name": "initializer", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1383, + "name": "ParameterList", + "src": "1007:2:12" + }, + { + "children": [ + { + "children": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "attributes": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4139, "isConstant": false, "isLValue": false, "isPure": false, + "isStructConstructorCall": false, "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4136, - "name": "initializing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4133, - "src": "1024:12:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9fbba6c4dcac9134893b633b9564f36435b3f927c1d5fa152c5c14b20cecb1a4", + "typeString": "literal_string \"Contract instance has already been initialized\"" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1451, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1384, + "name": "Identifier", + "src": "1016:7:12" }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4137, - "name": "isConstructor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4178, - "src": "1040:13:11", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" }, - "id": 4138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1040:15:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1382, + "type": "bool", + "value": "initializing" + }, + "id": 1385, + "name": "Identifier", + "src": "1024:12:12" + }, + { + "attributes": { + "argumentTypes": null, + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1427, + "type": "function () view returns (bool)", + "value": "isConstructor" + }, + "id": 1386, + "name": "Identifier", + "src": "1040:13:12" + } + ], + "id": 1387, + "name": "FunctionCall", + "src": "1040:15:12" + } + ], + "id": 1388, + "name": "BinaryOperation", + "src": "1024:31:12" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1380, + "type": "bool", + "value": "initialized" + }, + "id": 1389, + "name": "Identifier", + "src": "1060:11:12" + } + ], + "id": 1390, + "name": "UnaryOperation", + "src": "1059:12:12" + } + ], + "id": 1391, + "name": "BinaryOperation", + "src": "1024:47:12" }, - "src": "1024:31:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + { + "attributes": { + "argumentTypes": null, + "hexvalue": "436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Contract instance has already been initialized\"", + "value": "Contract instance has already been initialized" + }, + "id": 1392, + "name": "Literal", + "src": "1073:48:12" } + ], + "id": 1393, + "name": "FunctionCall", + "src": "1016:106:12" + } + ], + "id": 1394, + "name": "ExpressionStatement", + "src": "1016:106:12" + }, + { + "attributes": { + "assignments": [ + 1396 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "wasInitializing", + "scope": 1413, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "value": null, + "visibility": "internal" }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1395, + "name": "ElementaryTypeName", + "src": "1129:4:12" + } + ], + "id": 1396, + "name": "VariableDeclaration", + "src": "1129:20:12" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1382, + "type": "bool", + "value": "initializing" + }, + "id": 1397, + "name": "Identifier", + "src": "1152:12:12" + } + ], + "id": 1398, + "name": "VariableDeclarationStatement", + "src": "1129:35:12" + }, + { + "children": [ + { + "attributes": { "argumentTypes": null, - "id": 4141, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1059:12:11", - "subExpression": { - "argumentTypes": null, - "id": 4140, - "name": "initialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4131, - "src": "1060:11:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1382, + "type": "bool", + "value": "initializing" + }, + "id": 1399, + "name": "Identifier", + "src": "1170:12:12" }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1400, + "name": "Literal", + "src": "1185:4:12" } - }, - "src": "1024:47:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, + ], + "id": 1401, + "name": "Assignment", + "src": "1170:19:12" + } + ], + "id": 1402, + "name": "ExpressionStatement", + "src": "1170:19:12" + }, + { + "children": [ { - "argumentTypes": null, - "hexValue": "436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564", - "id": 4143, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1073:48:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9fbba6c4dcac9134893b633b9564f36435b3f927c1d5fa152c5c14b20cecb1a4", - "typeString": "literal_string \"Contract instance has already been initialized\"" + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" }, - "value": "Contract instance has already been initialized" + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1380, + "type": "bool", + "value": "initialized" + }, + "id": 1403, + "name": "Identifier", + "src": "1195:11:12" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1404, + "name": "Literal", + "src": "1209:4:12" + } + ], + "id": 1405, + "name": "Assignment", + "src": "1195:18:12" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + "id": 1406, + "name": "ExpressionStatement", + "src": "1195:18:12" + }, + { + "id": 1407, + "name": "PlaceholderStatement", + "src": "1220:1:12" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" }, - { - "typeIdentifier": "t_stringliteral_9fbba6c4dcac9134893b633b9564f36435b3f927c1d5fa152c5c14b20cecb1a4", - "typeString": "literal_string \"Contract instance has already been initialized\"" - } - ], - "id": 4135, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "1016:7:11", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1382, + "type": "bool", + "value": "initializing" + }, + "id": 1408, + "name": "Identifier", + "src": "1228:12:12" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1396, + "type": "bool", + "value": "wasInitializing" + }, + "id": 1409, + "name": "Identifier", + "src": "1243:15:12" + } + ], + "id": 1410, + "name": "Assignment", + "src": "1228:30:12" } - }, - "id": 4144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1016:106:11", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4145, - "nodeType": "ExpressionStatement", - "src": "1016:106:11" + ], + "id": 1411, + "name": "ExpressionStatement", + "src": "1228:30:12" + } + ], + "id": 1412, + "name": "Block", + "src": "1010:253:12" + } + ], + "id": 1413, + "name": "ModifierDefinition", + "src": "987:276:12" + }, + { + "attributes": { + "constant": true, + "documentation": "@dev Returns true if and only if the function is running in the constructor", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "isConstructor", + "payable": false, + "scope": 1432, + "stateMutability": "view", + "superFunction": null, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] }, - { - "assignments": [ - 4147 - ], - "declarations": [ - { + "children": [], + "id": 1414, + "name": "ParameterList", + "src": "1371:2:12" + }, + { + "children": [ + { + "attributes": { "constant": false, - "id": 4147, - "name": "wasInitializing", - "nodeType": "VariableDeclaration", - "scope": 4164, - "src": "1129:20:11", + "name": "", + "scope": 1427, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4146, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1129:4:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, + "type": "bool", "value": null, "visibility": "internal" - } - ], - "id": 4149, - "initialValue": { - "argumentTypes": null, - "id": 4148, - "name": "initializing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4133, - "src": "1152:12:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1129:35:11" - }, - { - "expression": { - "argumentTypes": null, - "id": 4152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4150, - "name": "initializing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4133, - "src": "1170:12:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 4151, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1185:4:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" }, - "src": "1170:19:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4153, - "nodeType": "ExpressionStatement", - "src": "1170:19:11" - }, - { - "expression": { - "argumentTypes": null, - "id": 4156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4154, - "name": "initialized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4131, - "src": "1195:11:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1415, + "name": "ElementaryTypeName", + "src": "1396:4:12" } + ], + "id": 1416, + "name": "VariableDeclaration", + "src": "1396:4:12" + } + ], + "id": 1417, + "name": "ParameterList", + "src": "1395:6:12" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + null + ], + "initialValue": null }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 4155, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1209:4:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" + "children": [ + { + "attributes": { + "constant": false, + "name": "cs", + "scope": 1427, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1418, + "name": "ElementaryTypeName", + "src": "1737:7:12" + } + ], + "id": 1419, + "name": "VariableDeclaration", + "src": "1737:10:12" + } + ], + "id": 1420, + "name": "VariableDeclarationStatement", + "src": "1737:10:12" + }, + { + "attributes": { + "externalReferences": [ + { + "cs": { + "declaration": 1419, + "isOffset": false, + "isSlot": false, + "src": "1764:2:12", + "valueSize": 1 + } + } + ], + "operations": "{\n cs := extcodesize(address())\n}" }, - "src": "1195:18:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "children": [], + "id": 1421, + "name": "InlineAssembly", + "src": "1753:50:12" }, - "id": 4157, - "nodeType": "ExpressionStatement", - "src": "1195:18:11" - }, - { - "id": 4158, - "nodeType": "PlaceholderStatement", - "src": "1220:1:11" - }, - { - "expression": { - "argumentTypes": null, - "id": 4161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4159, - "name": "initializing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4133, - "src": "1228:12:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + { + "attributes": { + "functionReturnParameters": 1417 }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4160, - "name": "wasInitializing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4147, - "src": "1243:15:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "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, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1419, + "type": "uint256", + "value": "cs" + }, + "id": 1422, + "name": "Identifier", + "src": "1804:2:12" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1423, + "name": "Literal", + "src": "1810:1:12" + } + ], + "id": 1424, + "name": "BinaryOperation", + "src": "1804:7:12" } - }, - "src": "1228:30:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4162, - "nodeType": "ExpressionStatement", - "src": "1228:30:11" - } - ] - }, - "documentation": "@dev Modifier to use in the initializer function of a contract.", - "id": 4164, - "name": "initializer", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 4134, - "nodeType": "ParameterList", - "parameters": [], - "src": "1007:2:11" - }, - "src": "987:276:11", - "visibility": "internal" + ], + "id": 1425, + "name": "Return", + "src": "1797:14:12" + } + ], + "id": 1426, + "name": "Block", + "src": "1402:414:12" + } + ], + "id": 1427, + "name": "FunctionDefinition", + "src": "1349:467:12" }, { - "body": { - "id": 4177, - "nodeType": "Block", - "src": "1402:414:11", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 4170, - "name": "cs", - "nodeType": "VariableDeclaration", - "scope": 4178, - "src": "1737:10:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4169, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1737:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4171, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "1737:10:11" - }, - { - "externalReferences": [ - { - "cs": { - "declaration": 4170, - "isOffset": false, - "isSlot": false, - "src": "1764:2:11", - "valueSize": 1 - } - } - ], - "id": 4172, - "nodeType": "InlineAssembly", - "operations": "{\n cs := extcodesize(address())\n}", - "src": "1753:50:11" + "attributes": { + "constant": false, + "name": "______gap", + "scope": 1432, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256[50]", + "value": null, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "uint256[50]" }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4173, - "name": "cs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4170, - "src": "1804:2:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { + "id": 1428, + "name": "ElementaryTypeName", + "src": "1891:7:12" + }, + { + "attributes": { "argumentTypes": null, - "hexValue": "30", - "id": 4174, + "hexvalue": "3530", "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "1810:1:11", "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "token": "number", + "type": null, + "value": "50" }, - "src": "1804:7:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4168, - "id": 4176, - "nodeType": "Return", - "src": "1797:14:11" - } - ] - }, - "documentation": "@dev Returns true if and only if the function is running in the constructor", - "id": 4178, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isConstructor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4165, - "nodeType": "ParameterList", - "parameters": [], - "src": "1371:2:11" - }, - "payable": false, - "returnParameters": { - "id": 4168, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4167, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4178, - "src": "1396:4:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4166, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1396:4:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1395:6:11" - }, - "scope": 4183, - "src": "1349:467:11", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "constant": false, - "id": 4182, - "name": "______gap", - "nodeType": "VariableDeclaration", - "scope": 4183, - "src": "1891:29:11", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$50_storage", - "typeString": "uint256[50]" - }, - "typeName": { - "baseType": { - "id": 4179, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1891:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4181, - "length": { - "argumentTypes": null, - "hexValue": "3530", - "id": 4180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1899:2:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - }, - "value": "50" - }, - "nodeType": "ArrayTypeName", - "src": "1891:11:11", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", - "typeString": "uint256[50]" + "id": 1429, + "name": "Literal", + "src": "1899:2:12" + } + ], + "id": 1430, + "name": "ArrayTypeName", + "src": "1891:11:12" } - }, - "value": null, - "visibility": "private" + ], + "id": 1431, + "name": "VariableDeclaration", + "src": "1891:29:12" } ], - "scope": 4184, - "src": "657:1266:11" + "id": 1432, + "name": "ContractDefinition", + "src": "657:1266:12" } ], - "src": "0:1924:11" + "id": 1433, + "name": "SourceUnit", + "src": "0:1924:12" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.4.25+commit.59dbf8f1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.1", - "updatedAt": "2019-08-15T18:51:44.486Z" + "schemaVersion": "3.3.4", + "updatedAt": "2021-04-02T09:51:14.595Z", + "devdoc": { + "methods": {}, + "title": "Initializable" + }, + "userdoc": { + "methods": {} + } } \ No newline at end of file diff --git a/build/contracts/PropsRewards.json b/build/contracts/PropsRewards.json index 5cf542f3..79282b16 100644 --- a/build/contracts/PropsRewards.json +++ b/build/contracts/PropsRewards.json @@ -79,6 +79,34 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "PERMIT_TYPEHASH", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "DOMAIN_SEPARATOR", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": false, "inputs": [ @@ -135,6 +163,39 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "nonces", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "MY_CHAIN_ID", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": false, "inputs": [ @@ -206,65 +267,47 @@ }, { "constant": true, - "inputs": [], - "name": "controller", - "outputs": [ + "inputs": [ { "name": "", "type": "address" } ], + "name": "minters", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], "payable": false, "stateMutability": "view", "type": "function" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "rewardsDay", - "type": "uint256" - }, - { - "indexed": true, - "name": "rewardsHash", - "type": "bytes32" - }, + "constant": true, + "inputs": [], + "name": "controller", + "outputs": [ { - "indexed": true, - "name": "validator", + "name": "", "type": "address" } ], - "name": "DailyRewardsSubmitted", - "type": "event" + "payable": false, + "stateMutability": "view", + "type": "function" }, { "anonymous": false, "inputs": [ { "indexed": true, - "name": "rewardsDay", - "type": "uint256" - }, - { - "indexed": true, - "name": "rewardsHash", - "type": "bytes32" - }, - { - "indexed": false, - "name": "numOfApplications", - "type": "uint256" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" + "name": "newController", + "type": "address" } ], - "name": "DailyRewardsApplicationsMinted", + "name": "ControllerUpdated", "type": "event" }, { @@ -272,26 +315,21 @@ "inputs": [ { "indexed": true, - "name": "rewardsDay", - "type": "uint256" + "name": "from", + "type": "address" }, { "indexed": true, - "name": "rewardsHash", - "type": "bytes32" - }, - { - "indexed": false, - "name": "numOfValidators", - "type": "uint256" + "name": "to", + "type": "address" }, { "indexed": false, - "name": "amount", + "name": "value", "type": "uint256" } ], - "name": "DailyRewardsValidatorsMinted", + "name": "Transfer", "type": "event" }, { @@ -299,181 +337,110 @@ "inputs": [ { "indexed": true, - "name": "id", - "type": "address" - }, - { - "indexed": true, - "name": "entityType", - "type": "uint8" - }, - { - "indexed": false, - "name": "name", - "type": "bytes32" - }, - { - "indexed": false, - "name": "rewardsAddress", + "name": "owner", "type": "address" }, { "indexed": true, - "name": "sidechainAddress", + "name": "spender", "type": "address" - } - ], - "name": "EntityUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "param", - "type": "uint8" - }, - { - "indexed": false, - "name": "newValue", - "type": "uint256" - }, - { - "indexed": false, - "name": "oldValue", - "type": "uint256" }, { "indexed": false, - "name": "rewardsDay", - "type": "uint256" - } - ], - "name": "ParameterUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "validatorsList", - "type": "address[]" - }, - { - "indexed": true, - "name": "rewardsDay", + "name": "value", "type": "uint256" } ], - "name": "ValidatorsListUpdated", + "name": "Approval", "type": "event" }, { - "anonymous": false, + "constant": false, "inputs": [ { - "indexed": false, - "name": "applicationsList", - "type": "address[]" - }, - { - "indexed": true, - "name": "rewardsDay", - "type": "uint256" + "name": "_controller", + "type": "address" } ], - "name": "ApplicationsListUpdated", - "type": "event" + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, + "constant": false, "inputs": [ { - "indexed": true, - "name": "newController", - "type": "address" + "name": "_tokenName", + "type": "string" } ], - "name": "ControllerUpdated", - "type": "event" + "name": "initializePermitUpgrade", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, + "constant": false, "inputs": [ { - "indexed": true, - "name": "applicationId", + "name": "_owner", "type": "address" }, { - "indexed": true, - "name": "userId", - "type": "bytes32" - }, - { - "indexed": true, - "name": "to", + "name": "_spender", "type": "address" }, { - "indexed": false, - "name": "amount", + "name": "_amount", "type": "uint256" }, { - "indexed": false, - "name": "rewardsAddress", - "type": "address" - } - ], - "name": "Settlement", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + "name": "_deadline", + "type": "uint256" + }, { - "indexed": true, - "name": "from", - "type": "address" + "name": "_v", + "type": "uint8" }, { - "indexed": true, - "name": "to", - "type": "address" + "name": "_r", + "type": "bytes32" }, { - "indexed": false, - "name": "value", - "type": "uint256" + "name": "_s", + "type": "bytes32" } ], - "name": "Transfer", - "type": "event" + "name": "permit", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, + "constant": false, "inputs": [ { - "indexed": true, - "name": "owner", + "name": "_token", "type": "address" }, { - "indexed": true, - "name": "spender", + "name": "_to", "type": "address" }, { - "indexed": false, - "name": "value", + "name": "_amount", "type": "uint256" } ], - "name": "Approval", - "type": "event" + "name": "reclaimToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" }, { "constant": false, @@ -481,17 +448,9 @@ { "name": "_controller", "type": "address" - }, - { - "name": "_minSecondsBetweenDays", - "type": "uint256" - }, - { - "name": "_rewardsStartTimestamp", - "type": "uint256" } ], - "name": "initializePostRewardsUpgrade1", + "name": "updateController", "outputs": [], "payable": false, "stateMutability": "nonpayable", @@ -501,15 +460,11 @@ "constant": false, "inputs": [ { - "name": "_rewardsDay", - "type": "uint256" - }, - { - "name": "_validators", - "type": "address[]" + "name": "_minter", + "type": "address" } ], - "name": "setValidators", + "name": "addMinter", "outputs": [], "payable": false, "stateMutability": "nonpayable", @@ -519,149 +474,11 @@ "constant": false, "inputs": [ { - "name": "_rewardsDay", - "type": "uint256" - }, - { - "name": "_applications", - "type": "address[]" - } - ], - "name": "setApplications", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_entityType", - "type": "uint8" - }, - { - "name": "_rewardsDay", - "type": "uint256" - } - ], - "name": "getEntities", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_rewardsDay", - "type": "uint256" - }, - { - "name": "_rewardsHash", - "type": "bytes32" - }, - { - "name": "_applications", - "type": "address[]" - }, - { - "name": "_amounts", - "type": "uint256[]" - } - ], - "name": "submitDailyRewards", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_controller", - "type": "address" - } - ], - "name": "updateController", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_name", - "type": "uint8" - }, - { - "name": "_rewardsDay", - "type": "uint256" - } - ], - "name": "getParameter", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_name", - "type": "uint8" - }, - { - "name": "_value", - "type": "uint256" - }, - { - "name": "_rewardsDay", - "type": "uint256" - } - ], - "name": "updateParameter", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_entityType", - "type": "uint8" - }, - { - "name": "_name", - "type": "bytes32" - }, - { - "name": "_rewardsAddress", - "type": "address" - }, - { - "name": "_sidechainAddress", + "name": "_minter", "type": "address" } ], - "name": "updateEntity", + "name": "removeMinter", "outputs": [], "payable": false, "stateMutability": "nonpayable", @@ -671,15 +488,7 @@ "constant": false, "inputs": [ { - "name": "_applicationAddress", - "type": "address" - }, - { - "name": "_userId", - "type": "bytes32" - }, - { - "name": "_to", + "name": "_account", "type": "address" }, { @@ -687,31 +496,32 @@ "type": "uint256" } ], - "name": "settle", + "name": "mint", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50612a5e806100206000396000f30060806040526004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306cb5b6614610122578063095ea7b314610165578063098bfa9f146101ca578063162663001461025957806318160ddd1461029d57806323b872dd146102c85780632ab4d0521461034d57806339509351146103785780634f92caf8146103dd57806357ece4bc1461042b57806363568502146104ec57806370a08231146105175780637492fdda1461056e57806396e88327146105de578063a457c2d71461065c578063a9059cbb146106c1578063c7ed71a514610726578063dd62ed3e146107a1578063e795594d14610818578063e9d2c4b314610888578063f77c4791146108df575b600080fd5b34801561012e57600080fd5b50610163600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610936565b005b34801561017157600080fd5b506101b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b4d565b604051808215151515815260200191505060405180910390f35b3480156101d657600080fd5b50610202600480360381019080803560ff16906020019092919080359060200190929190505050610b64565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561024557808201518184015260208101905061022a565b505050509050019250505060405180910390f35b34801561026557600080fd5b5061029b600480360381019080803560ff1690602001909291908035906020019092919080359060200190929190505050610c89565b005b3480156102a957600080fd5b506102b2610ec6565b6040518082815260200191505060405180910390f35b3480156102d457600080fd5b50610333600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ed0565b604051808215151515815260200191505060405180910390f35b34801561035957600080fd5b50610362610f81565b6040518082815260200191505060405180910390f35b34801561038457600080fd5b506103c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f87565b604051808215151515815260200191505060405180910390f35b3480156103e957600080fd5b50610415600480360381019080803560ff1690602001909291908035906020019092919050505061102c565b6040518082815260200191505060405180910390f35b34801561043757600080fd5b506104ea60048036038101908080359060200190929190803560001916906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506110fb565b005b3480156104f857600080fd5b506105016114c1565b6040518082815260200191505060405180910390f35b34801561052357600080fd5b50610558600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114c7565b6040518082815260200191505060405180910390f35b34801561057a57600080fd5b506105dc6004803603810190808035906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611510565b005b3480156105ea57600080fd5b5061065a600480360381019080803560ff1690602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611727565b005b34801561066857600080fd5b506106a7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118ec565b604051808215151515815260200191505060405180910390f35b3480156106cd57600080fd5b5061070c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611991565b604051808215151515815260200191505060405180910390f35b34801561073257600080fd5b5061079f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119a8565b005b3480156107ad57600080fd5b50610802600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b85565b6040518082815260200191505060405180910390f35b34801561082457600080fd5b506108866004803603810190808035906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611c0c565b005b34801561089457600080fd5b506108dd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611e23565b005b3480156108eb57600080fd5b506108f4611e3b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b608260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610ac6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f436f6e74726f6c6c65722063616e6e6f7420626520746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80608260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f1304018cfe79741dcf02ba6b61d39cc4757d59395d03224d9925c7aa8300214660405160405180910390a250565b6000610b5a338484611e61565b6001905092915050565b606073__PropsRewardsLib_______________________6389932735606885856040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180848152602001836001811115610bc557fe5b60ff168152602001828152602001935050505060006040518083038186803b158015610bf057600080fd5b505af4158015610c04573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015610c2e57600080fd5b810190808051640100000000811115610c4657600080fd5b82810190506020810184811115610c5c57600080fd5b8151856020820283011164010000000082111715610c7957600080fd5b5050929190505050905092915050565b608260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d4e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b73__PropsRewardsLib_______________________6311cb33da60688585856040518563ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180858152602001846003811115610dae57fe5b60ff16815260200183815260200182815260200194505050505060006040518083038186803b158015610de057600080fd5b505af4158015610df4573d6000803e3d6000fd5b505050507fd3ee560e0e71d87fde0453f24eac52dd8f01332349f8d1ef9e005d1cc3b82fb48360686004016000866003811115610e2d57fe5b81526020019081526020016000206000015460686004016000876003811115610e5257fe5b81526020019081526020016000206001015460686004016000886003811115610e7757fe5b81526020019081526020016000206002015460405180856003811115610e9957fe5b60ff16815260200184815260200183815260200182815260200194505050505060405180910390a1505050565b6000603554905090565b6000610edd848484611fc4565b610f768433610f7185603460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121e290919063ffffffff16565b611e61565b600190509392505050565b60805481565b6000611022338461101d85603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220390919063ffffffff16565b611e61565b6001905092915050565b600073__PropsRewardsLib_______________________63d81b7050606885856040518463ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183600381111561108d57fe5b60ff168152602001828152602001935050505060206040518083038186803b1580156110b857600080fd5b505af41580156110cc573d6000803e3d6000fd5b505050506040513d60208110156110e257600080fd5b8101908080519060200190929190505050905092915050565b60008060006068600f01600401548711156112135773__PropsRewardsLib_______________________6314a68c38606880600f01600401546068600f016003015460006040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184815260200183600019166000191681526020018215151515815260200194505050505060206040518083038186803b1580156111b057600080fd5b505af41580156111c4573d6000803e3d6000fd5b505050506040513d60208110156111da57600080fd5b810190808051906020019092919050505092506000831115611212576112116068600f01600401546068600f016003015485612224565b5b5b73__PropsRewardsLib_______________________630f9887a060688989898961123b610ec6565b6040518763ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018087815260200186815260200185600019166000191681526020018060200180602001848152602001838103835286818151815260200191508051906020019060200280838360005b838110156112cd5780820151818401526020810190506112b2565b50505050905001838103825285818151815260200191508051906020019060200280838360005b8381101561130f5780820151818401526020810190506112f4565b505050509050019850505050505050505060206040518083038186803b15801561133857600080fd5b505af415801561134c573d6000803e3d6000fd5b505050506040513d602081101561136257600080fd5b81019080805190602001909291905050509150600082111561138c5761138b8787878786612417565b5b73__PropsRewardsLib_______________________6314a68c386068898960016040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184815260200183600019166000191681526020018215151515815260200194505050505060206040518083038186803b15801561141d57600080fd5b505af4158015611431573d6000803e3d6000fd5b505050506040513d602081101561144757600080fd5b81019080805190602001909291905050509050600081111561146f5761146e878783612224565b5b3373ffffffffffffffffffffffffffffffffffffffff168660001916887f47a75fa3188612bc1341726d7859491a32bf875dd309474f712950354f73c5a760405160405180910390a450505050505050565b60815481565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b608260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b73__PropsRewardsLib_______________________63cc1b8c9c606884846040518463ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561166d578082015181840152602081019050611652565b5050505090500194505050505060006040518083038186803b15801561169257600080fd5b505af41580156116a6573d6000803e3d6000fd5b50505050817f426b639e1d49f62952a4d3282b37648fb8c47ac20b15e01548c104b75c787c0c826040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156117105780820151818401526020810190506116f5565b505050509050019250505060405180910390a25050565b73__PropsRewardsLib_______________________6346e3a2986068868686866040518663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018086815260200185600181111561178857fe5b60ff16815260200184600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019550505050505060006040518083038186803b15801561182157600080fd5b505af4158015611835573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1684600181111561185c57fe5b3373ffffffffffffffffffffffffffffffffffffffff167fac4aacb75e6f9ac6f2fee64077e9436dfb1be853b1a850b7863cf1433f0e752886866040518083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a450505050565b6000611987338461198285603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121e290919063ffffffff16565b611e61565b6001905092915050565b600061199e338484611fc4565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16606860000160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611ad6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f736574746c65206d6179206f6e6c792062652063616c6c656420627920616e2081526020017f6170706c69636174696f6e00000000000000000000000000000000000000000081525060400191505060405180910390fd5b611ae1338383611fc4565b8173ffffffffffffffffffffffffffffffffffffffff1683600019168573ffffffffffffffffffffffffffffffffffffffff167f53b5073ff19aef23b167e83c6be14817da210375bec35b4c0ccfc0cded9a23f88433604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a450505050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b608260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cd1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b73__PropsRewardsLib_______________________6363cad06a606884846040518463ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200180602001828103825283818151815260200191508051906020019060200280838360005b83811015611d69578082015181840152602081019050611d4e565b5050505090500194505050505060006040518083038186803b158015611d8e57600080fd5b505af4158015611da2573d6000803e3d6000fd5b50505050817f25071f4c6ebdf865da246a5caf6a5bbcbe50f6443e15309b97b10043c6beb1d9826040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015611e0c578082015181840152602081019050611df1565b505050509050019250505060405180910390a25050565b600060129050611e358482858561251e565b50505050565b608260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611e9d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611ed957600080fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561201257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561204e57600080fd5b6120a081603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121e290919063ffffffff16565b603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061213581603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220390919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000808383111515156121f457600080fd5b82840390508091505092915050565b600080828401905083811015151561221a57600080fd5b8091505092915050565b6000806068600f0160000160008560001916600019168152602001908152602001600020600101805490509150600090505b8181101561233557612328606860020160006068600f01600001600088600019166000191681526020019081526020016000206001018481548110151561229957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846128f2565b8080600101915050612256565b73__PropsRewardsLib_______________________63cb27ba3e6068866040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060006040518083038186803b1580156123b157600080fd5b505af41580156123c5573d6000803e3d6000fd5b505050508360001916857f07efea0e0eeb975e5404139e47d884d2705a0660a3456aa31c5694df1d8c5f1484858702604051808381526020018281526020019250505060405180910390a35050505050565b60008090505b83518110156124d0576124c360686000016000868481518110151561243e57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684838151811015156124b457fe5b906020019060200201516128f2565b808060010191505061241d565b8460001916867fcc511f1b8ddd8ab10bcb89c26361da1c99b826350e3f38ee438134149032568a865185604051808381526020018281526020019250505060405180910390a3505050505050565b60006080541415156125be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f496e697469616c697a6520726577617264732075706772616465312063616e2081526020017f68617070656e206f6e6c79206f6e63650000000000000000000000000000000081525060400191505060405180910390fd5b83608260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073__PropsRewardsLib_______________________6311cb33da606860006187be60006040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184600381111561266357fe5b60ff16815260200183815260200182815260200194505050505060006040518083038186803b15801561269557600080fd5b505af41580156126a9573d6000803e3d6000fd5b5050505073__PropsRewardsLib_______________________6311cb33da606860016308f0d18060006040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184600381111561271357fe5b60ff16815260200183815260200182815260200194505050505060006040518083038186803b15801561274557600080fd5b505af4158015612759573d6000803e3d6000fd5b5050505073__PropsRewardsLib_______________________6311cb33da606860026302faf08060006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018460038111156127c357fe5b60ff16815260200183815260200182815260200194505050505060006040518083038186803b1580156127f557600080fd5b505af4158015612809573d6000803e3d6000fd5b5050505073__PropsRewardsLib_______________________6311cb33da6068600361072560006040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184600381111561287157fe5b60ff16815260200183815260200182815260200194505050505060006040518083038186803b1580156128a357600080fd5b505af41580156128b7573d6000803e3d6000fd5b5050505082600a0a633b9aca000260808190556068601601819055508060818190556068601501819055508160686014018190555050505050565b60008273ffffffffffffffffffffffffffffffffffffffff161415151561291857600080fd5b61292d8160355461220390919063ffffffff16565b60358190555061298581603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220390919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505600a165627a7a7230582087dacd508d0757b23b039187dc6b2b83d42b3f97045da9a19f28f32333ccfbdd0029", - "deployedBytecode": "0x60806040526004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306cb5b6614610122578063095ea7b314610165578063098bfa9f146101ca578063162663001461025957806318160ddd1461029d57806323b872dd146102c85780632ab4d0521461034d57806339509351146103785780634f92caf8146103dd57806357ece4bc1461042b57806363568502146104ec57806370a08231146105175780637492fdda1461056e57806396e88327146105de578063a457c2d71461065c578063a9059cbb146106c1578063c7ed71a514610726578063dd62ed3e146107a1578063e795594d14610818578063e9d2c4b314610888578063f77c4791146108df575b600080fd5b34801561012e57600080fd5b50610163600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610936565b005b34801561017157600080fd5b506101b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b4d565b604051808215151515815260200191505060405180910390f35b3480156101d657600080fd5b50610202600480360381019080803560ff16906020019092919080359060200190929190505050610b64565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561024557808201518184015260208101905061022a565b505050509050019250505060405180910390f35b34801561026557600080fd5b5061029b600480360381019080803560ff1690602001909291908035906020019092919080359060200190929190505050610c89565b005b3480156102a957600080fd5b506102b2610ec6565b6040518082815260200191505060405180910390f35b3480156102d457600080fd5b50610333600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ed0565b604051808215151515815260200191505060405180910390f35b34801561035957600080fd5b50610362610f81565b6040518082815260200191505060405180910390f35b34801561038457600080fd5b506103c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f87565b604051808215151515815260200191505060405180910390f35b3480156103e957600080fd5b50610415600480360381019080803560ff1690602001909291908035906020019092919050505061102c565b6040518082815260200191505060405180910390f35b34801561043757600080fd5b506104ea60048036038101908080359060200190929190803560001916906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506110fb565b005b3480156104f857600080fd5b506105016114c1565b6040518082815260200191505060405180910390f35b34801561052357600080fd5b50610558600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114c7565b6040518082815260200191505060405180910390f35b34801561057a57600080fd5b506105dc6004803603810190808035906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611510565b005b3480156105ea57600080fd5b5061065a600480360381019080803560ff1690602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611727565b005b34801561066857600080fd5b506106a7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118ec565b604051808215151515815260200191505060405180910390f35b3480156106cd57600080fd5b5061070c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611991565b604051808215151515815260200191505060405180910390f35b34801561073257600080fd5b5061079f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119a8565b005b3480156107ad57600080fd5b50610802600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b85565b6040518082815260200191505060405180910390f35b34801561082457600080fd5b506108866004803603810190808035906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611c0c565b005b34801561089457600080fd5b506108dd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611e23565b005b3480156108eb57600080fd5b506108f4611e3b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b608260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610ac6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f436f6e74726f6c6c65722063616e6e6f7420626520746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80608260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f1304018cfe79741dcf02ba6b61d39cc4757d59395d03224d9925c7aa8300214660405160405180910390a250565b6000610b5a338484611e61565b6001905092915050565b606073__PropsRewardsLib_______________________6389932735606885856040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180848152602001836001811115610bc557fe5b60ff168152602001828152602001935050505060006040518083038186803b158015610bf057600080fd5b505af4158015610c04573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015610c2e57600080fd5b810190808051640100000000811115610c4657600080fd5b82810190506020810184811115610c5c57600080fd5b8151856020820283011164010000000082111715610c7957600080fd5b5050929190505050905092915050565b608260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d4e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b73__PropsRewardsLib_______________________6311cb33da60688585856040518563ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180858152602001846003811115610dae57fe5b60ff16815260200183815260200182815260200194505050505060006040518083038186803b158015610de057600080fd5b505af4158015610df4573d6000803e3d6000fd5b505050507fd3ee560e0e71d87fde0453f24eac52dd8f01332349f8d1ef9e005d1cc3b82fb48360686004016000866003811115610e2d57fe5b81526020019081526020016000206000015460686004016000876003811115610e5257fe5b81526020019081526020016000206001015460686004016000886003811115610e7757fe5b81526020019081526020016000206002015460405180856003811115610e9957fe5b60ff16815260200184815260200183815260200182815260200194505050505060405180910390a1505050565b6000603554905090565b6000610edd848484611fc4565b610f768433610f7185603460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121e290919063ffffffff16565b611e61565b600190509392505050565b60805481565b6000611022338461101d85603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220390919063ffffffff16565b611e61565b6001905092915050565b600073__PropsRewardsLib_______________________63d81b7050606885856040518463ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183600381111561108d57fe5b60ff168152602001828152602001935050505060206040518083038186803b1580156110b857600080fd5b505af41580156110cc573d6000803e3d6000fd5b505050506040513d60208110156110e257600080fd5b8101908080519060200190929190505050905092915050565b60008060006068600f01600401548711156112135773__PropsRewardsLib_______________________6314a68c38606880600f01600401546068600f016003015460006040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184815260200183600019166000191681526020018215151515815260200194505050505060206040518083038186803b1580156111b057600080fd5b505af41580156111c4573d6000803e3d6000fd5b505050506040513d60208110156111da57600080fd5b810190808051906020019092919050505092506000831115611212576112116068600f01600401546068600f016003015485612224565b5b5b73__PropsRewardsLib_______________________630f9887a060688989898961123b610ec6565b6040518763ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018087815260200186815260200185600019166000191681526020018060200180602001848152602001838103835286818151815260200191508051906020019060200280838360005b838110156112cd5780820151818401526020810190506112b2565b50505050905001838103825285818151815260200191508051906020019060200280838360005b8381101561130f5780820151818401526020810190506112f4565b505050509050019850505050505050505060206040518083038186803b15801561133857600080fd5b505af415801561134c573d6000803e3d6000fd5b505050506040513d602081101561136257600080fd5b81019080805190602001909291905050509150600082111561138c5761138b8787878786612417565b5b73__PropsRewardsLib_______________________6314a68c386068898960016040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184815260200183600019166000191681526020018215151515815260200194505050505060206040518083038186803b15801561141d57600080fd5b505af4158015611431573d6000803e3d6000fd5b505050506040513d602081101561144757600080fd5b81019080805190602001909291905050509050600081111561146f5761146e878783612224565b5b3373ffffffffffffffffffffffffffffffffffffffff168660001916887f47a75fa3188612bc1341726d7859491a32bf875dd309474f712950354f73c5a760405160405180910390a450505050505050565b60815481565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b608260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b73__PropsRewardsLib_______________________63cc1b8c9c606884846040518463ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561166d578082015181840152602081019050611652565b5050505090500194505050505060006040518083038186803b15801561169257600080fd5b505af41580156116a6573d6000803e3d6000fd5b50505050817f426b639e1d49f62952a4d3282b37648fb8c47ac20b15e01548c104b75c787c0c826040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156117105780820151818401526020810190506116f5565b505050509050019250505060405180910390a25050565b73__PropsRewardsLib_______________________6346e3a2986068868686866040518663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018086815260200185600181111561178857fe5b60ff16815260200184600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019550505050505060006040518083038186803b15801561182157600080fd5b505af4158015611835573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1684600181111561185c57fe5b3373ffffffffffffffffffffffffffffffffffffffff167fac4aacb75e6f9ac6f2fee64077e9436dfb1be853b1a850b7863cf1433f0e752886866040518083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a450505050565b6000611987338461198285603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121e290919063ffffffff16565b611e61565b6001905092915050565b600061199e338484611fc4565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16606860000160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611ad6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f736574746c65206d6179206f6e6c792062652063616c6c656420627920616e2081526020017f6170706c69636174696f6e00000000000000000000000000000000000000000081525060400191505060405180910390fd5b611ae1338383611fc4565b8173ffffffffffffffffffffffffffffffffffffffff1683600019168573ffffffffffffffffffffffffffffffffffffffff167f53b5073ff19aef23b167e83c6be14817da210375bec35b4c0ccfc0cded9a23f88433604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a450505050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b608260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cd1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b73__PropsRewardsLib_______________________6363cad06a606884846040518463ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200180602001828103825283818151815260200191508051906020019060200280838360005b83811015611d69578082015181840152602081019050611d4e565b5050505090500194505050505060006040518083038186803b158015611d8e57600080fd5b505af4158015611da2573d6000803e3d6000fd5b50505050817f25071f4c6ebdf865da246a5caf6a5bbcbe50f6443e15309b97b10043c6beb1d9826040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015611e0c578082015181840152602081019050611df1565b505050509050019250505060405180910390a25050565b600060129050611e358482858561251e565b50505050565b608260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611e9d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611ed957600080fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561201257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561204e57600080fd5b6120a081603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121e290919063ffffffff16565b603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061213581603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220390919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000808383111515156121f457600080fd5b82840390508091505092915050565b600080828401905083811015151561221a57600080fd5b8091505092915050565b6000806068600f0160000160008560001916600019168152602001908152602001600020600101805490509150600090505b8181101561233557612328606860020160006068600f01600001600088600019166000191681526020019081526020016000206001018481548110151561229957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846128f2565b8080600101915050612256565b73__PropsRewardsLib_______________________63cb27ba3e6068866040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060006040518083038186803b1580156123b157600080fd5b505af41580156123c5573d6000803e3d6000fd5b505050508360001916857f07efea0e0eeb975e5404139e47d884d2705a0660a3456aa31c5694df1d8c5f1484858702604051808381526020018281526020019250505060405180910390a35050505050565b60008090505b83518110156124d0576124c360686000016000868481518110151561243e57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684838151811015156124b457fe5b906020019060200201516128f2565b808060010191505061241d565b8460001916867fcc511f1b8ddd8ab10bcb89c26361da1c99b826350e3f38ee438134149032568a865185604051808381526020018281526020019250505060405180910390a3505050505050565b60006080541415156125be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f496e697469616c697a6520726577617264732075706772616465312063616e2081526020017f68617070656e206f6e6c79206f6e63650000000000000000000000000000000081525060400191505060405180910390fd5b83608260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073__PropsRewardsLib_______________________6311cb33da606860006187be60006040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184600381111561266357fe5b60ff16815260200183815260200182815260200194505050505060006040518083038186803b15801561269557600080fd5b505af41580156126a9573d6000803e3d6000fd5b5050505073__PropsRewardsLib_______________________6311cb33da606860016308f0d18060006040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184600381111561271357fe5b60ff16815260200183815260200182815260200194505050505060006040518083038186803b15801561274557600080fd5b505af4158015612759573d6000803e3d6000fd5b5050505073__PropsRewardsLib_______________________6311cb33da606860026302faf08060006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018460038111156127c357fe5b60ff16815260200183815260200182815260200194505050505060006040518083038186803b1580156127f557600080fd5b505af4158015612809573d6000803e3d6000fd5b5050505073__PropsRewardsLib_______________________6311cb33da6068600361072560006040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184600381111561287157fe5b60ff16815260200183815260200182815260200194505050505060006040518083038186803b1580156128a357600080fd5b505af41580156128b7573d6000803e3d6000fd5b5050505082600a0a633b9aca000260808190556068601601819055508060818190556068601501819055508160686014018190555050505050565b60008273ffffffffffffffffffffffffffffffffffffffff161415151561291857600080fd5b61292d8160355461220390919063ffffffff16565b60358190555061298581603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461220390919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505600a165627a7a7230582087dacd508d0757b23b039187dc6b2b83d42b3f97045da9a19f28f32333ccfbdd0029", - "sourceMap": "365:13366:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;365:13366:2;;;;;;;", - "deployedSourceMap": "365:13366:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6842:305;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6842:305:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;2462:145:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2462:145:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4124:243:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4124:243:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4124:243:2;;;;;;;;;;;;;;;;;7921:526;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7921:526:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;702:83:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;702:83:8;;;;;;;;;;;;;;;;;;;;;;;2879:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2879:240:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1910:29:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1910:29:2;;;;;;;;;;;;;;;;;;;;;;;3570:212:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3570:212:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7377:253:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7377:253:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4748:1941;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4748:1941:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1945:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1945:36:2;;;;;;;;;;;;;;;;;;;;;;;986:98:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;986:98:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3626:271:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3626:271:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8830:407;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8830:407:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4238:222:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4238:222:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1703:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1703:127:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9685:459:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9685:459:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1401:150:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1401:150:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3159:259:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3159:259:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2635:322;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2635:322:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1987:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1987:25:2;;;;;;;;;;;;;;;;;;;;;;;;;;;6842:305;2142:10;;;;;;;;;;;2128:24;;:10;:24;;;2107:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6986:1;6963:25;;:11;:25;;;;6955:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7053:11;7040:10;;:24;;;;;;;;;;;;;;;;;;7119:11;7079:61;;;;;;;;;;;;6842:305;:::o;2462:145:8:-;2527:4;2543:36;2552:10;2564:7;2573:5;2543:8;:36::i;:::-;2596:4;2589:11;;2462:145;;;;:::o;4124:243:2:-;4259:9;4291:15;:27;4319:14;4335:11;4348;4291:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4291:69:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4291:69:2;;;;;;39:16:-1;36:1;17:17;2:54;4291:69:2;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4291:69:2;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;73:11;68:3;64:21;57:28;;126:4;121:3;117:14;163:9;145:16;142:31;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;0:383;;4291:69:2;;;;;;4284:76;;4124:243;;;;:::o;7921:526::-;2142:10;;;;;;;;;;;2128:24;;:10;:24;;;2107:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8102:15;:31;8134:14;8150:5;8157:6;8165:11;8102:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8102:75:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8102:75:2;;;;8192:248;8222:5;8241:14;:25;;:41;8275:5;8267:14;;;;;;;;8241:41;;;;;;;;;;;:54;;;8309:14;:25;;:41;8343:5;8335:14;;;;;;;;8309:41;;;;;;;;;;;:55;;;8378:14;:25;;:41;8412:5;8404:14;;;;;;;;8378:41;;;;;;;;;;;:52;;;8192:248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7921:526;;;:::o;702:83:8:-;746:7;768:12;;761:19;;702:83;:::o;2879:240::-;2982:4;3000:26;3010:4;3016:2;3020:5;3000:9;:26::i;:::-;3032:65;3041:4;3047:10;3059:37;3090:5;3059:8;:14;3068:4;3059:14;;;;;;;;;;;;;;;:26;3074:10;3059:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;3032:8;:65::i;:::-;3110:4;3103:11;;2879:240;;;;;:::o;1910:29:2:-;;;;:::o;3570:212:8:-;3670:4;3684:76;3693:10;3705:7;3714:45;3748:10;3714:8;:20;3723:10;3714:20;;;;;;;;;;;;;;;:29;3735:7;3714:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;3684:8;:76::i;:::-;3773:4;3766:11;;3570:212;;;;:::o;7377:253:2:-;7524:7;7554:15;:33;7588:14;7604:5;7611:11;7554:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7554:69:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7554:69:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7554:69:2;;;;;;;;;;;;;;;;7547:76;;7377:253;;;;:::o;4748:1941::-;5146:41;5804:21;6278:30;5076:14;:27;;:54;;;5062:11;:68;5058:659;;;5190:15;:41;5249:14;5281;:27;;:54;;;5353:14;:27;;:52;;;5423:5;5190:252;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5190:252:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5190:252:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5190:252:2;;;;;;;;;;;;;;;;5146:296;;5496:1;5460:33;:37;5456:251;;;5517:175;5548:14;:27;;:54;;;5604:14;:27;;:52;;;5658:33;5517:30;:175::i;:::-;5456:251;5058:659;5828:15;:54;5896:14;5924:11;5949:12;5975:13;6002:8;6024:13;:11;:13::i;:::-;5828:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5828:219:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5828:219:2;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5828:219:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5828:219:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5828:219:2;;;;;;;;;;;;;;;;5804:243;;6077:1;6061:13;:17;6057:139;;;6094:91;6119:11;6132:12;6146:13;6161:8;6171:13;6094:24;:91::i;:::-;6057:139;6311:15;:41;6366:14;6394:11;6419:12;6445:4;6311:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6311:148:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6311:148:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6311:148:2;;;;;;;;;;;;;;;;6278:181;;6498:1;6473:22;:26;6469:138;;;6515:81;6546:11;6559:12;6573:22;6515:30;:81::i;:::-;6469:138;6671:10;6622:60;;6657:12;6622:60;;;6644:11;6622:60;;;;;;;;;;4748:1941;;;;;;;:::o;1945:36::-;;;;:::o;986:98:8:-;1041:7;1063:9;:16;1073:5;1063:16;;;;;;;;;;;;;;;;1056:23;;986:98;;;:::o;3626:271:2:-;2142:10;;;;;;;;;;;2128:24;;:10;:24;;;2107:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3749:15;:31;3781:14;3797:11;3810:13;3749:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3749:75:2;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3749:75:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3749:75:2;;;;3878:11;3839:51;3863:13;3839:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3839:51:2;;;;;;;;;;;;;;;;;3626:271;;:::o;8830:407::-;9034:15;:28;9063:14;9079:11;9092:5;9099:15;9116:17;9034:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9034:100:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9034:100:2;;;;9212:17;9149:81;;9175:11;9149:81;;;;;;;;9163:10;9149:81;;;9188:5;9195:15;9149:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8830:407;;;;:::o;4238:222:8:-;4343:4;4357:81;4366:10;4378:7;4387:50;4421:15;4387:8;:20;4396:10;4387:20;;;;;;;;;;;;;;;:29;4408:7;4387:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;4357:8;:81::i;:::-;4451:4;4444:11;;4238:222;;;;:::o;1703:127::-;1764:4;1776:32;1786:10;1798:2;1802:5;1776:9;:32::i;:::-;1821:4;1814:11;;1703:127;;;;:::o;9685:459:2:-;9932:10;9865:77;;:14;:27;;:48;9893:19;9865:48;;;;;;;;;;;;;;;:63;;;;;;;;;;;;:77;;;9844:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10021:35;10031:10;10043:3;10048:7;10021:9;:35::i;:::-;10112:3;10071:66;;10103:7;10071:66;;;10082:19;10071:66;;;10117:7;10126:10;10071:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;9685:459;;;;:::o;1401:150:8:-;1498:7;1522:8;:15;1531:5;1522:15;;;;;;;;;;;;;;;:24;1538:7;1522:24;;;;;;;;;;;;;;;;1515:31;;1401:150;;;;:::o;3159:259:2:-;2142:10;;;;;;;;;;;2128:24;;:10;:24;;;2107:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3278:15;:29;3308:14;3324:11;3337;3278:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3278:71:2;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3278:71:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3278:71:2;;;;3399:11;3364:47;3386:11;3364:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3364:47:2;;;;;;;;;;;;;;;;;3159:259;;:::o;2635:322::-;2818:16;2837:2;2818:21;;2849:101;2880:11;2893:8;2903:22;2927;2849:30;:101::i;:::-;2635:322;;;;:::o;1987:25::-;;;;;;;;;;;;;:::o;6263:248:8:-;6374:1;6355:21;;:7;:21;;;;6347:30;;;;;;;;6412:1;6395:19;;:5;:19;;;;6387:28;;;;;;;;6453:5;6426:8;:15;6435:5;6426:15;;;;;;;;;;;;;;;:24;6442:7;6426:24;;;;;;;;;;;;;;;:32;;;;6489:7;6473:31;;6482:5;6473:31;;;6498:5;6473:31;;;;;;;;;;;;;;;;;;6263:248;;;:::o;4660:277::-;4752:9;:15;4762:4;4752:15;;;;;;;;;;;;;;;;4743:5;:24;;4735:33;;;;;;;;4796:1;4782:16;;:2;:16;;;;4774:25;;;;;;;;4824:26;4844:5;4824:9;:15;4834:4;4824:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;4806:9;:15;4816:4;4806:15;;;;;;;;;;;;;;;:44;;;;4872:24;4890:5;4872:9;:13;4882:2;4872:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;4856:9;:13;4866:2;4856:13;;;;;;;;;;;;;;;:40;;;;4922:2;4907:25;;4916:4;4907:25;;;4926:5;4907:25;;;;;;;;;;;;;;;;;;4660:277;;;:::o;1079:131:7:-;1137:7;1173:9;1165:1;1160;:6;;1152:15;;;;;;;;1189:1;1185;:5;1173:17;;1204:1;1197:8;;1079:131;;;;;:::o;1273:::-;1331:7;1346:9;1362:1;1358;:5;1346:17;;1382:1;1377;:6;;1369:15;;;;;;;;1398:1;1391:8;;1273:131;;;;;:::o;12168:695:2:-;12299:23;12415:9;12325:14;:27;;:39;;:53;12365:12;12325:53;;;;;;;;;;;;;;;;;:68;;:75;;;;12299:101;;12427:1;12415:13;;12410:199;12434:15;12430:1;:19;12410:199;;;12470:128;12476:14;:25;;:98;12502:14;:27;;:39;;:53;12542:12;12502:53;;;;;;;;;;;;;;;;;:68;;12571:1;12502:71;;;;;;;;;;;;;;;;;;;;;;;;;;;12476:98;;;;;;;;;;;;;;;:113;;;;;;;;;;;;12590:7;12470:5;:128::i;:::-;12451:3;;;;;;;12410:199;;;12618:15;:34;12653:14;12669:12;12618:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12618:64:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12618:64:2;;;;12764:12;12697:159;;;12739:11;12697:159;12790:15;12830;12820:7;:25;12697:159;;;;;;;;;;;;;;;;;;;;;;;;12168:695;;;;;:::o;13254:475::-;13472:9;13484:1;13472:13;;13467:156;13491:13;:20;13487:1;:24;13467:156;;;13532:80;13538:14;:27;;:45;13566:13;13580:1;13566:16;;;;;;;;;;;;;;;;;;13538:45;;;;;;;;;;;;;;;:60;;;;;;;;;;;;13600:8;13609:1;13600:11;;;;;;;;;;;;;;;;;;13532:5;:80::i;:::-;13513:3;;;;;;;13467:156;;;13681:12;13637:85;;;13668:11;13637:85;13695:13;:20;13717:4;13637:85;;;;;;;;;;;;;;;;;;;;;;;;13254:475;;;;;;:::o;10536:1402::-;10773:1;10757:14;;:17;10749:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10850:11;10837:10;;:24;;;;;;;;;;;;;;;;;;10926:15;:31;10958:14;10974:55;11031:5;11038:1;10926:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10926:114:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10926:114:2;;;;11116:15;:31;11148:14;11164:67;11233:9;11244:1;11116:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11116:130:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11116:130:2;;;;11308:15;:31;11340:14;11356:54;11412:8;11422:1;11308:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11308:116:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11308:116:2;;;;11492:15;:31;11524:14;11540:53;11595:4;11601:1;11492:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11492:111:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11492:111:2;;;;11754:9;11748:2;:15;11737:7;:27;11720:14;:44;;;11688:14;:29;;:76;;;;11837:22;11813:21;:46;;;11774:14;:36;;:85;;;;11908:22;11869:14;:36;;:61;;;;10536:1402;;;;:::o;5265:239:8:-;5347:1;5336:7;:12;;;;5328:21;;;;;;;;5370:24;5387:6;5370:12;;:16;;:24;;;;:::i;:::-;5355:12;:39;;;;5421:30;5444:6;5421:9;:18;5431:7;5421:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;5400:9;:18;5410:7;5400:18;;;;;;;;;;;;;;;:51;;;;5483:7;5462:37;;5479:1;5462:37;;;5492:6;5462:37;;;;;;;;;;;;;;;;;;5265:239;;:::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"zos-lib/contracts/Initializable.sol\";\nimport \"openzeppelin-eth/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-eth/contracts/token/ERC20/ERC20.sol\";\nimport { PropsRewardsLib } from \"./PropsRewardsLib.sol\";\n\n/**\n * @title Props Rewards\n * @dev Contract allows to set approved apps and validators. Submit and mint rewards...\n **/\ncontract PropsRewards is Initializable, ERC20 {\n using SafeMath for uint256;\n /*\n * Events\n */\n event DailyRewardsSubmitted(\n uint256 indexed rewardsDay,\n bytes32 indexed rewardsHash,\n address indexed validator\n );\n\n event DailyRewardsApplicationsMinted(\n uint256 indexed rewardsDay,\n bytes32 indexed rewardsHash,\n uint256 numOfApplications,\n uint256 amount\n );\n\n event DailyRewardsValidatorsMinted(\n uint256 indexed rewardsDay,\n bytes32 indexed rewardsHash,\n uint256 numOfValidators,\n uint256 amount\n );\n\n event EntityUpdated(\n address indexed id,\n PropsRewardsLib.RewardedEntityType indexed entityType,\n bytes32 name,\n address rewardsAddress,\n address indexed sidechainAddress\n );\n\n event ParameterUpdated(\n PropsRewardsLib.ParameterName param,\n uint256 newValue,\n uint256 oldValue,\n uint256 rewardsDay\n );\n\n event ValidatorsListUpdated(\n address[] validatorsList,\n uint256 indexed rewardsDay\n );\n\n event ApplicationsListUpdated(\n address[] applicationsList,\n uint256 indexed rewardsDay\n );\n\n event ControllerUpdated(address indexed newController);\n\n event Settlement(\n address indexed applicationId,\n bytes32 indexed userId,\n address indexed to,\n uint256 amount,\n address rewardsAddress\n );\n /*\n * Storage\n */\n\n PropsRewardsLib.Data internal rewardsLibData;\n uint256 public maxTotalSupply;\n uint256 public rewardsStartTimestamp;\n address public controller; // controller entity\n\n /*\n * Modifiers\n */\n modifier onlyController() {\n require(\n msg.sender == controller,\n \"Must be the controller\"\n );\n _;\n }\n\n /**\n * @dev The initializer function for upgrade as initialize was already called, get the decimals used in the token to initialize the params\n * @param _controller address that will have controller functionality on rewards protocol\n * @param _minSecondsBetweenDays uint256 seconds required to pass between consecutive rewards day\n * @param _rewardsStartTimestamp uint256 day 0 timestamp\n */\n function initializePostRewardsUpgrade1(\n address _controller,\n uint256 _minSecondsBetweenDays,\n uint256 _rewardsStartTimestamp\n )\n public\n {\n uint256 decimals = 18;\n _initializePostRewardsUpgrade1(_controller, decimals, _minSecondsBetweenDays, _rewardsStartTimestamp);\n }\n\n /**\n * @dev Set new validators list\n * @param _rewardsDay uint256 the rewards day from which this change should take effect\n * @param _validators address[] array of validators\n */\n function setValidators(uint256 _rewardsDay, address[] _validators)\n public\n onlyController\n {\n PropsRewardsLib.setValidators(rewardsLibData, _rewardsDay, _validators);\n emit ValidatorsListUpdated(_validators, _rewardsDay);\n }\n\n /**\n * @dev Set new applications list\n * @param _rewardsDay uint256 the rewards day from which this change should take effect\n * @param _applications address[] array of applications\n */\n function setApplications(uint256 _rewardsDay, address[] _applications)\n public\n onlyController\n {\n PropsRewardsLib.setApplications(rewardsLibData, _rewardsDay, _applications);\n emit ApplicationsListUpdated(_applications, _rewardsDay);\n }\n\n /**\n * @dev Get the applications or validators list\n * @param _entityType RewardedEntityType either application (0) or validator (1)\n * @param _rewardsDay uint256 the rewards day to use for this value\n */\n function getEntities(PropsRewardsLib.RewardedEntityType _entityType, uint256 _rewardsDay)\n public\n view\n returns (address[])\n {\n return PropsRewardsLib.getEntities(rewardsLibData, _entityType, _rewardsDay);\n }\n\n /**\n * @dev The function is called by validators with the calculation of the daily rewards\n * @param _rewardsDay uint256 the rewards day\n * @param _rewardsHash bytes32 hash of the rewards data\n * @param _applications address[] array of application addresses getting the daily reward\n * @param _amounts uint256[] array of amounts each app should get\n */\n function submitDailyRewards(\n uint256 _rewardsDay,\n bytes32 _rewardsHash,\n address[] _applications,\n uint256[] _amounts\n )\n public\n {\n // if submission is for a new day check if previous day validator rewards were given if not give to participating ones\n if (_rewardsDay > rewardsLibData.dailyRewards.lastApplicationsRewardsDay) {\n uint256 previousDayValidatorRewardsAmount = PropsRewardsLib.calculateValidatorRewards(\n rewardsLibData,\n rewardsLibData.dailyRewards.lastApplicationsRewardsDay,\n rewardsLibData.dailyRewards.lastConfirmedRewardsHash,\n false\n );\n if (previousDayValidatorRewardsAmount > 0) {\n _mintDailyRewardsForValidators(rewardsLibData.dailyRewards.lastApplicationsRewardsDay, rewardsLibData.dailyRewards.lastConfirmedRewardsHash, previousDayValidatorRewardsAmount);\n }\n }\n // check and give application rewards if majority of validators agree\n uint256 appRewardsSum = PropsRewardsLib.calculateAndFinalizeApplicationRewards(\n rewardsLibData,\n _rewardsDay,\n _rewardsHash,\n _applications,\n _amounts,\n totalSupply()\n );\n if (appRewardsSum > 0) {\n _mintDailyRewardsForApps(_rewardsDay, _rewardsHash, _applications, _amounts, appRewardsSum);\n }\n\n // check and give validator rewards if all validators submitted\n uint256 validatorRewardsAmount = PropsRewardsLib.calculateValidatorRewards(\n rewardsLibData,\n _rewardsDay,\n _rewardsHash,\n true\n );\n if (validatorRewardsAmount > 0) {\n _mintDailyRewardsForValidators(_rewardsDay, _rewardsHash, validatorRewardsAmount);\n }\n\n emit DailyRewardsSubmitted(_rewardsDay, _rewardsHash, msg.sender);\n }\n\n /**\n * @dev Allows the controller/owner to update to a new controller\n * @param _controller address address of the new controller\n */\n function updateController(\n address _controller\n )\n public\n onlyController\n {\n require(_controller != address(0), \"Controller cannot be the zero address\");\n controller = _controller;\n emit ControllerUpdated\n (\n _controller\n );\n }\n\n /**\n * @dev Allows getting a parameter value based on timestamp\n * @param _name ParameterName name of the parameter\n * @param _rewardsDay uint256 starting when should this parameter use the current value\n */\n function getParameter(\n PropsRewardsLib.ParameterName _name,\n uint256 _rewardsDay\n )\n public\n view\n returns (uint256)\n {\n return PropsRewardsLib.getParameterValue(rewardsLibData, _name, _rewardsDay);\n }\n\n /**\n * @dev Allows the controller/owner to update rewards parameters\n * @param _name ParameterName name of the parameter\n * @param _value uint256 new value for the parameter\n * @param _rewardsDay uint256 starting when should this parameter use the current value\n */\n function updateParameter(\n PropsRewardsLib.ParameterName _name,\n uint256 _value,\n uint256 _rewardsDay\n )\n public\n onlyController\n {\n PropsRewardsLib.updateParameter(rewardsLibData, _name, _value, _rewardsDay);\n emit ParameterUpdated(\n _name,\n rewardsLibData.parameters[uint256(_name)].currentValue,\n rewardsLibData.parameters[uint256(_name)].previousValue,\n rewardsLibData.parameters[uint256(_name)].rewardsDay\n );\n }\n\n /**\n * @dev Allows an application or validator to add/update its details\n * @param _entityType RewardedEntityType either application (0) or validator (1)\n * @param _name bytes32 name of the app\n * @param _rewardsAddress address an address for the app to receive the rewards\n * @param _sidechainAddress address the address used for using the sidechain\n */\n function updateEntity(\n PropsRewardsLib.RewardedEntityType _entityType,\n bytes32 _name,\n address _rewardsAddress,\n address _sidechainAddress\n )\n public\n {\n PropsRewardsLib.updateEntity(rewardsLibData, _entityType, _name, _rewardsAddress, _sidechainAddress);\n emit EntityUpdated(msg.sender, _entityType, _name, _rewardsAddress, _sidechainAddress);\n }\n\n /**\n * @dev Allows an application to settle sidechain props. Should be called from an application rewards address\n * @param _applicationAddress address the application main address (used to setup the application)\n * @param _userId bytes32 identification of the user on the sidechain that was settled\n * @param _to address where to send the props to\n * @param _amount uint256 the address used for using the sidechain\n */\n function settle(\n address _applicationAddress,\n bytes32 _userId,\n address _to,\n uint256 _amount\n )\n public\n {\n require(\n rewardsLibData.applications[_applicationAddress].rewardsAddress == msg.sender,\n \"settle may only be called by an application\"\n );\n _transfer(msg.sender, _to, _amount);\n emit Settlement(_applicationAddress, _userId, _to, _amount, msg.sender);\n }\n /**\n * @dev internal intialize rewards upgrade1\n * @param _controller address that will have controller functionality on rewards protocol\n * @param _decimals uint256 number of decimals used in total supply\n * @param _minSecondsBetweenDays uint256 seconds required to pass between consecutive rewards day\n * @param _rewardsStartTimestamp uint256 day 0 timestamp\n */\n function _initializePostRewardsUpgrade1(\n address _controller,\n uint256 _decimals,\n uint256 _minSecondsBetweenDays,\n uint256 _rewardsStartTimestamp\n )\n internal\n {\n require(maxTotalSupply==0, \"Initialize rewards upgrade1 can happen only once\");\n controller = _controller;\n // ApplicationRewardsPercent pphm ==> 0.03475%\n PropsRewardsLib.updateParameter(rewardsLibData, PropsRewardsLib.ParameterName.ApplicationRewardsPercent, 34750, 0);\n // // ApplicationRewardsMaxVariationPercent pphm ==> 150%\n PropsRewardsLib.updateParameter(rewardsLibData, PropsRewardsLib.ParameterName.ApplicationRewardsMaxVariationPercent, 150 * 1e6, 0);\n // // ValidatorMajorityPercent pphm ==> 50%\n PropsRewardsLib.updateParameter(rewardsLibData, PropsRewardsLib.ParameterName.ValidatorMajorityPercent, 50 * 1e6, 0);\n // // ValidatorRewardsPercent pphm ==> 0.001829%\n PropsRewardsLib.updateParameter(rewardsLibData, PropsRewardsLib.ParameterName.ValidatorRewardsPercent, 1829, 0);\n\n // max total supply is 1,000,000,000 PROPS specified in AttoPROPS\n rewardsLibData.maxTotalSupply = maxTotalSupply = 1 * 1e9 * (10 ** _decimals);\n rewardsLibData.rewardsStartTimestamp = rewardsStartTimestamp = _rewardsStartTimestamp;\n rewardsLibData.minSecondsBetweenDays = _minSecondsBetweenDays;\n\n }\n\n /**\n * @dev Mint rewards for validators\n * @param _rewardsDay uint256 the rewards day\n * @param _rewardsHash bytes32 hash of the rewards data\n * @param _amount uint256 amount each validator should get\n */\n function _mintDailyRewardsForValidators(uint256 _rewardsDay, bytes32 _rewardsHash, uint256 _amount)\n internal\n {\n uint256 validatorsCount = rewardsLibData.dailyRewards.submissions[_rewardsHash].validatorsList.length;\n for (uint256 i = 0; i < validatorsCount; i++) {\n _mint(rewardsLibData.validators[rewardsLibData.dailyRewards.submissions[_rewardsHash].validatorsList[i]].rewardsAddress,_amount);\n }\n PropsRewardsLib._resetDailyRewards(rewardsLibData, _rewardsHash);\n emit DailyRewardsValidatorsMinted(\n _rewardsDay,\n _rewardsHash,\n validatorsCount,\n (_amount * validatorsCount)\n );\n }\n\n /**\n * @dev Mint rewards for apps\n * @param _rewardsDay uint256 the rewards day\n * @param _rewardsHash bytes32 hash of the rewards data\n * @param _applications address[] array of application addresses getting the daily reward\n * @param _amounts uint256[] array of amounts each app should get\n * @param _sum uint256 the sum of all application rewards given\n */\n function _mintDailyRewardsForApps(\n uint256 _rewardsDay,\n bytes32 _rewardsHash,\n address[] _applications,\n uint256[] _amounts,\n uint256 _sum\n )\n internal\n {\n for (uint256 i = 0; i < _applications.length; i++) {\n _mint(rewardsLibData.applications[_applications[i]].rewardsAddress, _amounts[i]);\n }\n emit DailyRewardsApplicationsMinted(_rewardsDay, _rewardsHash, _applications.length, _sum);\n }\n}", - "sourcePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsRewards.sol", + "metadata": "{\"compiler\":{\"version\":\"0.4.25+commit.59dbf8f1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_controller\",\"type\":\"address\"}],\"name\":\"updateController\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"maxTotalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_minter\",\"type\":\"address\"}],\"name\":\"removeMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"rewardsStartTimestamp\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenName\",\"type\":\"string\"}],\"name\":\"initializePermitUpgrade\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_minter\",\"type\":\"address\"}],\"name\":\"addMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MY_CHAIN_ID\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_controller\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"reclaimToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_v\",\"type\":\"uint8\"},{\"name\":\"_r\",\"type\":\"bytes32\"},{\"name\":\"_s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"minters\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"controller\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"newController\",\"type\":\"address\"}],\"name\":\"ControllerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"Function to check the amount of tokens that an owner allowed to a spender.\",\"params\":{\"owner\":\"address The address which owns the funds.\",\"spender\":\"address The address which will spend the funds.\"},\"return\":\"A uint256 specifying the amount of tokens still available for the spender.\"},\"approve(address,uint256)\":{\"details\":\"Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\",\"params\":{\"spender\":\"The address which will spend the funds.\",\"value\":\"The amount of tokens to be spent.\"}},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address.\",\"params\":{\"owner\":\"The address to query the the balance of.\"},\"return\":\"An uint256 representing the amount owned by the passed address.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Decrease the amount of tokens that an owner allowed to a spender. approve should be called when allowed_[_spender] == 0. To decrement allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol\",\"params\":{\"spender\":\"The address which will spend the funds.\",\"subtractedValue\":\"The amount of tokens to decrease the allowance by.\"}},\"increaseAllowance(address,uint256)\":{\"details\":\"Increase the amount of tokens that an owner allowed to a spender. approve should be called when allowed_[_spender] == 0. To increment allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol\",\"params\":{\"addedValue\":\"The amount of tokens to increase the allowance by.\",\"spender\":\"The address which will spend the funds.\"}},\"initialize(address)\":{\"details\":\"The initializer function for upgrade as initialize was already called, get the decimals used in the token to initialize the params\",\"params\":{\"_controller\":\"address that will have controller functionality on token\"}},\"initializePermitUpgrade(string)\":{\"details\":\"Initialize post separation of rewards contract upgrade\",\"params\":{\"_tokenName\":\"string token name\"}},\"mint(address,uint256)\":{\"details\":\"Allows minters to mint tokens to a given address\",\"params\":{\"_account\":\"address of the receiving account\",\"_amount\":\"uint256 how much to mint\"}},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Allows for approvals to be made via secp256k1 signatures\",\"params\":{\"_amount\":\"uint spender\",\"_deadline\":\"uint spender\",\"_owner\":\"address owner\",\"_r\":\"bytes32 spender\",\"_s\":\"bytes32 spender\",\"_spender\":\"address spender\",\"_v\":\"uint8 spender\"}},\"reclaimToken(address,address,uint256)\":{\"details\":\"Reclaim all ERC20 compatible tokens\",\"params\":{\"_token\":\"ERC20 The address of the token contract\"}},\"totalSupply()\":{\"details\":\"Total number of tokens in existence\"},\"transfer(address,uint256)\":{\"details\":\"Transfer token for a specified address\",\"params\":{\"to\":\"The address to transfer to.\",\"value\":\"The amount to be transferred.\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfer tokens from one address to another\",\"params\":{\"from\":\"address The address which you want to send tokens from\",\"to\":\"address The address which you want to transfer to\",\"value\":\"uint256 the amount of tokens to be transferred\"}},\"updateController(address)\":{\"details\":\"Allows the controller/owner to update to a new controller\",\"params\":{\"_controller\":\"address address of the new controller\"}}},\"title\":\"Props Rewards\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/george/Development/props/props-token-distribution/contracts/token/PropsRewards.sol\":\"PropsRewards\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/george/Development/props/props-token-distribution/contracts/token/PropsRewards.sol\":{\"keccak256\":\"0xefe80bb625966029858495720b9e128b09e04518647aaa7a2df9fb0e71a188aa\",\"urls\":[\"bzzr://ab43e119e4df198d658b7d2c2724122fc7d443df0c655826c15308102483f63c\"]},\"/home/george/Development/props/props-token-distribution/contracts/token/PropsRewardsLib.sol\":{\"keccak256\":\"0x11a48db38730e0f1ad3c9384b8809dec94c6638123f0f469fc41e77cb5361001\",\"urls\":[\"bzzr://5951643984121b932ed18479eb3b0d2f34d11cd31ff230e779249eba30b3b01d\"]},\"openzeppelin-eth/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xca27427124232a675642ba45303b78d5a36e1207ee222030ef249e11eba5a224\",\"urls\":[\"bzzr://013c67962737acca577ecd24e6b6c80f85b05fd03c1c75ab68f65a084f4b4cfd\"]},\"openzeppelin-eth/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24252d4567a1cbf14d609a8308e491359c9200d58a2e78282938d945aeeb2bb3\",\"urls\":[\"bzzr://61401aaae518b765df91e443ef9dfb7af874341921829a063cb4804a6fb49c5e\"]},\"openzeppelin-eth/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x0786a09def412e5a92e1da8545114b39f9bbd8bd1ba6f62a5bf8b81f54ab25bf\",\"urls\":[\"bzzr://b35dbbf6dd505fcb601ca968d4628714a3af84024224228433eadf700e94f250\"]},\"openzeppelin-eth/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0x885962cc93b105975c112906fc38e50c1a170e3c5f08dc55328e90fd5b3734d1\",\"urls\":[\"bzzr://36483b11e610c19d02acda1e408bb5eb306db428c5f6071a7869afa95bde1904\"]},\"zos-lib/contracts/Initializable.sol\":{\"keccak256\":\"0xac4cc87395794e21e95549a1b4002881621d59878c4129d534a0089ce5cf7212\",\"urls\":[\"bzzr://1725ac3e1941f8e2bf5c1966abd66bd744d40c85ae8195eb697ec3256bc1fc39\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b506124c0806100206000396000f30060806040526004361061013e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306cb5b6614610143578063095ea7b31461018657806318160ddd146101eb57806323b872dd146102165780632ab4d0521461029b5780633092afd5146102c657806330adf81f146103095780633644e5151461033c578063395093511461036f57806340c10f19146103d4578063635685021461042157806370a082311461044c5780637ecebe00146104a357806390ee4b55146104fa578063983b2d56146105635780639e3d41a8146105a6578063a457c2d7146105d1578063a9059cbb14610636578063c4d66de81461069b578063cd616776146106de578063d505accf1461074b578063dd62ed3e146107eb578063f46eccc414610862578063f77c4791146108bd575b600080fd5b34801561014f57600080fd5b50610184600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610914565b005b34801561019257600080fd5b506101d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b2b565b604051808215151515815260200191505060405180910390f35b3480156101f757600080fd5b50610200610b42565b6040518082815260200191505060405180910390f35b34801561022257600080fd5b50610281600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b4c565b604051808215151515815260200191505060405180910390f35b3480156102a757600080fd5b506102b0610bfd565b6040518082815260200191505060405180910390f35b3480156102d257600080fd5b50610307600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c03565b005b34801561031557600080fd5b5061031e610d23565b60405180826000191660001916815260200191505060405180910390f35b34801561034857600080fd5b50610351610d4a565b60405180826000191660001916815260200191505060405180910390f35b34801561037b57600080fd5b506103ba600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d50565b604051808215151515815260200191505060405180910390f35b3480156103e057600080fd5b5061041f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610df5565b005b34801561042d57600080fd5b50610436610f7d565b6040518082815260200191505060405180910390f35b34801561045857600080fd5b5061048d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f83565b6040518082815260200191505060405180910390f35b3480156104af57600080fd5b506104e4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fcc565b6040518082815260200191505060405180910390f35b34801561050657600080fd5b50610561600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610fe4565b005b34801561056f57600080fd5b506105a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611398565b005b3480156105b257600080fd5b506105bb6114b8565b6040518082815260200191505060405180910390f35b3480156105dd57600080fd5b5061061c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114be565b604051808215151515815260200191505060405180910390f35b34801561064257600080fd5b50610681600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611563565b604051808215151515815260200191505060405180910390f35b3480156106a757600080fd5b506106dc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061157a565b005b3480156106ea57600080fd5b50610749600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061158e565b005b34801561075757600080fd5b506107e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff169060200190929190803560001916906020019092919080356000191690602001909291905050506118a1565b005b3480156107f757600080fd5b5061084c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cd0565b6040518082815260200191505060405180910390f35b34801561086e57600080fd5b506108a3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d57565b604051808215151515815260200191505060405180910390f35b3480156108c957600080fd5b506108d2611d77565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b608260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610aa4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f436f6e74726f6c6c65722063616e6e6f7420626520746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80608260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f1304018cfe79741dcf02ba6b61d39cc4757d59395d03224d9925c7aa8300214660405160405180910390a250565b6000610b38338484611d9d565b6001905092915050565b6000603554905090565b6000610b59848484611f00565b610bf28433610bed85603460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461211e90919063ffffffff16565b611d9d565b600190509392505050565b60805481565b608260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b6000608360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960010281565b60845481565b6000610deb3384610de685603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461213f90919063ffffffff16565b611d9d565b6001905092915050565b608360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610edc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4d696e7420666e2063616e2062652063616c6c6564206f6e6c79206279206d6981526020017f6e7465720000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b608054610ef982610eeb610b42565b61213f90919063ffffffff16565b11151515610f6f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4d617820746f74616c20737570706c792065786365656465640000000000000081525060200191505060405180910390fd5b610f798282612160565b5050565b60815481565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60856020528060005260406000206000915090505481565b6000606060008060019054906101000a900460ff168061100857506110076122a0565b5b8061101f57506000809054906101000a900460ff16155b15156110b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff021916908315150217905550600192506040805190810160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525091508260868190555060405180807f454950373132446f6d61696e28737472696e67206e616d652c737472696e672081526020017f76657273696f6e2c75696e7432353620636861696e49642c616464726573732081526020017f766572696679696e67436f6e747261637429000000000000000000000000000081525060520190506040518091039020846040518082805190602001908083835b6020831015156111fb57805182526020820191506020810190506020830392506111d6565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020836040518082805190602001908083835b60208310151561125e5780518252602082019150602081019050602083039250611239565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208530604051602001808660001916600019168152602001856000191660001916815260200184600019166000191681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001955050505050506040516020818303038152906040526040518082805190602001908083835b602083101515611341578051825260208201915060208101905060208303925061131c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206084816000191690555080600060016101000a81548160ff02191690831515021790555050505050565b608260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561145d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b6001608360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60865481565b6000611559338461155485603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461211e90919063ffffffff16565b611d9d565b6001905092915050565b6000611570338484611f00565b6001905092915050565b60006012905061158a82826122b1565b5050565b6000608260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611655576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156116fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4d757374207472616e7366657220746f20726563697069656e7400000000000081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561179557600080fd5b505af11580156117a9573d6000803e3d6000fd5b505050506040513d60208110156117bf57600080fd5b81019080805190602001909291905050509050808211151515611870576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f43616e6e6f74207472616e73666572206d6f7265207468616e2062616c616e6381526020017f650000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61189b83838673ffffffffffffffffffffffffffffffffffffffff166123a69092919063ffffffff16565b50505050565b60008042861015151561191c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f5065726d6974204578706972656400000000000000000000000000000000000081525060200191505060405180910390fd5b6084547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c96001028a8a8a608560008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b6040516020018087600019166000191681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515611a6c5780518252602082019150602081019050602083039250611a47565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183600019166000191681526020018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083101515611b2c5780518252602082019150602081019050602083039250611b07565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150600182868686604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015611bd2573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611c4657508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1515611cba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964205369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b611cc5898989611d9d565b505050505050505050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60836020528060005260406000206000915054906101000a900460ff1681565b608260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611dd957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611e1557600080fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611f4e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611f8a57600080fd5b611fdc81603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461211e90919063ffffffff16565b603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061207181603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461213f90919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008083831115151561213057600080fd5b82840390508091505092915050565b600080828401905083811015151561215657600080fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff161415151561218657600080fd5b61219b8160355461213f90919063ffffffff16565b6035819055506121f381603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461213f90919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600080303b90506000811491505090565b6000608054141515612351576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f496e697469616c697a6520726577617264732075706772616465312063616e2081526020017f68617070656e206f6e6c79206f6e63650000000000000000000000000000000081525060400191505060405180910390fd5b81608260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a0a633b9aca00026080819055505050565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561244957600080fd5b505af115801561245d573d6000803e3d6000fd5b505050506040513d602081101561247357600080fd5b8101908080519060200190929190505050151561248f57600080fd5b5050505600a165627a7a72305820383d1f6415db75357d8ec7a76b1496017f417e5747f343d745eed217f6e3de090029", + "deployedBytecode": "0x60806040526004361061013e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306cb5b6614610143578063095ea7b31461018657806318160ddd146101eb57806323b872dd146102165780632ab4d0521461029b5780633092afd5146102c657806330adf81f146103095780633644e5151461033c578063395093511461036f57806340c10f19146103d4578063635685021461042157806370a082311461044c5780637ecebe00146104a357806390ee4b55146104fa578063983b2d56146105635780639e3d41a8146105a6578063a457c2d7146105d1578063a9059cbb14610636578063c4d66de81461069b578063cd616776146106de578063d505accf1461074b578063dd62ed3e146107eb578063f46eccc414610862578063f77c4791146108bd575b600080fd5b34801561014f57600080fd5b50610184600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610914565b005b34801561019257600080fd5b506101d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b2b565b604051808215151515815260200191505060405180910390f35b3480156101f757600080fd5b50610200610b42565b6040518082815260200191505060405180910390f35b34801561022257600080fd5b50610281600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b4c565b604051808215151515815260200191505060405180910390f35b3480156102a757600080fd5b506102b0610bfd565b6040518082815260200191505060405180910390f35b3480156102d257600080fd5b50610307600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c03565b005b34801561031557600080fd5b5061031e610d23565b60405180826000191660001916815260200191505060405180910390f35b34801561034857600080fd5b50610351610d4a565b60405180826000191660001916815260200191505060405180910390f35b34801561037b57600080fd5b506103ba600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d50565b604051808215151515815260200191505060405180910390f35b3480156103e057600080fd5b5061041f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610df5565b005b34801561042d57600080fd5b50610436610f7d565b6040518082815260200191505060405180910390f35b34801561045857600080fd5b5061048d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f83565b6040518082815260200191505060405180910390f35b3480156104af57600080fd5b506104e4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fcc565b6040518082815260200191505060405180910390f35b34801561050657600080fd5b50610561600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610fe4565b005b34801561056f57600080fd5b506105a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611398565b005b3480156105b257600080fd5b506105bb6114b8565b6040518082815260200191505060405180910390f35b3480156105dd57600080fd5b5061061c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114be565b604051808215151515815260200191505060405180910390f35b34801561064257600080fd5b50610681600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611563565b604051808215151515815260200191505060405180910390f35b3480156106a757600080fd5b506106dc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061157a565b005b3480156106ea57600080fd5b50610749600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061158e565b005b34801561075757600080fd5b506107e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff169060200190929190803560001916906020019092919080356000191690602001909291905050506118a1565b005b3480156107f757600080fd5b5061084c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cd0565b6040518082815260200191505060405180910390f35b34801561086e57600080fd5b506108a3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d57565b604051808215151515815260200191505060405180910390f35b3480156108c957600080fd5b506108d2611d77565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b608260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610aa4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f436f6e74726f6c6c65722063616e6e6f7420626520746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80608260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f1304018cfe79741dcf02ba6b61d39cc4757d59395d03224d9925c7aa8300214660405160405180910390a250565b6000610b38338484611d9d565b6001905092915050565b6000603554905090565b6000610b59848484611f00565b610bf28433610bed85603460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461211e90919063ffffffff16565b611d9d565b600190509392505050565b60805481565b608260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b6000608360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960010281565b60845481565b6000610deb3384610de685603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461213f90919063ffffffff16565b611d9d565b6001905092915050565b608360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610edc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4d696e7420666e2063616e2062652063616c6c6564206f6e6c79206279206d6981526020017f6e7465720000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b608054610ef982610eeb610b42565b61213f90919063ffffffff16565b11151515610f6f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4d617820746f74616c20737570706c792065786365656465640000000000000081525060200191505060405180910390fd5b610f798282612160565b5050565b60815481565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60856020528060005260406000206000915090505481565b6000606060008060019054906101000a900460ff168061100857506110076122a0565b5b8061101f57506000809054906101000a900460ff16155b15156110b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff021916908315150217905550600192506040805190810160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525091508260868190555060405180807f454950373132446f6d61696e28737472696e67206e616d652c737472696e672081526020017f76657273696f6e2c75696e7432353620636861696e49642c616464726573732081526020017f766572696679696e67436f6e747261637429000000000000000000000000000081525060520190506040518091039020846040518082805190602001908083835b6020831015156111fb57805182526020820191506020810190506020830392506111d6565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020836040518082805190602001908083835b60208310151561125e5780518252602082019150602081019050602083039250611239565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208530604051602001808660001916600019168152602001856000191660001916815260200184600019166000191681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001955050505050506040516020818303038152906040526040518082805190602001908083835b602083101515611341578051825260208201915060208101905060208303925061131c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206084816000191690555080600060016101000a81548160ff02191690831515021790555050505050565b608260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561145d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b6001608360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60865481565b6000611559338461155485603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461211e90919063ffffffff16565b611d9d565b6001905092915050565b6000611570338484611f00565b6001905092915050565b60006012905061158a82826122b1565b5050565b6000608260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611655576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156116fa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4d757374207472616e7366657220746f20726563697069656e7400000000000081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561179557600080fd5b505af11580156117a9573d6000803e3d6000fd5b505050506040513d60208110156117bf57600080fd5b81019080805190602001909291905050509050808211151515611870576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f43616e6e6f74207472616e73666572206d6f7265207468616e2062616c616e6381526020017f650000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61189b83838673ffffffffffffffffffffffffffffffffffffffff166123a69092919063ffffffff16565b50505050565b60008042861015151561191c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f5065726d6974204578706972656400000000000000000000000000000000000081525060200191505060405180910390fd5b6084547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c96001028a8a8a608560008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b6040516020018087600019166000191681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515611a6c5780518252602082019150602081019050602083039250611a47565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183600019166000191681526020018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083101515611b2c5780518252602082019150602081019050602083039250611b07565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150600182868686604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015611bd2573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015611c4657508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1515611cba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964205369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b611cc5898989611d9d565b505050505050505050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60836020528060005260406000206000915054906101000a900460ff1681565b608260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611dd957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611e1557600080fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611f4e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611f8a57600080fd5b611fdc81603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461211e90919063ffffffff16565b603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061207181603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461213f90919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008083831115151561213057600080fd5b82840390508091505092915050565b600080828401905083811015151561215657600080fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff161415151561218657600080fd5b61219b8160355461213f90919063ffffffff16565b6035819055506121f381603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461213f90919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600080303b90506000811491505090565b6000608054141515612351576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f496e697469616c697a6520726577617264732075706772616465312063616e2081526020017f68617070656e206f6e6c79206f6e63650000000000000000000000000000000081525060400191505060405180910390fd5b81608260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a0a633b9aca00026080819055505050565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561244957600080fd5b505af115801561245d573d6000803e3d6000fd5b505050506040513d602081101561247357600080fd5b8101908080519060200190929190505050151561248f57600080fd5b5050505600a165627a7a72305820383d1f6415db75357d8ec7a76b1496017f417e5747f343d745eed217f6e3de090029", + "sourceMap": "428:5805:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;428:5805:2;;;;;;;", + "deployedSourceMap": "428:5805:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4643:305;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4643:305:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;2462:145:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2462:145:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;702:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;702:83:8;;;;;;;;;;;;;;;;;;;;;;;2879:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2879:240:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;717:29:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;717:29:2;;;;;;;;;;;;;;;;;;;;;;;5058:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5058:102:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;1032:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1032:108:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;891:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;891:31:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3570:212:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3570:212:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5346:301:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5346:301:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;752:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;752:36:2;;;;;;;;;;;;;;;;;;;;;;;986:98:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;986:98:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1146:41:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1146:41:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1913:700;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1913:700:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4954:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4954:98:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;1193:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1193:26:2;;;;;;;;;;;;;;;;;;;;;;;4238:222:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4238:222:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1703:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1703:127:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1651:130:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1651:130:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;4126:360;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4126:360:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2947:1048;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2947:1048:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1401:150:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1401:150:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;846:39:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;846:39:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;794:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;794:25:2;;;;;;;;;;;;;;;;;;;;;;;;;;;4643:305;1327:10;;;;;;;;;;;1313:24;;:10;:24;;;1292:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4787:1;4764:25;;:11;:25;;;;4756:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4854:11;4841:10;;:24;;;;;;;;;;;;;;;;;;4920:11;4880:61;;;;;;;;;;;;4643:305;:::o;2462:145:8:-;2527:4;2543:36;2552:10;2564:7;2573:5;2543:8;:36::i;:::-;2596:4;2589:11;;2462:145;;;;:::o;702:83::-;746:7;768:12;;761:19;;702:83;:::o;2879:240::-;2982:4;3000:26;3010:4;3016:2;3020:5;3000:9;:26::i;:::-;3032:65;3041:4;3047:10;3059:37;3090:5;3059:8;:14;3068:4;3059:14;;;;;;;;;;;;;;;:26;3074:10;3059:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;3032:8;:65::i;:::-;3110:4;3103:11;;2879:240;;;;;:::o;717:29:2:-;;;;:::o;5058:102::-;1327:10;;;;;;;;;;;1313:24;;:10;:24;;;1292:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5148:5;5129:7;:16;5137:7;5129:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;5058:102;:::o;1032:108::-;1074:66;1032:108;;;:::o;891:31::-;;;;:::o;3570:212:8:-;3670:4;3684:76;3693:10;3705:7;3714:45;3748:10;3714:8;:20;3723:10;3714:20;;;;;;;;;;;;;;;:29;3735:7;3714:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;3684:8;:76::i;:::-;3773:4;3766:11;;3570:212;;;;:::o;5346:301:2:-;5420:7;:19;5428:10;5420:19;;;;;;;;;;;;;;;;;;;;;;;;;5412:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:14;;5511:26;5529:7;5511:13;:11;:13::i;:::-;:17;;:26;;;;:::i;:::-;:44;;5490:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5616:24;5622:8;5632:7;5616:5;:24::i;:::-;5346:301;;:::o;752:36::-;;;;:::o;986:98:8:-;1041:7;1063:9;:16;1073:5;1063:16;;;;;;;;;;;;;;;;1056:23;;986:98;;;:::o;1146:41:2:-;;;;;;;;;;;;;;;;;:::o;1913:700::-;2021:15;2050:17;1129:20:12;1024:12;;;;;;;;;;;:31;;;;1040:15;:13;:15::i;:::-;1024:31;:47;;;;1060:11;;;;;;;;;;;1059:12;1024:47;1016:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1152:12;;;;;;;;;;;1129:35;;1185:4;1170:12;;:19;;;;;;;;;;;;;;;;;;1209:4;1195:11;;:18;;;;;;;;;;;;;;;;;;2039:1:2;2021:19;;2050:23;;;;;;;;;;;;;;;;;;;;2221:7;2207:11;:21;;;;2308:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2475:10;2459:28;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2459:28:2;;;;;;;;;;;;;;;;2521:3;2505:21;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2505:21:2;;;;;;;;;;;;;;;;2544:7;2577:4;2280:316;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2280:316:2;;;2257:349;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2257:349:2;;;;;;;;;;;;;;;;2238:16;:368;;;;;;;1243:15:12;1228:12;;:30;;;;;;;;;;;;;;;;;;1913:700:2;;;;:::o;4954:98::-;1327:10;;;;;;;;;;;1313:24;;:10;:24;;;1292:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5041:4;5022:7;:16;5030:7;5022:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;4954:98;:::o;1193:26::-;;;;:::o;4238:222:8:-;4343:4;4357:81;4366:10;4378:7;4387:50;4421:15;4387:8;:20;4396:10;4387:20;;;;;;;;;;;;;;;:29;4408:7;4387:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;4357:8;:81::i;:::-;4451:4;4444:11;;4238:222;;;;:::o;1703:127::-;1764:4;1776:32;1786:10;1798:2;1802:5;1776:9;:32::i;:::-;1821:4;1814:11;;1703:127;;;;:::o;1651:130:2:-;1709:16;1728:2;1709:21;;1740:34;1752:11;1765:8;1740:11;:34::i;:::-;1651:130;;:::o;4126:360::-;4322:15;1327:10;;;;;;;;;;;1313:24;;:10;:24;;;1292:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4279:1;4264:17;;:3;:17;;;;4256:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4340:6;:16;;;4357:4;4340:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4340:22:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4340:22:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4340:22:2;;;;;;;;;;;;;;;;4322:40;;4391:7;4380;:18;;4372:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4446:33;4466:3;4471:7;4446:6;:19;;;;:33;;;;;:::i;:::-;4126:360;;;;:::o;2947:1048::-;3213:14;3753:24;3169:15;3156:9;:28;;3148:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3339:16;;1074:66;3452:15;;3497:6;3533:8;3571:7;3608:6;:14;3615:6;3608:14;;;;;;;;;;;;;;;;:16;;;;;;;;;;;;3654:9;3412:277;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3412:277:2;;;3377:334;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3377:334:2;;;;;;;;;;;;;;;;3269:460;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3269:460:2;;;3242:501;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3242:501:2;;;;;;;;;;;;;;;;3213:530;;3780:29;3790:6;3798:2;3802;3806;3780:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3780:29:2;;;;;;;;3753:56;;3868:1;3840:30;;:16;:30;;;;:60;;;;;3894:6;3874:26;;:16;:26;;;3840:60;3819:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3953:35;3962:6;3970:8;3980:7;3953:8;:35::i;:::-;2947:1048;;;;;;;;;:::o;1401:150:8:-;1498:7;1522:8;:15;1531:5;1522:15;;;;;;;;;;;;;;;:24;1538:7;1522:24;;;;;;;;;;;;;;;;1515:31;;1401:150;;;;:::o;846:39:2:-;;;;;;;;;;;;;;;;;;;;;;:::o;794:25::-;;;;;;;;;;;;;:::o;6263:248:8:-;6374:1;6355:21;;:7;:21;;;;6347:30;;;;;;;;6412:1;6395:19;;:5;:19;;;;6387:28;;;;;;;;6453:5;6426:8;:15;6435:5;6426:15;;;;;;;;;;;;;;;:24;6442:7;6426:24;;;;;;;;;;;;;;;:32;;;;6489:7;6473:31;;6482:5;6473:31;;;6498:5;6473:31;;;;;;;;;;;;;;;;;;6263:248;;;:::o;4660:277::-;4752:9;:15;4762:4;4752:15;;;;;;;;;;;;;;;;4743:5;:24;;4735:33;;;;;;;;4796:1;4782:16;;:2;:16;;;;4774:25;;;;;;;;4824:26;4844:5;4824:9;:15;4834:4;4824:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;4806:9;:15;4816:4;4806:15;;;;;;;;;;;;;;;:44;;;;4872:24;4890:5;4872:9;:13;4882:2;4872:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;4856:9;:13;4866:2;4856:13;;;;;;;;;;;;;;;:40;;;;4922:2;4907:25;;4916:4;4907:25;;;4926:5;4907:25;;;;;;;;;;;;;;;;;;4660:277;;;:::o;1079:131:7:-;1137:7;1173:9;1165:1;1160;:6;;1152:15;;;;;;;;1189:1;1185;:5;1173:17;;1204:1;1197:8;;1079:131;;;;;:::o;1273:::-;1331:7;1346:9;1362:1;1358;:5;1346:17;;1382:1;1377;:6;;1369:15;;;;;;;;1398:1;1391:8;;1273:131;;;;;:::o;5265:239:8:-;5347:1;5336:7;:12;;;;5328:21;;;;;;;;5370:24;5387:6;5370:12;;:16;;:24;;;;:::i;:::-;5355:12;:39;;;;5421:30;5444:6;5421:9;:18;5431:7;5421:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;5400:9;:18;5410:7;5400:18;;;;;;;;;;;;;;;:51;;;;5483:7;5462:37;;5479:1;5462:37;;;5492:6;5462:37;;;;;;;;;;;;;;;;;;5265:239;;:::o;1349:467:12:-;1396:4;1737:10;1782:7;1770:20;1764:26;;1810:1;1804:2;:7;1797:14;;1349:467;;:::o;5870:361:2:-;5989:1;5971:14;;:19;5950:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6087:11;6074:10;;:24;;;;;;;;;;;;;;;;;;6214:9;6210:2;:13;6199:7;:25;6182:14;:42;;;;5870:361;;:::o;364:139:11:-;472:5;:14;;;487:2;491:5;472:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;472:25:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;472:25:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;472:25:11;;;;;;;;;;;;;;;;464:34;;;;;;;;364:139;;;:::o", + "source": "pragma solidity ^0.4.24;\n\nimport \"zos-lib/contracts/Initializable.sol\";\nimport \"openzeppelin-eth/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-eth/contracts/token/ERC20/ERC20.sol\";\nimport \"openzeppelin-eth/contracts/token/ERC20/SafeERC20.sol\";\nimport { PropsRewardsLib } from \"./PropsRewardsLib.sol\";\n\n/**\n * @title Props Rewards\n * @dev Contract allows to set approved apps and validators. Submit and mint rewards...\n **/\ncontract PropsRewards is Initializable, ERC20 {\n using SafeMath for uint256;\n using SafeERC20 for ERC20;\n /*\n * Events\n */ \n\n event ControllerUpdated(address indexed newController);\n\n /*\n * Storage\n */\n\n PropsRewardsLib.Data internal rewardsLibData;\n uint256 public maxTotalSupply;\n uint256 public rewardsStartTimestamp;\n address public controller; // controller entity\n mapping(address => bool) public minters;\n bytes32 public DOMAIN_SEPARATOR;\n // keccak256(\"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\");\n bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;\n mapping(address => uint256) public nonces;\n uint256 public MY_CHAIN_ID;\n /*\n * Modifiers\n */\n modifier onlyController() {\n require(\n msg.sender == controller,\n \"Must be the controller\"\n );\n _;\n }\n\n /**\n * @dev The initializer function for upgrade as initialize was already called, get the decimals used in the token to initialize the params\n * @param _controller address that will have controller functionality on token\n */\n function initialize(address _controller) public {\n uint256 decimals = 18;\n _initialize(_controller, decimals);\n }\n\n /**\n * @dev Initialize post separation of rewards contract upgrade\n * @param _tokenName string token name\n */\n function initializePermitUpgrade(string memory _tokenName)\n public\n initializer\n {\n uint256 chainId = 1;\n string memory one = \"1\";\n\n // Solidity 0.4 does not support chain ids\n // assembly {\n // chainId := chainid()\n // }\n\n MY_CHAIN_ID = chainId;\n DOMAIN_SEPARATOR = keccak256(\n abi.encode(\n keccak256(\n \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"\n ),\n keccak256(bytes(_tokenName)),\n keccak256(bytes(one)),\n chainId,\n address(this)\n )\n );\n }\n\n /**\n * @dev Allows for approvals to be made via secp256k1 signatures\n * @param _owner address owner\n * @param _spender address spender\n * @param _amount uint spender\n * @param _deadline uint spender\n * @param _v uint8 spender\n * @param _r bytes32 spender\n * @param _s bytes32 spender\n */\n function permit(\n address _owner,\n address _spender,\n uint256 _amount,\n uint256 _deadline,\n uint8 _v,\n bytes32 _r,\n bytes32 _s\n ) external {\n require(_deadline >= block.timestamp, \"Permit Expired\");\n bytes32 digest =\n keccak256(\n abi.encodePacked(\n \"\\x19\\x01\",\n DOMAIN_SEPARATOR,\n keccak256(\n abi.encode(\n PERMIT_TYPEHASH,\n _owner,\n _spender,\n _amount,\n nonces[_owner]++,\n _deadline\n )\n )\n )\n );\n address recoveredAddress = ecrecover(digest, _v, _r, _s);\n require(\n recoveredAddress != address(0) && recoveredAddress == _owner,\n \"Invalid Signature\"\n );\n _approve(_owner, _spender, _amount);\n }\n\n /**\n * @dev Reclaim all ERC20 compatible tokens\n * @param _token ERC20 The address of the token contract\n */\n function reclaimToken(\n ERC20 _token,\n address _to,\n uint256 _amount\n ) external onlyController {\n require(_to != address(0), \"Must transfer to recipient\");\n uint256 balance = _token.balanceOf(this);\n require(_amount <= balance, \"Cannot transfer more than balance\");\n _token.safeTransfer(_to, _amount);\n }\n \n /**\n * @dev Allows the controller/owner to update to a new controller\n * @param _controller address address of the new controller\n */\n function updateController(\n address _controller\n )\n public\n onlyController\n {\n require(_controller != address(0), \"Controller cannot be the zero address\");\n controller = _controller;\n emit ControllerUpdated\n (\n _controller\n );\n }\n\n function addMinter(address _minter) public onlyController {\n minters[_minter] = true;\n }\n\n function removeMinter(address _minter) public onlyController {\n minters[_minter] = false;\n }\n\n /**\n * @dev Allows minters to mint tokens to a given address\n * @param _account address of the receiving account\n * @param _amount uint256 how much to mint\n */\n function mint(address _account, uint256 _amount) public {\n require(minters[msg.sender], \"Mint fn can be called only by minter\");\n require(\n totalSupply().add(_amount) <= maxTotalSupply,\n \"Max total supply exceeded\"\n );\n _mint(_account, _amount);\n }\n \n /**\n * @dev internal intialize\n * @param _controller address that will have controller functionality on rewards protocol\n * @param _decimals uint256 number of decimals used in total supply\n */\n function _initialize(address _controller, uint256 _decimals) internal {\n require(\n maxTotalSupply == 0,\n \"Initialize rewards upgrade1 can happen only once\"\n );\n controller = _controller;\n // max total supply is 1,000,000,000 PROPS specified in AttoPROPS\n maxTotalSupply = 1 * 1e9 * (10**_decimals);\n }\n}", + "sourcePath": "/home/george/Development/props/props-token-distribution/contracts/token/PropsRewards.sol", "ast": { - "absolutePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsRewards.sol", + "absolutePath": "/home/george/Development/props/props-token-distribution/contracts/token/PropsRewards.sol", "exportedSymbols": { "PropsRewards": [ - 1502 + 373 ] }, - "id": 1503, + "id": 374, "nodeType": "SourceUnit", "nodes": [ { - "id": 824, + "id": 22, "literals": [ "solidity", "^", @@ -724,10 +534,10 @@ { "absolutePath": "zos-lib/contracts/Initializable.sol", "file": "zos-lib/contracts/Initializable.sol", - "id": 825, + "id": 23, "nodeType": "ImportDirective", - "scope": 1503, - "sourceUnit": 4184, + "scope": 374, + "sourceUnit": 1433, "src": "26:45:2", "symbolAliases": [], "unitAlias": "" @@ -735,10 +545,10 @@ { "absolutePath": "openzeppelin-eth/contracts/math/SafeMath.sol", "file": "openzeppelin-eth/contracts/math/SafeMath.sol", - "id": 826, + "id": 24, "nodeType": "ImportDirective", - "scope": 1503, - "sourceUnit": 3590, + "scope": 374, + "sourceUnit": 777, "src": "72:54:2", "symbolAliases": [], "unitAlias": "" @@ -746,25 +556,36 @@ { "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", "file": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", - "id": 827, + "id": 25, "nodeType": "ImportDirective", - "scope": 1503, - "sourceUnit": 3992, + "scope": 374, + "sourceUnit": 1179, "src": "127:58:2", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsRewardsLib.sol", + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/SafeERC20.sol", + "file": "openzeppelin-eth/contracts/token/ERC20/SafeERC20.sol", + "id": 26, + "nodeType": "ImportDirective", + "scope": 374, + "sourceUnit": 1377, + "src": "186:62:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/george/Development/props/props-token-distribution/contracts/token/PropsRewardsLib.sol", "file": "./PropsRewardsLib.sol", - "id": 829, + "id": 28, "nodeType": "ImportDirective", - "scope": 1503, - "sourceUnit": 3298, - "src": "186:56:2", + "scope": 374, + "sourceUnit": 485, + "src": "249:56:2", "symbolAliases": [ { - "foreign": 828, + "foreign": 27, "local": null } ], @@ -776,156 +597,131 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 830, + "id": 29, "name": "Initializable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4183, - "src": "390:13:2", + "referencedDeclaration": 1432, + "src": "453:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Initializable_$4183", + "typeIdentifier": "t_contract$_Initializable_$1432", "typeString": "contract Initializable" } }, - "id": 831, + "id": 30, "nodeType": "InheritanceSpecifier", - "src": "390:13:2" + "src": "453:13:2" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 832, + "id": 31, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3991, - "src": "405:5:2", + "referencedDeclaration": 1178, + "src": "468:5:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$3991", + "typeIdentifier": "t_contract$_ERC20_$1178", "typeString": "contract ERC20" } }, - "id": 833, + "id": 32, "nodeType": "InheritanceSpecifier", - "src": "405:5:2" + "src": "468:5:2" } ], "contractDependencies": [ - 3991, - 4127, - 4183 + 1178, + 1314, + 1432 ], "contractKind": "contract", "documentation": "@title Props Rewards\n@dev Contract allows to set approved apps and validators. Submit and mint rewards...*", "fullyImplemented": true, - "id": 1502, + "id": 373, "linearizedBaseContracts": [ - 1502, - 3991, - 4127, - 4183 + 373, + 1178, + 1314, + 1432 ], "name": "PropsRewards", "nodeType": "ContractDefinition", "nodes": [ { - "id": 836, + "id": 35, "libraryName": { "contractScope": null, - "id": 834, + "id": 33, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3589, - "src": "423:8:2", + "referencedDeclaration": 776, + "src": "486:8:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3589", + "typeIdentifier": "t_contract$_SafeMath_$776", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "417:27:2", + "src": "480:27:2", "typeName": { - "id": 835, + "id": 34, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "436:7:2", + "src": "499:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, + { + "id": 38, + "libraryName": { + "contractScope": null, + "id": 36, + "name": "SafeERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1376, + "src": "518:9:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$1376", + "typeString": "library SafeERC20" + } + }, + "nodeType": "UsingForDirective", + "src": "512:26:2", + "typeName": { + "contractScope": null, + "id": 37, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1178, + "src": "532:5:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$1178", + "typeString": "contract ERC20" + } + } + }, { "anonymous": false, "documentation": null, - "id": 844, - "name": "DailyRewardsSubmitted", + "id": 42, + "name": "ControllerUpdated", "nodeType": "EventDefinition", "parameters": { - "id": 843, + "id": 41, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 838, - "indexed": true, - "name": "rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 844, - "src": "514:26:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 837, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "514:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 840, - "indexed": true, - "name": "rewardsHash", - "nodeType": "VariableDeclaration", - "scope": 844, - "src": "550:27:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 839, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "550:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 842, + "id": 40, "indexed": true, - "name": "validator", + "name": "newController", "nodeType": "VariableDeclaration", - "scope": 844, - "src": "587:25:2", + "scope": 42, + "src": "600:29:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -933,10 +729,10 @@ "typeString": "address" }, "typeName": { - "id": 841, + "id": 39, "name": "address", "nodeType": "ElementaryTypeName", - "src": "587:7:2", + "src": "600:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -946,709 +742,606 @@ "visibility": "internal" } ], - "src": "504:114:2" + "src": "599:31:2" }, - "src": "477:142:2" + "src": "576:55:2" }, { - "anonymous": false, - "documentation": null, - "id": 854, - "name": "DailyRewardsApplicationsMinted", - "nodeType": "EventDefinition", - "parameters": { - "id": 853, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 846, - "indexed": true, - "name": "rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 854, - "src": "671:26:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 845, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "671:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 848, - "indexed": true, - "name": "rewardsHash", - "nodeType": "VariableDeclaration", - "scope": 854, - "src": "707:27:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 847, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "707:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 850, - "indexed": false, - "name": "numOfApplications", - "nodeType": "VariableDeclaration", - "scope": 854, - "src": "744:25:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 849, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "744:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 852, - "indexed": false, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 854, - "src": "779:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 851, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "779:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + "constant": false, + "id": 44, + "name": "rewardsLibData", + "nodeType": "VariableDeclaration", + "scope": 373, + "src": "667:44:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$483_storage", + "typeString": "struct PropsRewardsLib.Data" + }, + "typeName": { + "contractScope": null, + "id": 43, + "name": "PropsRewardsLib.Data", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 483, + "src": "667:20:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$483_storage_ptr", + "typeString": "struct PropsRewardsLib.Data" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 46, + "name": "maxTotalSupply", + "nodeType": "VariableDeclaration", + "scope": 373, + "src": "717:29:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 45, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "717:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 48, + "name": "rewardsStartTimestamp", + "nodeType": "VariableDeclaration", + "scope": 373, + "src": "752:36:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 47, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "752:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 50, + "name": "controller", + "nodeType": "VariableDeclaration", + "scope": 373, + "src": "794:25:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 49, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "794:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 54, + "name": "minters", + "nodeType": "VariableDeclaration", + "scope": 373, + "src": "846:39:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 53, + "keyType": { + "id": 51, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "854:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } - ], - "src": "661:138:2" + }, + "nodeType": "Mapping", + "src": "846:24:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 52, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "865:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } }, - "src": "625:175:2" + "value": null, + "visibility": "public" }, { - "anonymous": false, - "documentation": null, - "id": 864, - "name": "DailyRewardsValidatorsMinted", - "nodeType": "EventDefinition", - "parameters": { - "id": 863, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 856, - "indexed": true, - "name": "rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 864, - "src": "850:26:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 855, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "850:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 858, - "indexed": true, - "name": "rewardsHash", - "nodeType": "VariableDeclaration", - "scope": 864, - "src": "886:27:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 857, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "886:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 860, - "indexed": false, - "name": "numOfValidators", - "nodeType": "VariableDeclaration", - "scope": 864, - "src": "923:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 859, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "923:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 862, - "indexed": false, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 864, - "src": "956:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 861, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "956:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + "constant": false, + "id": 56, + "name": "DOMAIN_SEPARATOR", + "nodeType": "VariableDeclaration", + "scope": 373, + "src": "891:31:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 55, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "891:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "id": 59, + "name": "PERMIT_TYPEHASH", + "nodeType": "VariableDeclaration", + "scope": 373, + "src": "1032:108:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 57, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1032:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339", + "id": 58, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1074:66:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1", + "typeString": "int_const 4995...(69 digits omitted)...3241" + }, + "value": "0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 63, + "name": "nonces", + "nodeType": "VariableDeclaration", + "scope": 373, + "src": "1146:41:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 62, + "keyType": { + "id": 60, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1154:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } - ], - "src": "840:136:2" + }, + "nodeType": "Mapping", + "src": "1146:27:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 61, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1165:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } }, - "src": "806:171:2" + "value": null, + "visibility": "public" }, { - "anonymous": false, - "documentation": null, - "id": 876, - "name": "EntityUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 875, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 866, - "indexed": true, - "name": "id", - "nodeType": "VariableDeclaration", - "scope": 876, - "src": "1012:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 865, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1012:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 868, - "indexed": true, - "name": "entityType", - "nodeType": "VariableDeclaration", - "scope": 876, - "src": "1040:53:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - }, - "typeName": { - "contractScope": null, - "id": 867, - "name": "PropsRewardsLib.RewardedEntityType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1516, - "src": "1040:34:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 870, - "indexed": false, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 876, - "src": "1103:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 869, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1103:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, + "constant": false, + "id": 65, + "name": "MY_CHAIN_ID", + "nodeType": "VariableDeclaration", + "scope": 373, + "src": "1193:26:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 64, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1193:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 76, + "nodeType": "Block", + "src": "1282:121:2", + "statements": [ { - "constant": false, - "id": 872, - "indexed": false, - "name": "rewardsAddress", - "nodeType": "VariableDeclaration", - "scope": 876, - "src": "1125:22:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 871, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1125:7:2", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 71, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 68, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1447, + "src": "1313:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 69, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1313:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 70, + "name": "controller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "1327:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1313:24:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4d7573742062652074686520636f6e74726f6c6c6572", + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1351:24:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2a97db86538dc368189c5fc6f1877eb574a6bdbd5996134dcbb672078a84d0c9", + "typeString": "literal_string \"Must be the controller\"" + }, + "value": "Must be the controller" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a97db86538dc368189c5fc6f1877eb574a6bdbd5996134dcbb672078a84d0c9", + "typeString": "literal_string \"Must be the controller\"" + } + ], + "id": 67, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1451, + "src": "1292:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 73, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1292:93:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" + "id": 74, + "nodeType": "ExpressionStatement", + "src": "1292:93:2" }, { - "constant": false, - "id": 874, - "indexed": true, - "name": "sidechainAddress", - "nodeType": "VariableDeclaration", - "scope": 876, - "src": "1157:32:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 873, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1157:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" + "id": 75, + "nodeType": "PlaceholderStatement", + "src": "1395:1:2" } - ], - "src": "1002:193:2" + ] }, - "src": "983:213:2" - }, - { - "anonymous": false, "documentation": null, - "id": 886, - "name": "ParameterUpdated", - "nodeType": "EventDefinition", + "id": 77, + "name": "onlyController", + "nodeType": "ModifierDefinition", "parameters": { - "id": 885, + "id": 66, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 878, - "indexed": false, - "name": "param", - "nodeType": "VariableDeclaration", - "scope": 886, - "src": "1234:35:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - "typeName": { - "contractScope": null, - "id": 877, - "name": "PropsRewardsLib.ParameterName", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1513, - "src": "1234:29:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - "value": null, - "visibility": "internal" - }, + "parameters": [], + "src": "1279:2:2" + }, + "src": "1256:147:2", + "visibility": "internal" + }, + { + "body": { + "id": 91, + "nodeType": "Block", + "src": "1699:82:2", + "statements": [ { - "constant": false, - "id": 880, - "indexed": false, - "name": "newValue", - "nodeType": "VariableDeclaration", - "scope": 886, - "src": "1279:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 879, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1279:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 882, - "indexed": false, - "name": "oldValue", - "nodeType": "VariableDeclaration", - "scope": 886, - "src": "1305:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 881, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1305:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "assignments": [ + 83 + ], + "declarations": [ + { + "constant": false, + "id": 83, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 92, + "src": "1709:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 82, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1709:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "indexed": false, - "name": "rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 886, - "src": "1331:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 883, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1331:7:2", + ], + "id": 85, + "initialValue": { + "argumentTypes": null, + "hexValue": "3138", + "id": 84, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1728:2:2", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1224:131:2" - }, - "src": "1202:154:2" - }, - { - "anonymous": false, - "documentation": null, - "id": 893, - "name": "ValidatorsListUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 889, - "indexed": false, - "name": "validatorsList", - "nodeType": "VariableDeclaration", - "scope": 893, - "src": "1399:24:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 887, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1399:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" }, - "id": 888, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1399:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } + "value": "18" }, - "value": null, - "visibility": "internal" + "nodeType": "VariableDeclarationStatement", + "src": "1709:21:2" }, { - "constant": false, - "id": 891, - "indexed": true, - "name": "rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 893, - "src": "1433:26:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 890, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1433:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1389:76:2" - }, - "src": "1362:104:2" - }, - { - "anonymous": false, - "documentation": null, - "id": 900, - "name": "ApplicationsListUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 899, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 896, - "indexed": false, - "name": "applicationsList", - "nodeType": "VariableDeclaration", - "scope": 900, - "src": "1511:26:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 894, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1511:7:2", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 87, + "name": "_controller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 79, + "src": "1752:11:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 88, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "1765:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 86, + "name": "_initialize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 372, + "src": "1740:11:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" } }, - "id": 895, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1511:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 898, - "indexed": true, - "name": "rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 900, - "src": "1547:26:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 897, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1547:7:2", + "id": 89, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1740:34:2", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" + "id": 90, + "nodeType": "ExpressionStatement", + "src": "1740:34:2" } - ], - "src": "1501:78:2" + ] }, - "src": "1472:108:2" - }, - { - "anonymous": false, - "documentation": null, - "id": 904, - "name": "ControllerUpdated", - "nodeType": "EventDefinition", + "documentation": "@dev The initializer function for upgrade as initialize was already called, get the decimals used in the token to initialize the params\n@param _controller address that will have controller functionality on token", + "id": 92, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", "parameters": { - "id": 903, + "id": 80, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 902, - "indexed": true, - "name": "newController", + "id": 79, + "name": "_controller", "nodeType": "VariableDeclaration", - "scope": 904, - "src": "1610:29:2", + "scope": 92, + "src": "1671:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1656,10 +1349,10 @@ "typeString": "address" }, "typeName": { - "id": 901, + "id": 78, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1610:7:2", + "src": "1671:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1669,354 +1362,774 @@ "visibility": "internal" } ], - "src": "1609:31:2" + "src": "1670:21:2" + }, + "payable": false, + "returnParameters": { + "id": 81, + "nodeType": "ParameterList", + "parameters": [], + "src": "1699:0:2" }, - "src": "1586:55:2" + "scope": 373, + "src": "1651:130:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" }, { - "anonymous": false, - "documentation": null, - "id": 916, - "name": "Settlement", - "nodeType": "EventDefinition", - "parameters": { - "id": 915, - "nodeType": "ParameterList", - "parameters": [ + "body": { + "id": 136, + "nodeType": "Block", + "src": "2011:602:2", + "statements": [ { - "constant": false, - "id": 906, - "indexed": true, - "name": "applicationId", - "nodeType": "VariableDeclaration", - "scope": 916, - "src": "1673:29:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 905, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1673:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "assignments": [ + 100 + ], + "declarations": [ + { + "constant": false, + "id": 100, + "name": "chainId", + "nodeType": "VariableDeclaration", + "scope": 137, + "src": "2021:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 99, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2021:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 908, - "indexed": true, - "name": "userId", - "nodeType": "VariableDeclaration", - "scope": 916, - "src": "1712:22:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 907, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1712:7:2", + ], + "id": 102, + "initialValue": { + "argumentTypes": null, + "hexValue": "31", + "id": 101, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2039:1:2", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" }, - "value": null, - "visibility": "internal" + "nodeType": "VariableDeclarationStatement", + "src": "2021:19:2" }, { - "constant": false, - "id": 910, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 916, - "src": "1744:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 909, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1744:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "assignments": [ + 104 + ], + "declarations": [ + { + "constant": false, + "id": 104, + "name": "one", + "nodeType": "VariableDeclaration", + "scope": 137, + "src": "2050:17:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 103, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2050:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" } + ], + "id": 106, + "initialValue": { + "argumentTypes": null, + "hexValue": "31", + "id": 105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2070:3:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6", + "typeString": "literal_string \"1\"" + }, + "value": "1" }, - "value": null, - "visibility": "internal" + "nodeType": "VariableDeclarationStatement", + "src": "2050:23:2" }, { - "constant": false, - "id": 912, - "indexed": false, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 916, - "src": "1772:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 911, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1772:7:2", + "expression": { + "argumentTypes": null, + "id": 109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 107, + "name": "MY_CHAIN_ID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 65, + "src": "2207:11:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 108, + "name": "chainId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 100, + "src": "2221:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2207:21:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "value": null, - "visibility": "internal" + "id": 110, + "nodeType": "ExpressionStatement", + "src": "2207:21:2" }, - { - "constant": false, - "id": 914, - "indexed": false, - "name": "rewardsAddress", - "nodeType": "VariableDeclaration", - "scope": 916, - "src": "1796:22:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 913, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1796:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1663:161:2" - }, - "src": "1647:178:2" - }, - { - "constant": false, - "id": 918, - "name": "rewardsLibData", - "nodeType": "VariableDeclaration", - "scope": 1502, - "src": "1860:44:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 917, - "name": "PropsRewardsLib.Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "1860:20:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 920, - "name": "maxTotalSupply", - "nodeType": "VariableDeclaration", - "scope": 1502, - "src": "1910:29:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 919, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1910:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 922, - "name": "rewardsStartTimestamp", - "nodeType": "VariableDeclaration", - "scope": 1502, - "src": "1945:36:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1945:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 924, - "name": "controller", - "nodeType": "VariableDeclaration", - "scope": 1502, - "src": "1987:25:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 923, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1987:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 935, - "nodeType": "Block", - "src": "2097:121:2", - "statements": [ { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "id": 134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 111, + "name": "DOMAIN_SEPARATOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "2238:16:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", + "id": 116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2339:84:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f", + "typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"" + }, + "value": "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f", + "typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"" + } + ], + "id": 115, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1441, + "src": "2308:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 117, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2308:133:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 120, + "name": "_tokenName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "2475:10:2", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 119, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2469:5:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": "bytes" + }, + "id": 121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2469:17:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + ], + "id": 118, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1441, + "src": "2459:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2459:28:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 125, + "name": "one", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 104, + "src": "2521:3:2", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2515:5:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": "bytes" + }, + "id": 126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2515:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + ], + "id": 123, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1441, + "src": "2505:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2505:21:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 128, + "name": "chainId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 100, + "src": "2544:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 130, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1478, + "src": "2577:4:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_PropsRewards_$373", + "typeString": "contract PropsRewards" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_PropsRewards_$373", + "typeString": "contract PropsRewards" + } + ], + "id": 129, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2569:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2569:13:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], "expression": { - "argumentTypes": null, - "id": 927, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "2128:3:2", + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 113, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1434, + "src": "2280:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 114, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2280:10:2", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" } }, - "id": 928, + "id": 132, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2128:10:2", + "names": [], + "nodeType": "FunctionCall", + "src": "2280:316:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 929, - "name": "controller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 924, - "src": "2142:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } - }, - "src": "2128:24:2", + ], + "id": 112, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1441, + "src": "2257:9:2", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" } }, - { + "id": 133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2257:349:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "2238:368:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 135, + "nodeType": "ExpressionStatement", + "src": "2238:368:2" + } + ] + }, + "documentation": "@dev Initialize post separation of rewards contract upgrade\n@param _tokenName string token name", + "id": 137, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 97, + "modifierName": { + "argumentTypes": null, + "id": 96, + "name": "initializer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1413, + "src": "1995:11:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1995:11:2" + } + ], + "name": "initializePermitUpgrade", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 95, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 94, + "name": "_tokenName", + "nodeType": "VariableDeclaration", + "scope": 137, + "src": "1946:24:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 93, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1946:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1945:26:2" + }, + "payable": false, + "returnParameters": { + "id": 98, + "nodeType": "ParameterList", + "parameters": [], + "src": "2011:0:2" + }, + "scope": 373, + "src": "1913:700:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 214, + "nodeType": "Block", + "src": "3138:857:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "hexValue": "4d7573742062652074686520636f6e74726f6c6c6572", - "id": 931, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 155, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 145, + "src": "3156:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 156, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1437, + "src": "3169:5:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3169:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3156:28:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5065726d69742045787069726564", + "id": 159, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2166:24:2", + "src": "3186:16:2", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2a97db86538dc368189c5fc6f1877eb574a6bdbd5996134dcbb672078a84d0c9", - "typeString": "literal_string \"Must be the controller\"" + "typeIdentifier": "t_stringliteral_206b253708b173d1c2e8e9a9892423d311a63be2c33c320a780f9508326eb500", + "typeString": "literal_string \"Permit Expired\"" }, - "value": "Must be the controller" + "value": "Permit Expired" } ], "expression": { @@ -2026,25 +2139,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_2a97db86538dc368189c5fc6f1877eb574a6bdbd5996134dcbb672078a84d0c9", - "typeString": "literal_string \"Must be the controller\"" + "typeIdentifier": "t_stringliteral_206b253708b173d1c2e8e9a9892423d311a63be2c33c320a780f9508326eb500", + "typeString": "literal_string \"Permit Expired\"" } ], - "id": 926, + "id": 154, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4201, - 4202 + 1450, + 1451 ], - "referencedDeclaration": 4202, - "src": "2107:7:2", + "referencedDeclaration": 1451, + "src": "3148:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 932, + "id": 160, "isConstant": false, "isLValue": false, "isPure": false, @@ -2052,10688 +2165,208 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2107:93:2", + "src": "3148:55:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 933, + "id": 161, "nodeType": "ExpressionStatement", - "src": "2107:93:2" + "src": "3148:55:2" }, - { - "id": 934, - "nodeType": "PlaceholderStatement", - "src": "2210:1:2" - } - ] - }, - "documentation": null, - "id": 936, - "name": "onlyController", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 925, - "nodeType": "ParameterList", - "parameters": [], - "src": "2094:2:2" - }, - "src": "2071:147:2", - "visibility": "internal" - }, - { - "body": { - "id": 956, - "nodeType": "Block", - "src": "2808:149:2", - "statements": [ { "assignments": [ - 946 + 163 ], "declarations": [ { "constant": false, - "id": 946, - "name": "decimals", + "id": 163, + "name": "digest", "nodeType": "VariableDeclaration", - "scope": 957, - "src": "2818:16:2", + "scope": 215, + "src": "3213:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, "typeName": { - "id": 945, - "name": "uint256", + "id": 162, + "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2818:7:2", + "src": "3213:7:2", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], - "id": 948, + "id": 185, "initialValue": { - "argumentTypes": null, - "hexValue": "3138", - "id": 947, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2837:2:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "nodeType": "VariableDeclarationStatement", - "src": "2818:21:2" - }, - { - "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 950, - "name": "_controller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "2880:11:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 951, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 946, - "src": "2893:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 952, - "name": "_minSecondsBetweenDays", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 940, - "src": "2903:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 953, - "name": "_rewardsStartTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 942, - "src": "2927:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 949, - "name": "_initializePostRewardsUpgrade1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "2849:30:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256,uint256)" - } - }, - "id": 954, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2849:101:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 955, - "nodeType": "ExpressionStatement", - "src": "2849:101:2" - } - ] - }, - "documentation": "@dev The initializer function for upgrade as initialize was already called, get the decimals used in the token to initialize the params\n@param _controller address that will have controller functionality on rewards protocol\n@param _minSecondsBetweenDays uint256 seconds required to pass between consecutive rewards day\n@param _rewardsStartTimestamp uint256 day 0 timestamp", - "id": 957, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "initializePostRewardsUpgrade1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 943, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 938, - "name": "_controller", - "nodeType": "VariableDeclaration", - "scope": 957, - "src": "2683:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 937, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2683:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 940, - "name": "_minSecondsBetweenDays", - "nodeType": "VariableDeclaration", - "scope": 957, - "src": "2712:30:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 939, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2712:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 942, - "name": "_rewardsStartTimestamp", - "nodeType": "VariableDeclaration", - "scope": 957, - "src": "2752:30:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 941, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2752:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2673:115:2" - }, - "payable": false, - "returnParameters": { - "id": 944, - "nodeType": "ParameterList", - "parameters": [], - "src": "2808:0:2" - }, - "scope": 1502, - "src": "2635:322:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 980, - "nodeType": "Block", - "src": "3268:150:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 970, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "3308:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - { - "argumentTypes": null, - "id": 971, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "3324:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 972, - "name": "_validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "3337:11:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 967, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "3278:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "setValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 2464, - "src": "3278:29:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,uint256,address[] memory)" - } - }, - "id": 973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3278:71:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 974, - "nodeType": "ExpressionStatement", - "src": "3278:71:2" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 976, - "name": "_validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "3386:11:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 977, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "3399:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 975, - "name": "ValidatorsListUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 893, - "src": "3364:21:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$", - "typeString": "function (address[] memory,uint256)" - } - }, - "id": 978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3364:47:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 979, - "nodeType": "EmitStatement", - "src": "3359:52:2" - } - ] - }, - "documentation": "@dev Set new validators list\n@param _rewardsDay uint256 the rewards day from which this change should take effect\n@param _validators address[] array of validators", - "id": 981, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 965, - "modifierName": { - "argumentTypes": null, - "id": 964, - "name": "onlyController", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "3249:14:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3249:14:2" - } - ], - "name": "setValidators", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 963, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 981, - "src": "3182:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3182:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 962, - "name": "_validators", - "nodeType": "VariableDeclaration", - "scope": 981, - "src": "3203:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 960, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3203:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 961, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3203:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3181:44:2" - }, - "payable": false, - "returnParameters": { - "id": 966, - "nodeType": "ParameterList", - "parameters": [], - "src": "3268:0:2" - }, - "scope": 1502, - "src": "3159:259:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1004, - "nodeType": "Block", - "src": "3739:158:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 994, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "3781:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - { - "argumentTypes": null, - "id": 995, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "3797:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 996, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 986, - "src": "3810:13:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 991, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "3749:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "setApplications", - "nodeType": "MemberAccess", - "referencedDeclaration": 2515, - "src": "3749:31:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,uint256,address[] memory)" - } - }, - "id": 997, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3749:75:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 998, - "nodeType": "ExpressionStatement", - "src": "3749:75:2" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1000, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 986, - "src": "3863:13:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1001, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "3878:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 999, - "name": "ApplicationsListUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "3839:23:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$", - "typeString": "function (address[] memory,uint256)" - } - }, - "id": 1002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3839:51:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1003, - "nodeType": "EmitStatement", - "src": "3834:56:2" - } - ] - }, - "documentation": "@dev Set new applications list\n@param _rewardsDay uint256 the rewards day from which this change should take effect\n@param _applications address[] array of applications", - "id": 1005, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 989, - "modifierName": { - "argumentTypes": null, - "id": 988, - "name": "onlyController", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "3720:14:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3720:14:2" - } - ], - "name": "setApplications", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 987, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 983, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 1005, - "src": "3651:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3651:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 986, - "name": "_applications", - "nodeType": "VariableDeclaration", - "scope": 1005, - "src": "3672:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 984, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3672:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 985, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3672:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3650:46:2" - }, - "payable": false, - "returnParameters": { - "id": 990, - "nodeType": "ParameterList", - "parameters": [], - "src": "3739:0:2" - }, - "scope": 1502, - "src": "3626:271:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1022, - "nodeType": "Block", - "src": "4274:93:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1017, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "4319:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - { - "argumentTypes": null, - "id": 1018, - "name": "_entityType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "4335:11:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - { - "argumentTypes": null, - "id": 1019, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1009, - "src": "4348:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1015, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "4291:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getEntities", - "nodeType": "MemberAccess", - "referencedDeclaration": 2569, - "src": "4291:27:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_RewardedEntityType_$1516_$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.RewardedEntityType,uint256) view returns (address[] memory)" - } - }, - "id": 1020, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4291:69:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 1014, - "id": 1021, - "nodeType": "Return", - "src": "4284:76:2" - } - ] - }, - "documentation": "@dev Get the applications or validators list\n@param _entityType RewardedEntityType either application (0) or validator (1)\n@param _rewardsDay uint256 the rewards day to use for this value", - "id": 1023, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getEntities", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1010, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1007, - "name": "_entityType", - "nodeType": "VariableDeclaration", - "scope": 1023, - "src": "4145:46:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - }, - "typeName": { - "contractScope": null, - "id": 1006, - "name": "PropsRewardsLib.RewardedEntityType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1516, - "src": "4145:34:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1009, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 1023, - "src": "4193:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1008, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4193:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4144:69:2" - }, - "payable": false, - "returnParameters": { - "id": 1014, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1013, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1023, - "src": "4259:9:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1011, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4259:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1012, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4259:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4258:11:2" - }, - "scope": 1502, - "src": "4124:243:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1126, - "nodeType": "Block", - "src": "4921:1768:2", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1036, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "5062:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1037, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "5076:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1038, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "5076:27:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1039, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "lastApplicationsRewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1564, - "src": "5076:54:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5062:68:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1071, - "nodeType": "IfStatement", - "src": "5058:659:2", - "trueBody": { - "id": 1070, - "nodeType": "Block", - "src": "5132:585:2", - "statements": [ - { - "assignments": [ - 1042 - ], - "declarations": [ - { - "constant": false, - "id": 1042, - "name": "previousDayValidatorRewardsAmount", - "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "5146:41:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5146:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1054, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1045, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "5249:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1046, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "5281:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "5281:27:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1048, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "lastApplicationsRewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1564, - "src": "5281:54:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1049, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "5353:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "5353:27:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1051, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "lastConfirmedRewardsHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 1562, - "src": "5353:52:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 1052, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5423:5:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "argumentTypes": null, - "id": 1043, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "5190:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "calculateValidatorRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1869, - "src": "5190:41:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$_t_bytes32_$_t_bool_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,uint256,bytes32,bool) view returns (uint256)" - } - }, - "id": 1053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5190:252:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5146:296:2" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1055, - "name": "previousDayValidatorRewardsAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1042, - "src": "5460:33:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1056, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5496:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5460:37:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1069, - "nodeType": "IfStatement", - "src": "5456:251:2", - "trueBody": { - "id": 1068, - "nodeType": "Block", - "src": "5499:208:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1059, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "5548:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1060, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "5548:27:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1061, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "lastApplicationsRewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1564, - "src": "5548:54:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1062, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "5604:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1063, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "5604:27:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1064, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "lastConfirmedRewardsHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 1562, - "src": "5604:52:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1065, - "name": "previousDayValidatorRewardsAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1042, - "src": "5658:33:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1058, - "name": "_mintDailyRewardsForValidators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1451, - "src": "5517:30:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$", - "typeString": "function (uint256,bytes32,uint256)" - } - }, - "id": 1066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5517:175:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1067, - "nodeType": "ExpressionStatement", - "src": "5517:175:2" - } - ] - } - } - ] - } - }, - { - "assignments": [ - 1073 - ], - "declarations": [ - { - "constant": false, - "id": 1073, - "name": "appRewardsSum", - "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "5804:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1072, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5804:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1084, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1076, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "5896:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - { - "argumentTypes": null, - "id": 1077, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "5924:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1078, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "5949:12:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1079, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1030, - "src": "5975:13:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1080, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "6002:8:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1081, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "6024:11:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6024:13:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1074, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "5828:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1075, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "calculateAndFinalizeApplicationRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 2022, - "src": "5828:54:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$_t_bytes32_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,uint256,bytes32,address[] memory,uint256[] memory,uint256) returns (uint256)" - } - }, - "id": 1083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5828:219:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5804:243:2" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1087, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1085, - "name": "appRewardsSum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1073, - "src": "6061:13:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1086, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6077:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6061:17:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1097, - "nodeType": "IfStatement", - "src": "6057:139:2", - "trueBody": { - "id": 1096, - "nodeType": "Block", - "src": "6080:116:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1089, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "6119:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1090, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "6132:12:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1091, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1030, - "src": "6146:13:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1092, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "6161:8:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 1093, - "name": "appRewardsSum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1073, - "src": "6171:13:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1088, - "name": "_mintDailyRewardsForApps", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1501, - "src": "6094:24:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_bytes32_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$__$", - "typeString": "function (uint256,bytes32,address[] memory,uint256[] memory,uint256)" - } - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6094:91:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1095, - "nodeType": "ExpressionStatement", - "src": "6094:91:2" - } - ] - } - }, - { - "assignments": [ - 1099 - ], - "declarations": [ - { - "constant": false, - "id": 1099, - "name": "validatorRewardsAmount", - "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "6278:30:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1098, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6278:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1107, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1102, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "6366:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - { - "argumentTypes": null, - "id": 1103, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "6394:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1104, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "6419:12:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1105, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6445:4:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "argumentTypes": null, - "id": 1100, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "6311:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "calculateValidatorRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1869, - "src": "6311:41:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$_t_bytes32_$_t_bool_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,uint256,bytes32,bool) view returns (uint256)" - } - }, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6311:148:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6278:181:2" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1108, - "name": "validatorRewardsAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1099, - "src": "6473:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1109, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6498:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6473:26:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1118, - "nodeType": "IfStatement", - "src": "6469:138:2", - "trueBody": { - "id": 1117, - "nodeType": "Block", - "src": "6501:106:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1112, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "6546:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1113, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "6559:12:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1114, - "name": "validatorRewardsAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1099, - "src": "6573:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1111, - "name": "_mintDailyRewardsForValidators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1451, - "src": "6515:30:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$", - "typeString": "function (uint256,bytes32,uint256)" - } - }, - "id": 1115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6515:81:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1116, - "nodeType": "ExpressionStatement", - "src": "6515:81:2" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1120, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "6644:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1121, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "6657:12:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1122, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "6671:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6671:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1119, - "name": "DailyRewardsSubmitted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 844, - "src": "6622:21:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (uint256,bytes32,address)" - } - }, - "id": 1124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6622:60:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1125, - "nodeType": "EmitStatement", - "src": "6617:65:2" - } - ] - }, - "documentation": "@dev The function is called by validators with the calculation of the daily rewards\n@param _rewardsDay uint256 the rewards day\n@param _rewardsHash bytes32 hash of the rewards data\n@param _applications address[] array of application addresses getting the daily reward\n@param _amounts uint256[] array of amounts each app should get", - "id": 1127, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "submitDailyRewards", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1034, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1025, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "4785:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1024, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4785:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1027, - "name": "_rewardsHash", - "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "4814:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1026, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4814:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1030, - "name": "_applications", - "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "4844:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1028, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4844:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1029, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4844:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1033, - "name": "_amounts", - "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "4877:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1031, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4877:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1032, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4877:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4775:126:2" - }, - "payable": false, - "returnParameters": { - "id": 1035, - "nodeType": "ParameterList", - "parameters": [], - "src": "4921:0:2" - }, - "scope": 1502, - "src": "4748:1941:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "6945:202:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1135, - "name": "_controller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "6963:11:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6986:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6978:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6978:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6963:25:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f6e74726f6c6c65722063616e6e6f7420626520746865207a65726f2061646472657373", - "id": 1140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6990:39:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8a495fa0d3c9f7c33b0da68880d49b175abe1e0d24ae9a6277a9d61a20134261", - "typeString": "literal_string \"Controller cannot be the zero address\"" - }, - "value": "Controller cannot be the zero address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8a495fa0d3c9f7c33b0da68880d49b175abe1e0d24ae9a6277a9d61a20134261", - "typeString": "literal_string \"Controller cannot be the zero address\"" - } - ], - "id": 1134, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "6955:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6955:75:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1142, - "nodeType": "ExpressionStatement", - "src": "6955:75:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1143, - "name": "controller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 924, - "src": "7040:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1144, - "name": "_controller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "7053:11:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7040:24:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1146, - "nodeType": "ExpressionStatement", - "src": "7040:24:2" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1148, - "name": "_controller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "7119:11:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1147, - "name": "ControllerUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 904, - "src": "7079:17:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7079:61:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1150, - "nodeType": "EmitStatement", - "src": "7074:66:2" - } - ] - }, - "documentation": "@dev Allows the controller/owner to update to a new controller\n@param _controller address address of the new controller", - "id": 1152, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1132, - "modifierName": { - "argumentTypes": null, - "id": 1131, - "name": "onlyController", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "6926:14:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6926:14:2" - } - ], - "name": "updateController", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1129, - "name": "_controller", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "6877:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6877:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6867:35:2" - }, - "payable": false, - "returnParameters": { - "id": 1133, - "nodeType": "ParameterList", - "parameters": [], - "src": "6945:0:2" - }, - "scope": 1502, - "src": "6842:305:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1168, - "nodeType": "Block", - "src": "7537:93:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1163, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "7588:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - { - "argumentTypes": null, - "id": 1164, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "7604:5:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - { - "argumentTypes": null, - "id": 1165, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "7611:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1161, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "7554:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getParameterValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 2109, - "src": "7554:33:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_ParameterName_$1513_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.ParameterName,uint256) view returns (uint256)" - } - }, - "id": 1166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7554:69:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1160, - "id": 1167, - "nodeType": "Return", - "src": "7547:76:2" - } - ] - }, - "documentation": "@dev Allows getting a parameter value based on timestamp\n@param _name ParameterName name of the parameter\n@param _rewardsDay uint256 starting when should this parameter use the current value", - "id": 1169, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getParameter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1169, - "src": "7408:35:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - "typeName": { - "contractScope": null, - "id": 1153, - "name": "PropsRewardsLib.ParameterName", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1513, - "src": "7408:29:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1156, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 1169, - "src": "7453:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1155, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7453:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7398:80:2" - }, - "payable": false, - "returnParameters": { - "id": 1160, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1159, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1169, - "src": "7524:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1158, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7524:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7523:9:2" - }, - "scope": 1502, - "src": "7377:253:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1214, - "nodeType": "Block", - "src": "8092:355:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1183, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "8134:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - { - "argumentTypes": null, - "id": 1184, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1171, - "src": "8150:5:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - { - "argumentTypes": null, - "id": 1185, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1173, - "src": "8157:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1186, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1175, - "src": "8165:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1180, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "8102:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateParameter", - "nodeType": "MemberAccess", - "referencedDeclaration": 2198, - "src": "8102:31:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_ParameterName_$1513_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.ParameterName,uint256,uint256)" - } - }, - "id": 1187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8102:75:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1188, - "nodeType": "ExpressionStatement", - "src": "8102:75:2" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1190, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1171, - "src": "8222:5:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1191, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "8241:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "8241:25:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 1196, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1194, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1171, - "src": "8275:5:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 1193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8267:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 1195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8267:14:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8241:41:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } - }, - "id": 1197, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 1518, - "src": "8241:54:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1198, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "8309:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1199, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "8309:25:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 1203, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1201, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1171, - "src": "8343:5:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 1200, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8335:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 1202, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8335:14:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8309:41:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } - }, - "id": 1204, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previousValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 1520, - "src": "8309:55:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1205, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "8378:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1206, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "8378:25:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 1210, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1208, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1171, - "src": "8412:5:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 1207, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8404:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8404:14:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8378:41:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } - }, - "id": 1211, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "rewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1522, - "src": "8378:52:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1189, - "name": "ParameterUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "8192:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_ParameterName_$1513_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (enum PropsRewardsLib.ParameterName,uint256,uint256,uint256)" - } - }, - "id": 1212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8192:248:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1213, - "nodeType": "EmitStatement", - "src": "8187:253:2" - } - ] - }, - "documentation": "@dev Allows the controller/owner to update rewards parameters\n@param _name ParameterName name of the parameter\n@param _value uint256 new value for the parameter\n@param _rewardsDay uint256 starting when should this parameter use the current value", - "id": 1215, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1178, - "modifierName": { - "argumentTypes": null, - "id": 1177, - "name": "onlyController", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "8073:14:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8073:14:2" - } - ], - "name": "updateParameter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1176, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1171, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1215, - "src": "7955:35:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - "typeName": { - "contractScope": null, - "id": 1170, - "name": "PropsRewardsLib.ParameterName", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1513, - "src": "7955:29:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1173, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 1215, - "src": "8000:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1172, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8000:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1175, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 1215, - "src": "8024:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1174, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8024:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7945:104:2" - }, - "payable": false, - "returnParameters": { - "id": 1179, - "nodeType": "ParameterList", - "parameters": [], - "src": "8092:0:2" - }, - "scope": 1502, - "src": "7921:526:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1245, - "nodeType": "Block", - "src": "9024:213:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1229, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "9063:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - { - "argumentTypes": null, - "id": 1230, - "name": "_entityType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1217, - "src": "9079:11:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - { - "argumentTypes": null, - "id": 1231, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "9092:5:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1232, - "name": "_rewardsAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "9099:15:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1233, - "name": "_sidechainAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1223, - "src": "9116:17:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1226, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "9034:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateEntity", - "nodeType": "MemberAccess", - "referencedDeclaration": 2237, - "src": "9034:28:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_RewardedEntityType_$1516_$_t_bytes32_$_t_address_$_t_address_$returns$__$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.RewardedEntityType,bytes32,address,address)" - } - }, - "id": 1234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9034:100:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1235, - "nodeType": "ExpressionStatement", - "src": "9034:100:2" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1237, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "9163:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9163:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1239, - "name": "_entityType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1217, - "src": "9175:11:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - { - "argumentTypes": null, - "id": 1240, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "9188:5:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1241, - "name": "_rewardsAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "9195:15:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1242, - "name": "_sidechainAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1223, - "src": "9212:17:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1236, - "name": "EntityUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 876, - "src": "9149:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_enum$_RewardedEntityType_$1516_$_t_bytes32_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,enum PropsRewardsLib.RewardedEntityType,bytes32,address,address)" - } - }, - "id": 1243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9149:81:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1244, - "nodeType": "EmitStatement", - "src": "9144:86:2" - } - ] - }, - "documentation": "@dev Allows an application or validator to add/update its details\n@param _entityType RewardedEntityType either application (0) or validator (1)\n@param _name bytes32 name of the app\n@param _rewardsAddress address an address for the app to receive the rewards\n@param _sidechainAddress address the address used for using the sidechain", - "id": 1246, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "updateEntity", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1224, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1217, - "name": "_entityType", - "nodeType": "VariableDeclaration", - "scope": 1246, - "src": "8861:46:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - }, - "typeName": { - "contractScope": null, - "id": 1216, - "name": "PropsRewardsLib.RewardedEntityType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1516, - "src": "8861:34:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1219, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1246, - "src": "8917:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1218, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8917:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1221, - "name": "_rewardsAddress", - "nodeType": "VariableDeclaration", - "scope": 1246, - "src": "8940:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1220, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8940:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1223, - "name": "_sidechainAddress", - "nodeType": "VariableDeclaration", - "scope": 1246, - "src": "8973:25:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1222, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8973:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8851:153:2" - }, - "payable": false, - "returnParameters": { - "id": 1225, - "nodeType": "ParameterList", - "parameters": [], - "src": "9024:0:2" - }, - "scope": 1502, - "src": "8830:407:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1285, - "nodeType": "Block", - "src": "9834:310:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1258, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "9865:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1259, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1583, - "src": "9865:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 1261, - "indexExpression": { - "argumentTypes": null, - "id": 1260, - "name": "_applicationAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1248, - "src": "9893:19:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9865:48:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 1262, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "rewardsAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1527, - "src": "9865:63:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1263, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "9932:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9932:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "9865:77:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "736574746c65206d6179206f6e6c792062652063616c6c656420627920616e206170706c69636174696f6e", - "id": 1266, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9956:45:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_74d546608d09ea94d157f392042beb5d20d62f51c32116bbc348b06ca1518bc5", - "typeString": "literal_string \"settle may only be called by an application\"" - }, - "value": "settle may only be called by an application" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_74d546608d09ea94d157f392042beb5d20d62f51c32116bbc348b06ca1518bc5", - "typeString": "literal_string \"settle may only be called by an application\"" - } - ], - "id": 1257, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "9844:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9844:167:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1268, - "nodeType": "ExpressionStatement", - "src": "9844:167:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1270, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "10031:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10031:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1272, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "10043:3:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1273, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "10048:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1269, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "10021:9:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 1274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10021:35:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1275, - "nodeType": "ExpressionStatement", - "src": "10021:35:2" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1277, - "name": "_applicationAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1248, - "src": "10082:19:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1278, - "name": "_userId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1250, - "src": "10103:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1279, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "10112:3:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1280, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "10117:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1281, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "10126:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10126:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1276, - "name": "Settlement", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 916, - "src": "10071:10:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,bytes32,address,uint256,address)" - } - }, - "id": 1283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10071:66:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1284, - "nodeType": "EmitStatement", - "src": "10066:71:2" - } - ] - }, - "documentation": "@dev Allows an application to settle sidechain props. Should be called from an application rewards address\n@param _applicationAddress address the application main address (used to setup the application)\n@param _userId bytes32 identification of the user on the sidechain that was settled\n@param _to address where to send the props to\n@param _amount uint256 the address used for using the sidechain", - "id": 1286, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "settle", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1248, - "name": "_applicationAddress", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "9710:27:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1247, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9710:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1250, - "name": "_userId", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "9747:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1249, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9747:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1252, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "9772:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1251, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9772:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1254, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "9793:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9793:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9700:114:2" - }, - "payable": false, - "returnParameters": { - "id": 1256, - "nodeType": "ParameterList", - "parameters": [], - "src": "9834:0:2" - }, - "scope": 1502, - "src": "9685:459:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1385, - "nodeType": "Block", - "src": "10739:1199:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1298, - "name": "maxTotalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "10757:14:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1299, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10773:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10757:17:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e697469616c697a6520726577617264732075706772616465312063616e2068617070656e206f6e6c79206f6e6365", - "id": 1301, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10776:50:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8f3fa00998356bee6475356a7d882a097c898c4220629a10c10cc1088d89dcb0", - "typeString": "literal_string \"Initialize rewards upgrade1 can happen only once\"" - }, - "value": "Initialize rewards upgrade1 can happen only once" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8f3fa00998356bee6475356a7d882a097c898c4220629a10c10cc1088d89dcb0", - "typeString": "literal_string \"Initialize rewards upgrade1 can happen only once\"" - } - ], - "id": 1297, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "10749:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10749:78:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1303, - "nodeType": "ExpressionStatement", - "src": "10749:78:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1304, - "name": "controller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 924, - "src": "10837:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1305, - "name": "_controller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "10850:11:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10837:24:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1307, - "nodeType": "ExpressionStatement", - "src": "10837:24:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1311, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "10958:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1312, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "10974:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "ParameterName", - "nodeType": "MemberAccess", - "referencedDeclaration": 1513, - "src": "10974:29:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ParameterName_$1513_$", - "typeString": "type(enum PropsRewardsLib.ParameterName)" - } - }, - "id": 1314, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "ApplicationRewardsPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10974:55:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - { - "argumentTypes": null, - "hexValue": "3334373530", - "id": 1315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11031:5:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_34750_by_1", - "typeString": "int_const 34750" - }, - "value": "34750" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 1316, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11038:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - { - "typeIdentifier": "t_rational_34750_by_1", - "typeString": "int_const 34750" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "argumentTypes": null, - "id": 1308, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "10926:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateParameter", - "nodeType": "MemberAccess", - "referencedDeclaration": 2198, - "src": "10926:31:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_ParameterName_$1513_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.ParameterName,uint256,uint256)" - } - }, - "id": 1317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10926:114:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1318, - "nodeType": "ExpressionStatement", - "src": "10926:114:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1322, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "11148:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1323, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "11164:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "ParameterName", - "nodeType": "MemberAccess", - "referencedDeclaration": 1513, - "src": "11164:29:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ParameterName_$1513_$", - "typeString": "type(enum PropsRewardsLib.ParameterName)" - } - }, - "id": 1325, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "ApplicationRewardsMaxVariationPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11164:67:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_150000000_by_1", - "typeString": "int_const 150000000" - }, - "id": 1328, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "313530", - "id": 1326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11233:3:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_150_by_1", - "typeString": "int_const 150" - }, - "value": "150" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "316536", - "id": 1327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11239:3:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1e6" - }, - "src": "11233:9:2", - "typeDescriptions": { - "typeIdentifier": "t_rational_150000000_by_1", - "typeString": "int_const 150000000" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 1329, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11244:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - { - "typeIdentifier": "t_rational_150000000_by_1", - "typeString": "int_const 150000000" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "argumentTypes": null, - "id": 1319, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "11116:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateParameter", - "nodeType": "MemberAccess", - "referencedDeclaration": 2198, - "src": "11116:31:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_ParameterName_$1513_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.ParameterName,uint256,uint256)" - } - }, - "id": 1330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11116:130:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1331, - "nodeType": "ExpressionStatement", - "src": "11116:130:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1335, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "11340:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1336, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "11356:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1337, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "ParameterName", - "nodeType": "MemberAccess", - "referencedDeclaration": 1513, - "src": "11356:29:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ParameterName_$1513_$", - "typeString": "type(enum PropsRewardsLib.ParameterName)" - } - }, - "id": 1338, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "ValidatorMajorityPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11356:54:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_50000000_by_1", - "typeString": "int_const 50000000" - }, - "id": 1341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3530", - "id": 1339, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11412:2:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_50_by_1", - "typeString": "int_const 50" - }, - "value": "50" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "316536", - "id": 1340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11417:3:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1e6" - }, - "src": "11412:8:2", - "typeDescriptions": { - "typeIdentifier": "t_rational_50000000_by_1", - "typeString": "int_const 50000000" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 1342, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11422:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - { - "typeIdentifier": "t_rational_50000000_by_1", - "typeString": "int_const 50000000" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "argumentTypes": null, - "id": 1332, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "11308:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateParameter", - "nodeType": "MemberAccess", - "referencedDeclaration": 2198, - "src": "11308:31:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_ParameterName_$1513_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.ParameterName,uint256,uint256)" - } - }, - "id": 1343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11308:116:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1344, - "nodeType": "ExpressionStatement", - "src": "11308:116:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1348, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "11524:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1349, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "11540:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "ParameterName", - "nodeType": "MemberAccess", - "referencedDeclaration": 1513, - "src": "11540:29:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ParameterName_$1513_$", - "typeString": "type(enum PropsRewardsLib.ParameterName)" - } - }, - "id": 1351, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "ValidatorRewardsPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11540:53:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - { - "argumentTypes": null, - "hexValue": "31383239", - "id": 1352, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11595:4:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1829_by_1", - "typeString": "int_const 1829" - }, - "value": "1829" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 1353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11601:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - { - "typeIdentifier": "t_rational_1829_by_1", - "typeString": "int_const 1829" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "argumentTypes": null, - "id": 1345, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "11492:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateParameter", - "nodeType": "MemberAccess", - "referencedDeclaration": 2198, - "src": "11492:31:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_ParameterName_$1513_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.ParameterName,uint256,uint256)" - } - }, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11492:111:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "11492:111:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1369, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1356, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "11688:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "maxTotalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 1609, - "src": "11688:29:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1359, - "name": "maxTotalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "11720:14:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_1000000000_by_1", - "typeString": "int_const 1000000000" - }, - "id": 1362, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1360, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11737:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "316539", - "id": 1361, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11741:3:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000_by_1", - "typeString": "int_const 1000000000" - }, - "value": "1e9" - }, - "src": "11737:7:2", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000_by_1", - "typeString": "int_const 1000000000" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1365, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 1363, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11748:2:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "id": 1364, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1290, - "src": "11754:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11748:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 1366, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "11747:17:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11737:27:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11720:44:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11688:76:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1370, - "nodeType": "ExpressionStatement", - "src": "11688:76:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1371, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "11774:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1373, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "rewardsStartTimestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": 1607, - "src": "11774:36:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1374, - "name": "rewardsStartTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "11813:21:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1375, - "name": "_rewardsStartTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1294, - "src": "11837:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11813:46:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11774:85:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1378, - "nodeType": "ExpressionStatement", - "src": "11774:85:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1379, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "11869:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1381, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "minSecondsBetweenDays", - "nodeType": "MemberAccess", - "referencedDeclaration": 1605, - "src": "11869:36:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1382, - "name": "_minSecondsBetweenDays", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1292, - "src": "11908:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11869:61:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1384, - "nodeType": "ExpressionStatement", - "src": "11869:61:2" - } - ] - }, - "documentation": "@dev internal intialize rewards upgrade1\n@param _controller address that will have controller functionality on rewards protocol\n@param _decimals uint256 number of decimals used in total supply\n@param _minSecondsBetweenDays uint256 seconds required to pass between consecutive rewards day\n@param _rewardsStartTimestamp uint256 day 0 timestamp", - "id": 1386, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_initializePostRewardsUpgrade1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1295, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1288, - "name": "_controller", - "nodeType": "VariableDeclaration", - "scope": 1386, - "src": "10585:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1287, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10585:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1290, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 1386, - "src": "10614:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1289, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10614:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1292, - "name": "_minSecondsBetweenDays", - "nodeType": "VariableDeclaration", - "scope": 1386, - "src": "10641:30:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1291, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10641:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1294, - "name": "_rewardsStartTimestamp", - "nodeType": "VariableDeclaration", - "scope": 1386, - "src": "10681:30:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1293, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10681:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10575:142:2" - }, - "payable": false, - "returnParameters": { - "id": 1296, - "nodeType": "ParameterList", - "parameters": [], - "src": "10739:0:2" - }, - "scope": 1502, - "src": "10536:1402:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1450, - "nodeType": "Block", - "src": "12289:574:2", - "statements": [ - { - "assignments": [ - 1396 - ], - "declarations": [ - { - "constant": false, - "id": 1396, - "name": "validatorsCount", - "nodeType": "VariableDeclaration", - "scope": 1451, - "src": "12299:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1395, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12299:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1404, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1397, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "12325:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1398, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "12325:27:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1399, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "12325:39:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 1401, - "indexExpression": { - "argumentTypes": null, - "id": 1400, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1390, - "src": "12365:12:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12325:53:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 1402, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validatorsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1572, - "src": "12325:68:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1403, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12325:75:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12299:101:2" - }, - { - "body": { - "id": 1431, - "nodeType": "Block", - "src": "12456:153:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1416, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "12476:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1417, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1590, - "src": "12476:25:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 1426, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1418, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "12502:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1419, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "12502:27:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1420, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "12502:39:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 1422, - "indexExpression": { - "argumentTypes": null, - "id": 1421, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1390, - "src": "12542:12:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12502:53:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 1423, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validatorsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1572, - "src": "12502:68:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1425, - "indexExpression": { - "argumentTypes": null, - "id": 1424, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "12571:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12502:71:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12476:98:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 1427, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "rewardsAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1527, - "src": "12476:113:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1392, - "src": "12590:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1415, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3870, - "src": "12470:5:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12470:128:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "12470:128:2" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1411, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1409, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "12430:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 1410, - "name": "validatorsCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1396, - "src": "12434:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12430:19:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1432, - "initializationExpression": { - "assignments": [ - 1406 - ], - "declarations": [ - { - "constant": false, - "id": 1406, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1451, - "src": "12415:9:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1405, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12415:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1408, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12427:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "12415:13:2" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "12451:3:2", - "subExpression": { - "argumentTypes": null, - "id": 1412, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "12451:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1414, - "nodeType": "ExpressionStatement", - "src": "12451:3:2" - }, - "nodeType": "ForStatement", - "src": "12410:199:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1436, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "12653:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - { - "argumentTypes": null, - "id": 1437, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1390, - "src": "12669:12:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 1433, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "12618:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_resetDailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 3296, - "src": "12618:34:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_bytes32_$returns$__$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,bytes32)" - } - }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12618:64:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1439, - "nodeType": "ExpressionStatement", - "src": "12618:64:2" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1441, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1388, - "src": "12739:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1442, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1390, - "src": "12764:12:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1443, - "name": "validatorsCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1396, - "src": "12790:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1444, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1392, - "src": "12820:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 1445, - "name": "validatorsCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1396, - "src": "12830:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12820:25:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 1447, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "12819:27:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1440, - "name": "DailyRewardsValidatorsMinted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "12697:28:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,bytes32,uint256,uint256)" - } - }, - "id": 1448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12697:159:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1449, - "nodeType": "EmitStatement", - "src": "12692:164:2" - } - ] - }, - "documentation": "@dev Mint rewards for validators\n@param _rewardsDay uint256 the rewards day\n@param _rewardsHash bytes32 hash of the rewards data\n@param _amount uint256 amount each validator should get", - "id": 1451, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_mintDailyRewardsForValidators", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1388, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 1451, - "src": "12208:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1387, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12208:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1390, - "name": "_rewardsHash", - "nodeType": "VariableDeclaration", - "scope": 1451, - "src": "12229:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1389, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "12229:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1392, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1451, - "src": "12251:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1391, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12251:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12207:60:2" - }, - "payable": false, - "returnParameters": { - "id": 1394, - "nodeType": "ParameterList", - "parameters": [], - "src": "12289:0:2" - }, - "scope": 1502, - "src": "12168:695:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1500, - "nodeType": "Block", - "src": "13457:272:2", - "statements": [ - { - "body": { - "id": 1490, - "nodeType": "Block", - "src": "13518:105:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1478, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "13538:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1479, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1583, - "src": "13538:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 1483, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1480, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1458, - "src": "13566:13:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1482, - "indexExpression": { - "argumentTypes": null, - "id": 1481, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1467, - "src": "13580:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13566:16:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13538:45:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 1484, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "rewardsAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1527, - "src": "13538:60:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1485, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1461, - "src": "13600:8:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 1487, - "indexExpression": { - "argumentTypes": null, - "id": 1486, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1467, - "src": "13609:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13600:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1477, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3870, - "src": "13532:5:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13532:80:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1489, - "nodeType": "ExpressionStatement", - "src": "13532:80:2" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1470, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1467, - "src": "13487:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1471, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1458, - "src": "13491:13:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1472, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13491:20:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13487:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1491, - "initializationExpression": { - "assignments": [ - 1467 - ], - "declarations": [ - { - "constant": false, - "id": 1467, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1501, - "src": "13472:9:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1466, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13472:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1469, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13484:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "13472:13:2" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "13513:3:2", - "subExpression": { - "argumentTypes": null, - "id": 1474, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1467, - "src": "13513:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1476, - "nodeType": "ExpressionStatement", - "src": "13513:3:2" - }, - "nodeType": "ForStatement", - "src": "13467:156:2" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1493, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1453, - "src": "13668:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1494, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1455, - "src": "13681:12:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1495, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1458, - "src": "13695:13:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13695:20:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1497, - "name": "_sum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1463, - "src": "13717:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1492, - "name": "DailyRewardsApplicationsMinted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 854, - "src": "13637:30:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,bytes32,uint256,uint256)" - } - }, - "id": 1498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13637:85:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1499, - "nodeType": "EmitStatement", - "src": "13632:90:2" - } - ] - }, - "documentation": "@dev Mint rewards for apps\n@param _rewardsDay uint256 the rewards day\n@param _rewardsHash bytes32 hash of the rewards data\n@param _applications address[] array of application addresses getting the daily reward\n@param _amounts uint256[] array of amounts each app should get\n@param _sum uint256 the sum of all application rewards given", - "id": 1501, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_mintDailyRewardsForApps", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1464, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1453, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 1501, - "src": "13297:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1452, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13297:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1455, - "name": "_rewardsHash", - "nodeType": "VariableDeclaration", - "scope": 1501, - "src": "13326:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1454, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "13326:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1458, - "name": "_applications", - "nodeType": "VariableDeclaration", - "scope": 1501, - "src": "13356:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1456, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13356:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1457, - "length": null, - "nodeType": "ArrayTypeName", - "src": "13356:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1461, - "name": "_amounts", - "nodeType": "VariableDeclaration", - "scope": 1501, - "src": "13389:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1459, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13389:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1460, - "length": null, - "nodeType": "ArrayTypeName", - "src": "13389:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1463, - "name": "_sum", - "nodeType": "VariableDeclaration", - "scope": 1501, - "src": "13417:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1462, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13417:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13287:148:2" - }, - "payable": false, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "13457:0:2" - }, - "scope": 1502, - "src": "13254:475:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1503, - "src": "365:13366:2" - } - ], - "src": "0:13731:2" - }, - "legacyAST": { - "absolutePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsRewards.sol", - "exportedSymbols": { - "PropsRewards": [ - 1502 - ] - }, - "id": 1503, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 824, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:2" - }, - { - "absolutePath": "zos-lib/contracts/Initializable.sol", - "file": "zos-lib/contracts/Initializable.sol", - "id": 825, - "nodeType": "ImportDirective", - "scope": 1503, - "sourceUnit": 4184, - "src": "26:45:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-eth/contracts/math/SafeMath.sol", - "file": "openzeppelin-eth/contracts/math/SafeMath.sol", - "id": 826, - "nodeType": "ImportDirective", - "scope": 1503, - "sourceUnit": 3590, - "src": "72:54:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", - "id": 827, - "nodeType": "ImportDirective", - "scope": 1503, - "sourceUnit": 3992, - "src": "127:58:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsRewardsLib.sol", - "file": "./PropsRewardsLib.sol", - "id": 829, - "nodeType": "ImportDirective", - "scope": 1503, - "sourceUnit": 3298, - "src": "186:56:2", - "symbolAliases": [ - { - "foreign": 828, - "local": null - } - ], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 830, - "name": "Initializable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4183, - "src": "390:13:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Initializable_$4183", - "typeString": "contract Initializable" - } - }, - "id": 831, - "nodeType": "InheritanceSpecifier", - "src": "390:13:2" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 832, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3991, - "src": "405:5:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$3991", - "typeString": "contract ERC20" - } - }, - "id": 833, - "nodeType": "InheritanceSpecifier", - "src": "405:5:2" - } - ], - "contractDependencies": [ - 3991, - 4127, - 4183 - ], - "contractKind": "contract", - "documentation": "@title Props Rewards\n@dev Contract allows to set approved apps and validators. Submit and mint rewards...*", - "fullyImplemented": true, - "id": 1502, - "linearizedBaseContracts": [ - 1502, - 3991, - 4127, - 4183 - ], - "name": "PropsRewards", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 836, - "libraryName": { - "contractScope": null, - "id": 834, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3589, - "src": "423:8:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3589", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "417:27:2", - "typeName": { - "id": 835, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "436:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "anonymous": false, - "documentation": null, - "id": 844, - "name": "DailyRewardsSubmitted", - "nodeType": "EventDefinition", - "parameters": { - "id": 843, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 838, - "indexed": true, - "name": "rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 844, - "src": "514:26:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 837, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "514:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 840, - "indexed": true, - "name": "rewardsHash", - "nodeType": "VariableDeclaration", - "scope": 844, - "src": "550:27:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 839, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "550:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 842, - "indexed": true, - "name": "validator", - "nodeType": "VariableDeclaration", - "scope": 844, - "src": "587:25:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 841, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "587:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "504:114:2" - }, - "src": "477:142:2" - }, - { - "anonymous": false, - "documentation": null, - "id": 854, - "name": "DailyRewardsApplicationsMinted", - "nodeType": "EventDefinition", - "parameters": { - "id": 853, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 846, - "indexed": true, - "name": "rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 854, - "src": "671:26:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 845, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "671:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 848, - "indexed": true, - "name": "rewardsHash", - "nodeType": "VariableDeclaration", - "scope": 854, - "src": "707:27:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 847, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "707:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 850, - "indexed": false, - "name": "numOfApplications", - "nodeType": "VariableDeclaration", - "scope": 854, - "src": "744:25:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 849, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "744:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 852, - "indexed": false, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 854, - "src": "779:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 851, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "779:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "661:138:2" - }, - "src": "625:175:2" - }, - { - "anonymous": false, - "documentation": null, - "id": 864, - "name": "DailyRewardsValidatorsMinted", - "nodeType": "EventDefinition", - "parameters": { - "id": 863, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 856, - "indexed": true, - "name": "rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 864, - "src": "850:26:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 855, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "850:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 858, - "indexed": true, - "name": "rewardsHash", - "nodeType": "VariableDeclaration", - "scope": 864, - "src": "886:27:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 857, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "886:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 860, - "indexed": false, - "name": "numOfValidators", - "nodeType": "VariableDeclaration", - "scope": 864, - "src": "923:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 859, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "923:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 862, - "indexed": false, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 864, - "src": "956:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 861, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "956:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "840:136:2" - }, - "src": "806:171:2" - }, - { - "anonymous": false, - "documentation": null, - "id": 876, - "name": "EntityUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 875, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 866, - "indexed": true, - "name": "id", - "nodeType": "VariableDeclaration", - "scope": 876, - "src": "1012:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 865, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1012:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 868, - "indexed": true, - "name": "entityType", - "nodeType": "VariableDeclaration", - "scope": 876, - "src": "1040:53:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - }, - "typeName": { - "contractScope": null, - "id": 867, - "name": "PropsRewardsLib.RewardedEntityType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1516, - "src": "1040:34:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 870, - "indexed": false, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 876, - "src": "1103:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 869, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1103:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 872, - "indexed": false, - "name": "rewardsAddress", - "nodeType": "VariableDeclaration", - "scope": 876, - "src": "1125:22:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 871, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1125:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 874, - "indexed": true, - "name": "sidechainAddress", - "nodeType": "VariableDeclaration", - "scope": 876, - "src": "1157:32:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 873, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1157:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1002:193:2" - }, - "src": "983:213:2" - }, - { - "anonymous": false, - "documentation": null, - "id": 886, - "name": "ParameterUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 885, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 878, - "indexed": false, - "name": "param", - "nodeType": "VariableDeclaration", - "scope": 886, - "src": "1234:35:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - "typeName": { - "contractScope": null, - "id": 877, - "name": "PropsRewardsLib.ParameterName", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1513, - "src": "1234:29:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 880, - "indexed": false, - "name": "newValue", - "nodeType": "VariableDeclaration", - "scope": 886, - "src": "1279:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 879, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1279:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 882, - "indexed": false, - "name": "oldValue", - "nodeType": "VariableDeclaration", - "scope": 886, - "src": "1305:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 881, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1305:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 884, - "indexed": false, - "name": "rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 886, - "src": "1331:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 883, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1331:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1224:131:2" - }, - "src": "1202:154:2" - }, - { - "anonymous": false, - "documentation": null, - "id": 893, - "name": "ValidatorsListUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 892, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 889, - "indexed": false, - "name": "validatorsList", - "nodeType": "VariableDeclaration", - "scope": 893, - "src": "1399:24:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 887, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1399:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 888, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1399:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 891, - "indexed": true, - "name": "rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 893, - "src": "1433:26:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 890, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1433:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1389:76:2" - }, - "src": "1362:104:2" - }, - { - "anonymous": false, - "documentation": null, - "id": 900, - "name": "ApplicationsListUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 899, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 896, - "indexed": false, - "name": "applicationsList", - "nodeType": "VariableDeclaration", - "scope": 900, - "src": "1511:26:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 894, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1511:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 895, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1511:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 898, - "indexed": true, - "name": "rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 900, - "src": "1547:26:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 897, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1547:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1501:78:2" - }, - "src": "1472:108:2" - }, - { - "anonymous": false, - "documentation": null, - "id": 904, - "name": "ControllerUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 903, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 902, - "indexed": true, - "name": "newController", - "nodeType": "VariableDeclaration", - "scope": 904, - "src": "1610:29:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 901, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1610:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1609:31:2" - }, - "src": "1586:55:2" - }, - { - "anonymous": false, - "documentation": null, - "id": 916, - "name": "Settlement", - "nodeType": "EventDefinition", - "parameters": { - "id": 915, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 906, - "indexed": true, - "name": "applicationId", - "nodeType": "VariableDeclaration", - "scope": 916, - "src": "1673:29:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 905, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1673:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 908, - "indexed": true, - "name": "userId", - "nodeType": "VariableDeclaration", - "scope": 916, - "src": "1712:22:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 907, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1712:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 910, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 916, - "src": "1744:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 909, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1744:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 912, - "indexed": false, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 916, - "src": "1772:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 911, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1772:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 914, - "indexed": false, - "name": "rewardsAddress", - "nodeType": "VariableDeclaration", - "scope": 916, - "src": "1796:22:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 913, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1796:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1663:161:2" - }, - "src": "1647:178:2" - }, - { - "constant": false, - "id": 918, - "name": "rewardsLibData", - "nodeType": "VariableDeclaration", - "scope": 1502, - "src": "1860:44:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 917, - "name": "PropsRewardsLib.Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "1860:20:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 920, - "name": "maxTotalSupply", - "nodeType": "VariableDeclaration", - "scope": 1502, - "src": "1910:29:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 919, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1910:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 922, - "name": "rewardsStartTimestamp", - "nodeType": "VariableDeclaration", - "scope": 1502, - "src": "1945:36:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 921, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1945:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 924, - "name": "controller", - "nodeType": "VariableDeclaration", - "scope": 1502, - "src": "1987:25:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 923, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1987:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 935, - "nodeType": "Block", - "src": "2097:121:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 927, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "2128:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2128:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 929, - "name": "controller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 924, - "src": "2142:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2128:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d7573742062652074686520636f6e74726f6c6c6572", - "id": 931, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2166:24:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2a97db86538dc368189c5fc6f1877eb574a6bdbd5996134dcbb672078a84d0c9", - "typeString": "literal_string \"Must be the controller\"" - }, - "value": "Must be the controller" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2a97db86538dc368189c5fc6f1877eb574a6bdbd5996134dcbb672078a84d0c9", - "typeString": "literal_string \"Must be the controller\"" - } - ], - "id": 926, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "2107:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2107:93:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 933, - "nodeType": "ExpressionStatement", - "src": "2107:93:2" - }, - { - "id": 934, - "nodeType": "PlaceholderStatement", - "src": "2210:1:2" - } - ] - }, - "documentation": null, - "id": 936, - "name": "onlyController", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 925, - "nodeType": "ParameterList", - "parameters": [], - "src": "2094:2:2" - }, - "src": "2071:147:2", - "visibility": "internal" - }, - { - "body": { - "id": 956, - "nodeType": "Block", - "src": "2808:149:2", - "statements": [ - { - "assignments": [ - 946 - ], - "declarations": [ - { - "constant": false, - "id": 946, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 957, - "src": "2818:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 945, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2818:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 948, - "initialValue": { - "argumentTypes": null, - "hexValue": "3138", - "id": 947, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2837:2:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "nodeType": "VariableDeclarationStatement", - "src": "2818:21:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 950, - "name": "_controller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "2880:11:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 951, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 946, - "src": "2893:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 952, - "name": "_minSecondsBetweenDays", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 940, - "src": "2903:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 953, - "name": "_rewardsStartTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 942, - "src": "2927:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 949, - "name": "_initializePostRewardsUpgrade1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1386, - "src": "2849:30:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256,uint256)" - } - }, - "id": 954, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2849:101:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 955, - "nodeType": "ExpressionStatement", - "src": "2849:101:2" - } - ] - }, - "documentation": "@dev The initializer function for upgrade as initialize was already called, get the decimals used in the token to initialize the params\n@param _controller address that will have controller functionality on rewards protocol\n@param _minSecondsBetweenDays uint256 seconds required to pass between consecutive rewards day\n@param _rewardsStartTimestamp uint256 day 0 timestamp", - "id": 957, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "initializePostRewardsUpgrade1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 943, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 938, - "name": "_controller", - "nodeType": "VariableDeclaration", - "scope": 957, - "src": "2683:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 937, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2683:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 940, - "name": "_minSecondsBetweenDays", - "nodeType": "VariableDeclaration", - "scope": 957, - "src": "2712:30:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 939, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2712:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 942, - "name": "_rewardsStartTimestamp", - "nodeType": "VariableDeclaration", - "scope": 957, - "src": "2752:30:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 941, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2752:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2673:115:2" - }, - "payable": false, - "returnParameters": { - "id": 944, - "nodeType": "ParameterList", - "parameters": [], - "src": "2808:0:2" - }, - "scope": 1502, - "src": "2635:322:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 980, - "nodeType": "Block", - "src": "3268:150:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 970, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "3308:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - { - "argumentTypes": null, - "id": 971, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "3324:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 972, - "name": "_validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "3337:11:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 967, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "3278:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "setValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 2464, - "src": "3278:29:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,uint256,address[] memory)" - } - }, - "id": 973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3278:71:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 974, - "nodeType": "ExpressionStatement", - "src": "3278:71:2" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 976, - "name": "_validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "3386:11:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 977, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "3399:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 975, - "name": "ValidatorsListUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 893, - "src": "3364:21:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$", - "typeString": "function (address[] memory,uint256)" - } - }, - "id": 978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3364:47:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 979, - "nodeType": "EmitStatement", - "src": "3359:52:2" - } - ] - }, - "documentation": "@dev Set new validators list\n@param _rewardsDay uint256 the rewards day from which this change should take effect\n@param _validators address[] array of validators", - "id": 981, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 965, - "modifierName": { - "argumentTypes": null, - "id": 964, - "name": "onlyController", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "3249:14:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3249:14:2" - } - ], - "name": "setValidators", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 963, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 959, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 981, - "src": "3182:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 958, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3182:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 962, - "name": "_validators", - "nodeType": "VariableDeclaration", - "scope": 981, - "src": "3203:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 960, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3203:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 961, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3203:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3181:44:2" - }, - "payable": false, - "returnParameters": { - "id": 966, - "nodeType": "ParameterList", - "parameters": [], - "src": "3268:0:2" - }, - "scope": 1502, - "src": "3159:259:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1004, - "nodeType": "Block", - "src": "3739:158:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 994, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "3781:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - { - "argumentTypes": null, - "id": 995, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "3797:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 996, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 986, - "src": "3810:13:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 991, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "3749:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "setApplications", - "nodeType": "MemberAccess", - "referencedDeclaration": 2515, - "src": "3749:31:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,uint256,address[] memory)" - } - }, - "id": 997, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3749:75:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 998, - "nodeType": "ExpressionStatement", - "src": "3749:75:2" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1000, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 986, - "src": "3863:13:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1001, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 983, - "src": "3878:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 999, - "name": "ApplicationsListUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 900, - "src": "3839:23:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$", - "typeString": "function (address[] memory,uint256)" - } - }, - "id": 1002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3839:51:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1003, - "nodeType": "EmitStatement", - "src": "3834:56:2" - } - ] - }, - "documentation": "@dev Set new applications list\n@param _rewardsDay uint256 the rewards day from which this change should take effect\n@param _applications address[] array of applications", - "id": 1005, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 989, - "modifierName": { - "argumentTypes": null, - "id": 988, - "name": "onlyController", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "3720:14:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3720:14:2" - } - ], - "name": "setApplications", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 987, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 983, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 1005, - "src": "3651:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 982, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3651:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 986, - "name": "_applications", - "nodeType": "VariableDeclaration", - "scope": 1005, - "src": "3672:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 984, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3672:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 985, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3672:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3650:46:2" - }, - "payable": false, - "returnParameters": { - "id": 990, - "nodeType": "ParameterList", - "parameters": [], - "src": "3739:0:2" - }, - "scope": 1502, - "src": "3626:271:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1022, - "nodeType": "Block", - "src": "4274:93:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1017, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "4319:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - { - "argumentTypes": null, - "id": 1018, - "name": "_entityType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1007, - "src": "4335:11:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - { - "argumentTypes": null, - "id": 1019, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1009, - "src": "4348:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1015, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "4291:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getEntities", - "nodeType": "MemberAccess", - "referencedDeclaration": 2569, - "src": "4291:27:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_RewardedEntityType_$1516_$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.RewardedEntityType,uint256) view returns (address[] memory)" - } - }, - "id": 1020, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4291:69:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 1014, - "id": 1021, - "nodeType": "Return", - "src": "4284:76:2" - } - ] - }, - "documentation": "@dev Get the applications or validators list\n@param _entityType RewardedEntityType either application (0) or validator (1)\n@param _rewardsDay uint256 the rewards day to use for this value", - "id": 1023, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getEntities", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1010, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1007, - "name": "_entityType", - "nodeType": "VariableDeclaration", - "scope": 1023, - "src": "4145:46:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - }, - "typeName": { - "contractScope": null, - "id": 1006, - "name": "PropsRewardsLib.RewardedEntityType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1516, - "src": "4145:34:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1009, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 1023, - "src": "4193:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1008, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4193:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4144:69:2" - }, - "payable": false, - "returnParameters": { - "id": 1014, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1013, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1023, - "src": "4259:9:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1011, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4259:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1012, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4259:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4258:11:2" - }, - "scope": 1502, - "src": "4124:243:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1126, - "nodeType": "Block", - "src": "4921:1768:2", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1036, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "5062:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1037, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "5076:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1038, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "5076:27:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1039, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "lastApplicationsRewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1564, - "src": "5076:54:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5062:68:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1071, - "nodeType": "IfStatement", - "src": "5058:659:2", - "trueBody": { - "id": 1070, - "nodeType": "Block", - "src": "5132:585:2", - "statements": [ - { - "assignments": [ - 1042 - ], - "declarations": [ + "arguments": [ { - "constant": false, - "id": 1042, - "name": "previousDayValidatorRewardsAmount", - "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "5146:41:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5146:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1054, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1045, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "5249:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1046, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "5281:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1047, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "5281:27:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1048, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "lastApplicationsRewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1564, - "src": "5281:54:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1049, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "5353:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "5353:27:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1051, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "lastConfirmedRewardsHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 1562, - "src": "5353:52:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 1052, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5423:5:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "argumentTypes": null, - "id": 1043, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "5190:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1044, + "argumentTypes": null, + "hexValue": "1901", + "id": 167, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "string", "lValueRequested": false, - "memberName": "calculateValidatorRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1869, - "src": "5190:41:2", + "nodeType": "Literal", + "src": "3307:10:2", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$_t_bytes32_$_t_bool_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,uint256,bytes32,bool) view returns (uint256)" - } - }, - "id": 1053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5190:252:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5146:296:2" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + "value": "\u0019\u0001" }, - "id": 1057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + { "argumentTypes": null, - "id": 1055, - "name": "previousDayValidatorRewardsAmount", + "id": 168, + "name": "DOMAIN_SEPARATOR", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1042, - "src": "5460:33:2", + "referencedDeclaration": 56, + "src": "3339:16:2", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { + { "argumentTypes": null, - "hexValue": "30", - "id": 1056, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5496:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5460:37:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1069, - "nodeType": "IfStatement", - "src": "5456:251:2", - "trueBody": { - "id": 1068, - "nodeType": "Block", - "src": "5499:208:2", - "statements": [ - { - "expression": { + "arguments": [ + { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "expression": { + "id": 172, + "name": "PERMIT_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "3452:15:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 173, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 139, + "src": "3497:6:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 174, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 141, + "src": "3533:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 175, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 143, + "src": "3571:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3608:16:2", + "subExpression": { "argumentTypes": null, - "expression": { + "baseExpression": { "argumentTypes": null, - "id": 1059, - "name": "rewardsLibData", + "id": 176, + "name": "nonces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "5548:14:2", + "referencedDeclaration": 63, + "src": "3608:6:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" } }, - "id": 1060, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "5548:27:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1061, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "lastApplicationsRewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1564, - "src": "5548:54:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { + "id": 178, + "indexExpression": { "argumentTypes": null, - "id": 1062, - "name": "rewardsLibData", + "id": 177, + "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "5604:14:2", + "referencedDeclaration": 139, + "src": "3615:6:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 1063, "isConstant": false, "isLValue": true, "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "5604:27:2", + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3608:14:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 1064, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "lastConfirmedRewardsHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 1562, - "src": "5604:52:2", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, { "argumentTypes": null, - "id": 1065, - "name": "previousDayValidatorRewardsAmount", + "id": 180, + "name": "_deadline", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1042, - "src": "5658:33:2", + "referencedDeclaration": 145, + "src": "3654:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12742,583 +2375,535 @@ ], "expression": { "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], - "id": 1058, - "name": "_mintDailyRewardsForValidators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1451, - "src": "5517:30:2", + "expression": { + "argumentTypes": null, + "id": 170, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1434, + "src": "3412:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 171, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3412:10:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$", - "typeString": "function (uint256,bytes32,uint256)" + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" } }, - "id": 1066, + "id": 181, "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5517:175:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1067, - "nodeType": "ExpressionStatement", - "src": "5517:175:2" - } - ] - } - } - ] - } - }, - { - "assignments": [ - 1073 - ], - "declarations": [ - { - "constant": false, - "id": 1073, - "name": "appRewardsSum", - "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "5804:21:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1072, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5804:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1084, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1076, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "5896:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - { - "argumentTypes": null, - "id": 1077, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "5924:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1078, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "5949:12:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1079, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1030, - "src": "5975:13:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1080, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "6002:8:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1081, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3621, - "src": "6024:11:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6024:13:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1074, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "5828:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1075, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "calculateAndFinalizeApplicationRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 2022, - "src": "5828:54:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$_t_bytes32_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,uint256,bytes32,address[] memory,uint256[] memory,uint256) returns (uint256)" - } - }, - "id": 1083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5828:219:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5804:243:2" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1087, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1085, - "name": "appRewardsSum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1073, - "src": "6061:13:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1086, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6077:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6061:17:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1097, - "nodeType": "IfStatement", - "src": "6057:139:2", - "trueBody": { - "id": 1096, - "nodeType": "Block", - "src": "6080:116:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1089, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "6119:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3412:277:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } } - }, - { - "argumentTypes": null, - "id": 1090, - "name": "_rewardsHash", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 169, + "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "6132:12:2", + "referencedDeclaration": 1441, + "src": "3377:9:2", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" } }, + "id": 182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3377:334:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ { - "argumentTypes": null, - "id": 1091, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1030, - "src": "6146:13:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" }, { - "argumentTypes": null, - "id": 1092, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1033, - "src": "6161:8:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, { - "argumentTypes": null, - "id": 1093, - "name": "appRewardsSum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1073, - "src": "6171:13:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } ], "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1088, - "name": "_mintDailyRewardsForApps", + "argumentTypes": null, + "id": 165, + "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1501, - "src": "6094:24:2", + "referencedDeclaration": 1434, + "src": "3269:3:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_bytes32_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$__$", - "typeString": "function (uint256,bytes32,address[] memory,uint256[] memory,uint256)" + "typeIdentifier": "t_magic_abi", + "typeString": "abi" } }, - "id": 1094, + "id": 166, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "functionCall", + "isPure": true, "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6094:91:2", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3269:16:2", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" } }, - "id": 1095, - "nodeType": "ExpressionStatement", - "src": "6094:91:2" + "id": 183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3269:460:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } } - ] - } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 164, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1441, + "src": "3242:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3242:501:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3213:530:2" }, { "assignments": [ - 1099 + 187 ], "declarations": [ { "constant": false, - "id": 1099, - "name": "validatorRewardsAmount", + "id": 187, + "name": "recoveredAddress", "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "6278:30:2", + "scope": 215, + "src": "3753:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 1098, - "name": "uint256", + "id": 186, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "6278:7:2", + "src": "3753:7:2", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" } ], - "id": 1107, + "id": 194, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1102, - "name": "rewardsLibData", + "id": 189, + "name": "digest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "6366:14:2", + "referencedDeclaration": 163, + "src": "3790:6:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, { "argumentTypes": null, - "id": 1103, - "name": "_rewardsDay", + "id": 190, + "name": "_v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "6394:11:2", + "referencedDeclaration": 147, + "src": "3798:2:2", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 191, + "name": "_r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 149, + "src": "3802:2:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, { "argumentTypes": null, - "id": 1104, - "name": "_rewardsHash", + "id": 192, + "name": "_s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "6419:12:2", + "referencedDeclaration": 151, + "src": "3806:2:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 188, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1439, + "src": "3780:9:2", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3780:29:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3753:56:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 196, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 187, + "src": "3840:16:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 198, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3868:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 197, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3860:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3860:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3840:30:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 201, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 187, + "src": "3874:16:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 202, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 139, + "src": "3894:6:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3874:26:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3840:60:2", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, { "argumentTypes": null, - "hexValue": "74727565", - "id": 1105, + "hexValue": "496e76616c6964205369676e6174757265", + "id": 205, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "bool", + "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6445:4:2", + "src": "3914:19:2", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_stringliteral_98abf41928333e3fb96f450e411f323711f90894815c0b92e5e7c34ae876605a", + "typeString": "literal_string \"Invalid Signature\"" }, - "value": "true" + "value": "Invalid Signature" } ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, { "typeIdentifier": "t_bool", "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_98abf41928333e3fb96f450e411f323711f90894815c0b92e5e7c34ae876605a", + "typeString": "literal_string \"Invalid Signature\"" } ], - "expression": { - "argumentTypes": null, - "id": 1100, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "6311:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "calculateValidatorRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1869, - "src": "6311:41:2", + "id": 195, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1451, + "src": "3819:7:2", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$_t_bytes32_$_t_bool_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,uint256,bytes32,bool) view returns (uint256)" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "id": 1106, + "id": 206, "isConstant": false, "isLValue": false, "isPure": false, @@ -13326,253 +2911,87 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6311:148:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6278:181:2" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1108, - "name": "validatorRewardsAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1099, - "src": "6473:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1109, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6498:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6473:26:2", + "src": "3819:124:2", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "falseBody": null, - "id": 1118, - "nodeType": "IfStatement", - "src": "6469:138:2", - "trueBody": { - "id": 1117, - "nodeType": "Block", - "src": "6501:106:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1112, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "6546:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1113, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "6559:12:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1114, - "name": "validatorRewardsAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1099, - "src": "6573:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1111, - "name": "_mintDailyRewardsForValidators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1451, - "src": "6515:30:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$", - "typeString": "function (uint256,bytes32,uint256)" - } - }, - "id": 1115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6515:81:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1116, - "nodeType": "ExpressionStatement", - "src": "6515:81:2" - } - ] - } + "id": 207, + "nodeType": "ExpressionStatement", + "src": "3819:124:2" }, { - "eventCall": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1120, - "name": "_rewardsDay", + "id": 209, + "name": "_owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "6644:11:2", + "referencedDeclaration": 139, + "src": "3962:6:2", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, { "argumentTypes": null, - "id": 1121, - "name": "_rewardsHash", + "id": 210, + "name": "_spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "6657:12:2", + "referencedDeclaration": 141, + "src": "3970:8:2", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_address", + "typeString": "address" } }, { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1122, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "6671:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6671:10:2", + "id": 211, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 143, + "src": "3980:7:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_address", + "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 1119, - "name": "DailyRewardsSubmitted", + "id": 208, + "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 844, - "src": "6622:21:2", + "referencedDeclaration": 1145, + "src": "3953:8:2", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$returns$__$", - "typeString": "function (uint256,bytes32,address)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" } }, - "id": 1124, + "id": 212, "isConstant": false, "isLValue": false, "isPure": false, @@ -13580,37 +2999,115 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6622:60:2", + "src": "3953:35:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 213, + "nodeType": "ExpressionStatement", + "src": "3953:35:2" + } + ] + }, + "documentation": "@dev Allows for approvals to be made via secp256k1 signatures\n@param _owner address owner\n@param _spender address spender\n@param _amount uint spender\n@param _deadline uint spender\n@param _v uint8 spender\n@param _r bytes32 spender\n@param _s bytes32 spender", + "id": 215, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 152, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 139, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 215, + "src": "2972:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2972:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 141, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 215, + "src": "2996:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 140, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2996:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 143, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 215, + "src": "3022:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 142, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3022:7:2", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 1125, - "nodeType": "EmitStatement", - "src": "6617:65:2" - } - ] - }, - "documentation": "@dev The function is called by validators with the calculation of the daily rewards\n@param _rewardsDay uint256 the rewards day\n@param _rewardsHash bytes32 hash of the rewards data\n@param _applications address[] array of application addresses getting the daily reward\n@param _amounts uint256[] array of amounts each app should get", - "id": 1127, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "submitDailyRewards", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1034, - "nodeType": "ParameterList", - "parameters": [ + "value": null, + "visibility": "internal" + }, { "constant": false, - "id": 1025, - "name": "_rewardsDay", + "id": 145, + "name": "_deadline", "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "4785:19:2", + "scope": 215, + "src": "3047:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13618,10 +3115,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1024, + "id": 144, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4785:7:2", + "src": "3047:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13632,25 +3129,25 @@ }, { "constant": false, - "id": 1027, - "name": "_rewardsHash", + "id": 147, + "name": "_v", "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "4814:20:2", + "scope": 215, + "src": "3074:8:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint8", + "typeString": "uint8" }, "typeName": { - "id": 1026, - "name": "bytes32", + "id": 146, + "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4814:7:2", + "src": "3074:5:2", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, "value": null, @@ -13658,35 +3155,25 @@ }, { "constant": false, - "id": 1030, - "name": "_applications", + "id": 149, + "name": "_r", "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "4844:23:2", + "scope": 215, + "src": "3092:10:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, "typeName": { - "baseType": { - "id": 1028, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4844:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1029, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4844:9:2", + "id": 148, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3092:7:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "value": null, @@ -13694,61 +3181,51 @@ }, { "constant": false, - "id": 1033, - "name": "_amounts", + "id": 151, + "name": "_s", "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "4877:18:2", + "scope": 215, + "src": "3112:10:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" }, "typeName": { - "baseType": { - "id": 1031, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4877:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1032, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4877:9:2", + "id": 150, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3112:7:2", "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], - "src": "4775:126:2" + "src": "2962:166:2" }, "payable": false, "returnParameters": { - "id": 1035, + "id": 153, "nodeType": "ParameterList", "parameters": [], - "src": "4921:0:2" + "src": "3138:0:2" }, - "scope": 1502, - "src": "4748:1941:2", + "scope": 373, + "src": "2947:1048:2", "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" }, { "body": { - "id": 1151, + "id": 256, "nodeType": "Block", - "src": "6945:202:2", + "src": "4246:240:2", "statements": [ { "expression": { @@ -13760,19 +3237,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1139, + "id": 231, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1135, - "name": "_controller", + "id": 227, + "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "6963:11:2", + "referencedDeclaration": 219, + "src": "4264:3:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13786,14 +3263,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1137, + "id": 229, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6986:1:2", + "src": "4279:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -13809,20 +3286,20 @@ "typeString": "int_const 0" } ], - "id": 1136, + "id": 228, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6978:7:2", + "src": "4271:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1138, + "id": 230, "isConstant": false, "isLValue": false, "isPure": true, @@ -13830,13 +3307,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6978:10:2", + "src": "4271:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6963:25:2", + "src": "4264:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13844,21 +3321,21 @@ }, { "argumentTypes": null, - "hexValue": "436f6e74726f6c6c65722063616e6e6f7420626520746865207a65726f2061646472657373", - "id": 1140, + "hexValue": "4d757374207472616e7366657220746f20726563697069656e74", + "id": 232, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "6990:39:2", + "src": "4283:28:2", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8a495fa0d3c9f7c33b0da68880d49b175abe1e0d24ae9a6277a9d61a20134261", - "typeString": "literal_string \"Controller cannot be the zero address\"" + "typeIdentifier": "t_stringliteral_b5a5fcf93367cc12680d338003ac2e4545eb84b34cdaec1fea6f3707feabdf0e", + "typeString": "literal_string \"Must transfer to recipient\"" }, - "value": "Controller cannot be the zero address" + "value": "Must transfer to recipient" } ], "expression": { @@ -13868,25 +3345,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_8a495fa0d3c9f7c33b0da68880d49b175abe1e0d24ae9a6277a9d61a20134261", - "typeString": "literal_string \"Controller cannot be the zero address\"" + "typeIdentifier": "t_stringliteral_b5a5fcf93367cc12680d338003ac2e4545eb84b34cdaec1fea6f3707feabdf0e", + "typeString": "literal_string \"Must transfer to recipient\"" } ], - "id": 1134, + "id": 226, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4201, - 4202 + 1450, + 1451 ], - "referencedDeclaration": 4202, - "src": "6955:7:2", + "referencedDeclaration": 1451, + "src": "4256:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1141, + "id": 233, "isConstant": false, "isLValue": false, "isPure": false, @@ -13894,99 +3371,101 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6955:75:2", + "src": "4256:56:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1142, + "id": 234, "nodeType": "ExpressionStatement", - "src": "6955:75:2" + "src": "4256:56:2" }, { - "expression": { - "argumentTypes": null, - "id": 1145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1143, - "name": "controller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 924, - "src": "7040:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1144, - "name": "_controller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "7053:11:2", + "assignments": [ + 236 + ], + "declarations": [ + { + "constant": false, + "id": 236, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 257, + "src": "4322:15:2", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7040:24:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 235, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4322:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" } - }, - "id": 1146, - "nodeType": "ExpressionStatement", - "src": "7040:24:2" - }, - { - "eventCall": { + ], + "id": 241, + "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1148, - "name": "_controller", + "id": 239, + "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "7119:11:2", + "referencedDeclaration": 1478, + "src": "4357:4:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_PropsRewards_$373", + "typeString": "contract PropsRewards" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_contract$_PropsRewards_$373", + "typeString": "contract PropsRewards" } ], - "id": 1147, - "name": "ControllerUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 904, - "src": "7079:17:2", + "expression": { + "argumentTypes": null, + "id": 237, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "4340:6:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$1178", + "typeString": "contract ERC20" + } + }, + "id": 238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 820, + "src": "4340:16:2", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" } }, - "id": 1149, + "id": 240, "isConstant": false, "isLValue": false, "isPure": false, @@ -13994,136 +3473,151 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7079:61:2", + "src": "4340:22:2", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 1150, - "nodeType": "EmitStatement", - "src": "7074:66:2" - } - ] - }, - "documentation": "@dev Allows the controller/owner to update to a new controller\n@param _controller address address of the new controller", - "id": 1152, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 1132, - "modifierName": { - "argumentTypes": null, - "id": 1131, - "name": "onlyController", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "6926:14:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } + "nodeType": "VariableDeclarationStatement", + "src": "4322:40:2" }, - "nodeType": "ModifierInvocation", - "src": "6926:14:2" - } - ], - "name": "updateController", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1130, - "nodeType": "ParameterList", - "parameters": [ { - "constant": false, - "id": 1129, - "name": "_controller", - "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "6877:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6877:7:2", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 243, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 221, + "src": "4380:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 244, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 236, + "src": "4391:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4380:18:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "43616e6e6f74207472616e73666572206d6f7265207468616e2062616c616e6365", + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4400:35:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8daed5df447a99bd86d9920e68a48cc7f3f950cc6dace39b40b747efd39d8167", + "typeString": "literal_string \"Cannot transfer more than balance\"" + }, + "value": "Cannot transfer more than balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8daed5df447a99bd86d9920e68a48cc7f3f950cc6dace39b40b747efd39d8167", + "typeString": "literal_string \"Cannot transfer more than balance\"" + } + ], + "id": 242, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1451, + "src": "4372:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4372:64:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" - } - ], - "src": "6867:35:2" - }, - "payable": false, - "returnParameters": { - "id": 1133, - "nodeType": "ParameterList", - "parameters": [], - "src": "6945:0:2" - }, - "scope": 1502, - "src": "6842:305:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1168, - "nodeType": "Block", - "src": "7537:93:2", - "statements": [ + "id": 248, + "nodeType": "ExpressionStatement", + "src": "4372:64:2" + }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1163, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "7588:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - { - "argumentTypes": null, - "id": 1164, - "name": "_name", + "id": 252, + "name": "_to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "7604:5:2", + "referencedDeclaration": 219, + "src": "4466:3:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" + "typeIdentifier": "t_address", + "typeString": "address" } }, { "argumentTypes": null, - "id": 1165, - "name": "_rewardsDay", + "id": 253, + "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1156, - "src": "7611:11:2", + "referencedDeclaration": 221, + "src": "4471:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14133,12 +3627,8 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" + "typeIdentifier": "t_address", + "typeString": "address" }, { "typeIdentifier": "t_uint256", @@ -14147,32 +3637,32 @@ ], "expression": { "argumentTypes": null, - "id": 1161, - "name": "PropsRewardsLib", + "id": 249, + "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "7554:15:2", + "referencedDeclaration": 217, + "src": "4446:6:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" + "typeIdentifier": "t_contract$_ERC20_$1178", + "typeString": "contract ERC20" } }, - "id": 1162, + "id": 251, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "getParameterValue", + "memberName": "safeTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 2109, - "src": "7554:33:2", + "referencedDeclaration": 1336, + "src": "4446:19:2", "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_ParameterName_$1513_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.ParameterName,uint256) view returns (uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1314_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$1314_$", + "typeString": "function (contract IERC20,address,uint256)" } }, - "id": 1166, + "id": 254, "isConstant": false, "isLValue": false, "isPure": false, @@ -14180,54 +3670,73 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7554:69:2", + "src": "4446:33:2", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "functionReturnParameters": 1160, - "id": 1167, - "nodeType": "Return", - "src": "7547:76:2" + "id": 255, + "nodeType": "ExpressionStatement", + "src": "4446:33:2" } ] }, - "documentation": "@dev Allows getting a parameter value based on timestamp\n@param _name ParameterName name of the parameter\n@param _rewardsDay uint256 starting when should this parameter use the current value", - "id": 1169, + "documentation": "@dev Reclaim all ERC20 compatible tokens\n@param _token ERC20 The address of the token contract", + "id": 257, "implemented": true, "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getParameter", + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 224, + "modifierName": { + "argumentTypes": null, + "id": 223, + "name": "onlyController", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 77, + "src": "4231:14:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4231:14:2" + } + ], + "name": "reclaimToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 1157, + "id": 222, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1154, - "name": "_name", + "id": 217, + "name": "_token", "nodeType": "VariableDeclaration", - "scope": 1169, - "src": "7408:35:2", + "scope": 257, + "src": "4157:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" + "typeIdentifier": "t_contract$_ERC20_$1178", + "typeString": "contract ERC20" }, "typeName": { "contractScope": null, - "id": 1153, - "name": "PropsRewardsLib.ParameterName", + "id": 216, + "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1513, - "src": "7408:29:2", + "referencedDeclaration": 1178, + "src": "4157:5:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" + "typeIdentifier": "t_contract$_ERC20_$1178", + "typeString": "contract ERC20" } }, "value": null, @@ -14235,45 +3744,37 @@ }, { "constant": false, - "id": 1156, - "name": "_rewardsDay", + "id": 219, + "name": "_to", "nodeType": "VariableDeclaration", - "scope": 1169, - "src": "7453:19:2", + "scope": 257, + "src": "4179:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 1155, - "name": "uint256", + "id": 218, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "7453:7:2", + "src": "4179:7:2", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" - } - ], - "src": "7398:80:2" - }, - "payable": false, - "returnParameters": { - "id": 1160, - "nodeType": "ParameterList", - "parameters": [ + }, { "constant": false, - "id": 1159, - "name": "", + "id": 221, + "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 1169, - "src": "7524:7:2", + "scope": 257, + "src": "4200:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14281,10 +3782,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1158, + "id": 220, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7524:7:2", + "src": "4200:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14294,520 +3795,264 @@ "visibility": "internal" } ], - "src": "7523:9:2" + "src": "4147:74:2" + }, + "payable": false, + "returnParameters": { + "id": 225, + "nodeType": "ParameterList", + "parameters": [], + "src": "4246:0:2" }, - "scope": 1502, - "src": "7377:253:2", - "stateMutability": "view", + "scope": 373, + "src": "4126:360:2", + "stateMutability": "nonpayable", "superFunction": null, - "visibility": "public" + "visibility": "external" }, { "body": { - "id": 1214, + "id": 281, "nodeType": "Block", - "src": "8092:355:2", + "src": "4746:202:2", "statements": [ { "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1183, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "8134:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - { - "argumentTypes": null, - "id": 1184, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1171, - "src": "8150:5:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - { - "argumentTypes": null, - "id": 1185, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1173, - "src": "8157:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1186, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1175, - "src": "8165:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1180, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "8102:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateParameter", - "nodeType": "MemberAccess", - "referencedDeclaration": 2198, - "src": "8102:31:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_ParameterName_$1513_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.ParameterName,uint256,uint256)" - } - }, - "id": 1187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8102:75:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1188, - "nodeType": "ExpressionStatement", - "src": "8102:75:2" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1190, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1171, - "src": "8222:5:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1191, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "8241:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "8241:25:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 1196, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1194, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1171, - "src": "8275:5:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 1193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8267:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 1195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8267:14:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8241:41:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 1197, + "id": 269, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "currentValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 1518, - "src": "8241:54:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { + "leftExpression": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { + "id": 265, + "name": "_controller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 259, + "src": "4764:11:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "id": 1198, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "8309:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1199, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "8309:25:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 1203, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1201, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1171, - "src": "8343:5:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 1200, + "hexValue": "30", + "id": 267, "isConstant": false, "isLValue": false, "isPure": true, + "kind": "number", "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8335:7:2", + "nodeType": "Literal", + "src": "4787:1:2", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "typeName": "uint256" - }, - "id": 1202, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 266, "isConstant": false, "isLValue": false, - "isPure": false, - "kind": "typeConversion", + "isPure": true, "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8335:14:2", + "nodeType": "ElementaryTypeNameExpression", + "src": "4779:7:2", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" }, + "id": 268, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8309:41:2", + "names": [], + "nodeType": "FunctionCall", + "src": "4779:10:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "id": 1204, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previousValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 1520, - "src": "8309:55:2", + "src": "4764:25:2", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1205, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "8378:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1206, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "8378:25:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 1210, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1208, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1171, - "src": "8412:5:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 1207, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8404:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8404:14:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8378:41:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } - }, - "id": 1211, + "hexValue": "436f6e74726f6c6c65722063616e6e6f7420626520746865207a65726f2061646472657373", + "id": 270, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, + "kind": "string", "lValueRequested": false, - "memberName": "rewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1522, - "src": "8378:52:2", + "nodeType": "Literal", + "src": "4791:39:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8a495fa0d3c9f7c33b0da68880d49b175abe1e0d24ae9a6277a9d61a20134261", + "typeString": "literal_string \"Controller cannot be the zero address\"" + }, + "value": "Controller cannot be the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a495fa0d3c9f7c33b0da68880d49b175abe1e0d24ae9a6277a9d61a20134261", + "typeString": "literal_string \"Controller cannot be the zero address\"" + } + ], + "id": 264, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1451, + "src": "4756:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4756:75:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 272, + "nodeType": "ExpressionStatement", + "src": "4756:75:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 273, + "name": "controller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "4841:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 274, + "name": "_controller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 259, + "src": "4854:11:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4841:24:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 276, + "nodeType": "ExpressionStatement", + "src": "4841:24:2" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 278, + "name": "_controller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 259, + "src": "4920:11:2", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 1189, - "name": "ParameterUpdated", + "id": 277, + "name": "ControllerUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "8192:16:2", + "referencedDeclaration": 42, + "src": "4880:17:2", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_ParameterName_$1513_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (enum PropsRewardsLib.ParameterName,uint256,uint256,uint256)" + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 1212, + "id": 279, "isConstant": false, "isLValue": false, "isPure": false, @@ -14815,503 +4060,217 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8192:248:2", + "src": "4880:61:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1213, + "id": 280, "nodeType": "EmitStatement", - "src": "8187:253:2" + "src": "4875:66:2" } ] }, - "documentation": "@dev Allows the controller/owner to update rewards parameters\n@param _name ParameterName name of the parameter\n@param _value uint256 new value for the parameter\n@param _rewardsDay uint256 starting when should this parameter use the current value", - "id": 1215, + "documentation": "@dev Allows the controller/owner to update to a new controller\n@param _controller address address of the new controller", + "id": 282, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1178, + "id": 262, "modifierName": { "argumentTypes": null, - "id": 1177, + "id": 261, "name": "onlyController", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 936, - "src": "8073:14:2", + "referencedDeclaration": 77, + "src": "4727:14:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "8073:14:2" + "src": "4727:14:2" } ], - "name": "updateParameter", + "name": "updateController", "nodeType": "FunctionDefinition", "parameters": { - "id": 1176, + "id": 260, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1171, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1215, - "src": "7955:35:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - "typeName": { - "contractScope": null, - "id": 1170, - "name": "PropsRewardsLib.ParameterName", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1513, - "src": "7955:29:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1173, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 1215, - "src": "8000:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1172, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8000:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1175, - "name": "_rewardsDay", + "id": 259, + "name": "_controller", "nodeType": "VariableDeclaration", - "scope": 1215, - "src": "8024:19:2", + "scope": 282, + "src": "4678:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 1174, - "name": "uint256", + "id": 258, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "8024:7:2", + "src": "4678:7:2", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" } ], - "src": "7945:104:2" + "src": "4668:35:2" }, "payable": false, "returnParameters": { - "id": 1179, + "id": 263, "nodeType": "ParameterList", "parameters": [], - "src": "8092:0:2" + "src": "4746:0:2" }, - "scope": 1502, - "src": "7921:526:2", + "scope": 373, + "src": "4643:305:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1245, + "id": 295, "nodeType": "Block", - "src": "9024:213:2", + "src": "5012:40:2", "statements": [ { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1229, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "9063:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - { - "argumentTypes": null, - "id": 1230, - "name": "_entityType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1217, - "src": "9079:11:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - { - "argumentTypes": null, - "id": 1231, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "9092:5:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1232, - "name": "_rewardsAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "9099:15:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1233, - "name": "_sidechainAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1223, - "src": "9116:17:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1226, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "9034:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateEntity", - "nodeType": "MemberAccess", - "referencedDeclaration": 2237, - "src": "9034:28:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_RewardedEntityType_$1516_$_t_bytes32_$_t_address_$_t_address_$returns$__$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.RewardedEntityType,bytes32,address,address)" - } - }, - "id": 1234, + "id": 293, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9034:100:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1235, - "nodeType": "ExpressionStatement", - "src": "9034:100:2" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1237, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "9163:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9163:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1239, - "name": "_entityType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1217, - "src": "9175:11:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - { + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { "argumentTypes": null, - "id": 1240, - "name": "_name", + "id": 289, + "name": "minters", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "9188:5:2", + "referencedDeclaration": 54, + "src": "5022:7:2", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" } }, - { + "id": 291, + "indexExpression": { "argumentTypes": null, - "id": 1241, - "name": "_rewardsAddress", + "id": 290, + "name": "_minter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "9195:15:2", + "referencedDeclaration": 284, + "src": "5030:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - { - "argumentTypes": null, - "id": 1242, - "name": "_sidechainAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1223, - "src": "9212:17:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1236, - "name": "EntityUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 876, - "src": "9149:13:2", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5022:16:2", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_enum$_RewardedEntityType_$1516_$_t_bytes32_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,enum PropsRewardsLib.RewardedEntityType,bytes32,address,address)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 1243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9149:81:2", + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5041:4:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "5022:23:2", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 1244, - "nodeType": "EmitStatement", - "src": "9144:86:2" + "id": 294, + "nodeType": "ExpressionStatement", + "src": "5022:23:2" } ] }, - "documentation": "@dev Allows an application or validator to add/update its details\n@param _entityType RewardedEntityType either application (0) or validator (1)\n@param _name bytes32 name of the app\n@param _rewardsAddress address an address for the app to receive the rewards\n@param _sidechainAddress address the address used for using the sidechain", - "id": 1246, + "documentation": null, + "id": 296, "implemented": true, "isConstructor": false, "isDeclaredConst": false, - "modifiers": [], - "name": "updateEntity", + "modifiers": [ + { + "arguments": null, + "id": 287, + "modifierName": { + "argumentTypes": null, + "id": 286, + "name": "onlyController", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 77, + "src": "4997:14:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4997:14:2" + } + ], + "name": "addMinter", "nodeType": "FunctionDefinition", "parameters": { - "id": 1224, + "id": 285, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1217, - "name": "_entityType", - "nodeType": "VariableDeclaration", - "scope": 1246, - "src": "8861:46:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - }, - "typeName": { - "contractScope": null, - "id": 1216, - "name": "PropsRewardsLib.RewardedEntityType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1516, - "src": "8861:34:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1219, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 1246, - "src": "8917:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1218, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8917:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1221, - "name": "_rewardsAddress", + "id": 284, + "name": "_minter", "nodeType": "VariableDeclaration", - "scope": 1246, - "src": "8940:23:2", + "scope": 296, + "src": "4973:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15319,10 +4278,10 @@ "typeString": "address" }, "typeName": { - "id": 1220, + "id": 283, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8940:7:2", + "src": "4973:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15330,14 +4289,148 @@ }, "value": null, "visibility": "internal" + } + ], + "src": "4972:17:2" + }, + "payable": false, + "returnParameters": { + "id": 288, + "nodeType": "ParameterList", + "parameters": [], + "src": "5012:0:2" + }, + "scope": 373, + "src": "4954:98:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 309, + "nodeType": "Block", + "src": "5119:41:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 303, + "name": "minters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 54, + "src": "5129:7:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 305, + "indexExpression": { + "argumentTypes": null, + "id": 304, + "name": "_minter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 298, + "src": "5137:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5129:16:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 306, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5148:5:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "5129:24:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 308, + "nodeType": "ExpressionStatement", + "src": "5129:24:2" + } + ] + }, + "documentation": null, + "id": 310, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 301, + "modifierName": { + "argumentTypes": null, + "id": 300, + "name": "onlyController", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 77, + "src": "5104:14:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } }, + "nodeType": "ModifierInvocation", + "src": "5104:14:2" + } + ], + "name": "removeMinter", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 299, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 1223, - "name": "_sidechainAddress", + "id": 298, + "name": "_minter", "nodeType": "VariableDeclaration", - "scope": 1246, - "src": "8973:25:2", + "scope": 310, + "src": "5080:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15345,10 +4438,10 @@ "typeString": "address" }, "typeName": { - "id": 1222, + "id": 297, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8973:7:2", + "src": "5080:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15358,26 +4451,26 @@ "visibility": "internal" } ], - "src": "8851:153:2" + "src": "5079:17:2" }, "payable": false, "returnParameters": { - "id": 1225, + "id": 302, "nodeType": "ParameterList", "parameters": [], - "src": "9024:0:2" + "src": "5119:0:2" }, - "scope": 1502, - "src": "8830:407:2", + "scope": 373, + "src": "5058:102:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1285, + "id": 341, "nodeType": "Block", - "src": "9834:310:2", + "src": "5402:245:2", "statements": [ { "expression": { @@ -15385,105 +4478,36 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "baseExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1258, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "9865:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1259, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1583, - "src": "9865:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 1261, - "indexExpression": { - "argumentTypes": null, - "id": 1260, - "name": "_applicationAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1248, - "src": "9893:19:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9865:48:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 1262, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "rewardsAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1527, - "src": "9865:63:2", + "id": 318, + "name": "minters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 54, + "src": "5420:7:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { + "id": 321, + "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1263, + "id": 319, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "9932:3:2", + "referencedDeclaration": 1447, + "src": "5428:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1264, + "id": 320, "isConstant": false, "isLValue": false, "isPure": false, @@ -15491,13 +4515,18 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "9932:10:2", + "src": "5428:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "9865:77:2", + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5420:19:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15505,21 +4534,21 @@ }, { "argumentTypes": null, - "hexValue": "736574746c65206d6179206f6e6c792062652063616c6c656420627920616e206170706c69636174696f6e", - "id": 1266, + "hexValue": "4d696e7420666e2063616e2062652063616c6c6564206f6e6c79206279206d696e746572", + "id": 322, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9956:45:2", + "src": "5441:38:2", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_74d546608d09ea94d157f392042beb5d20d62f51c32116bbc348b06ca1518bc5", - "typeString": "literal_string \"settle may only be called by an application\"" + "typeIdentifier": "t_stringliteral_eb1a5f0f9d0fdf3f262c34f8680edb58553e4d4b8bf43b2a6234c19fb11f4284", + "typeString": "literal_string \"Mint fn can be called only by minter\"" }, - "value": "settle may only be called by an application" + "value": "Mint fn can be called only by minter" } ], "expression": { @@ -15529,25 +4558,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_74d546608d09ea94d157f392042beb5d20d62f51c32116bbc348b06ca1518bc5", - "typeString": "literal_string \"settle may only be called by an application\"" + "typeIdentifier": "t_stringliteral_eb1a5f0f9d0fdf3f262c34f8680edb58553e4d4b8bf43b2a6234c19fb11f4284", + "typeString": "literal_string \"Mint fn can be called only by minter\"" } ], - "id": 1257, + "id": 317, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4201, - 4202 + 1450, + 1451 ], - "referencedDeclaration": 4202, - "src": "9844:7:2", + "referencedDeclaration": 1451, + "src": "5412:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1267, + "id": 323, "isConstant": false, "isLValue": false, "isPure": false, @@ -15555,15 +4584,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9844:167:2", + "src": "5412:68:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1268, + "id": 324, "nodeType": "ExpressionStatement", - "src": "9844:167:2" + "src": "5412:68:2" }, { "expression": { @@ -15571,87 +4600,163 @@ "arguments": [ { "argumentTypes": null, - "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 329, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 314, + "src": "5529:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 326, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 808, + "src": "5511:11:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5511:13:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 755, + "src": "5511:17:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5511:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { "argumentTypes": null, - "id": 1270, - "name": "msg", + "id": 331, + "name": "maxTotalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "10031:3:2", + "referencedDeclaration": 46, + "src": "5541:14:2", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 1271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10031:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1272, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "10043:3:2", + "src": "5511:44:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, { "argumentTypes": null, - "id": 1273, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "10048:7:2", + "hexValue": "4d617820746f74616c20737570706c79206578636565646564", + "id": 333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5569:27:2", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_stringliteral_576687e9f9a6c8940514acd6edd253f5634a720591b9770678ade141862adb82", + "typeString": "literal_string \"Max total supply exceeded\"" + }, + "value": "Max total supply exceeded" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" }, { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_stringliteral_576687e9f9a6c8940514acd6edd253f5634a720591b9770678ade141862adb82", + "typeString": "literal_string \"Max total supply exceeded\"" } ], - "id": 1269, - "name": "_transfer", + "id": 325, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "10021:9:2", + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1451, + "src": "5490:7:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "id": 1274, + "id": 334, "isConstant": false, "isLValue": false, "isPure": false, @@ -15659,54 +4764,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10021:35:2", + "src": "5490:116:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1275, + "id": 335, "nodeType": "ExpressionStatement", - "src": "10021:35:2" + "src": "5490:116:2" }, { - "eventCall": { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1277, - "name": "_applicationAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1248, - "src": "10082:19:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1278, - "name": "_userId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1250, - "src": "10103:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1279, - "name": "_to", + "id": 337, + "name": "_account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1252, - "src": "10112:3:2", + "referencedDeclaration": 312, + "src": "5622:8:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15714,57 +4793,20 @@ }, { "argumentTypes": null, - "id": 1280, + "id": 338, "name": "_amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1254, - "src": "10117:7:2", + "referencedDeclaration": 314, + "src": "5632:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1281, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "10126:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10126:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } } ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, { "typeIdentifier": "t_address", "typeString": "address" @@ -15772,24 +4814,20 @@ { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" } ], - "id": 1276, - "name": "Settlement", + "id": 336, + "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 916, - "src": "10071:10:2", + "referencedDeclaration": 1057, + "src": "5616:5:2", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,bytes32,address,uint256,address)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" } }, - "id": 1283, + "id": 339, "isConstant": false, "isLValue": false, "isPure": false, @@ -15797,89 +4835,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10071:66:2", + "src": "5616:24:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1284, - "nodeType": "EmitStatement", - "src": "10066:71:2" + "id": 340, + "nodeType": "ExpressionStatement", + "src": "5616:24:2" } ] }, - "documentation": "@dev Allows an application to settle sidechain props. Should be called from an application rewards address\n@param _applicationAddress address the application main address (used to setup the application)\n@param _userId bytes32 identification of the user on the sidechain that was settled\n@param _to address where to send the props to\n@param _amount uint256 the address used for using the sidechain", - "id": 1286, + "documentation": "@dev Allows minters to mint tokens to a given address\n@param _account address of the receiving account\n@param _amount uint256 how much to mint", + "id": 342, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "settle", + "name": "mint", "nodeType": "FunctionDefinition", "parameters": { - "id": 1255, + "id": 315, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1248, - "name": "_applicationAddress", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "9710:27:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1247, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9710:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1250, - "name": "_userId", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "9747:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1249, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9747:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1252, - "name": "_to", + "id": 312, + "name": "_account", "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "9772:11:2", + "scope": 342, + "src": "5360:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15887,10 +4873,10 @@ "typeString": "address" }, "typeName": { - "id": 1251, + "id": 311, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9772:7:2", + "src": "5360:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15901,11 +4887,11 @@ }, { "constant": false, - "id": 1254, + "id": 314, "name": "_amount", "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "9793:15:2", + "scope": 342, + "src": "5378:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15913,10 +4899,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1253, + "id": 313, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9793:7:2", + "src": "5378:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15926,26 +4912,26 @@ "visibility": "internal" } ], - "src": "9700:114:2" + "src": "5359:35:2" }, "payable": false, "returnParameters": { - "id": 1256, + "id": 316, "nodeType": "ParameterList", "parameters": [], - "src": "9834:0:2" + "src": "5402:0:2" }, - "scope": 1502, - "src": "9685:459:2", + "scope": 373, + "src": "5346:301:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1385, + "id": 371, "nodeType": "Block", - "src": "10739:1199:2", + "src": "5940:291:2", "statements": [ { "expression": { @@ -15957,19 +4943,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1300, + "id": 352, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1298, + "id": 350, "name": "maxTotalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "10757:14:2", + "referencedDeclaration": 46, + "src": "5971:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15980,14 +4966,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1299, + "id": 351, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10773:1:2", + "src": "5989:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -15995,7 +4981,7 @@ }, "value": "0" }, - "src": "10757:17:2", + "src": "5971:19:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16004,14 +4990,14 @@ { "argumentTypes": null, "hexValue": "496e697469616c697a6520726577617264732075706772616465312063616e2068617070656e206f6e6c79206f6e6365", - "id": 1301, + "id": 353, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10776:50:2", + "src": "6004:50:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8f3fa00998356bee6475356a7d882a097c898c4220629a10c10cc1088d89dcb0", @@ -16031,21 +5017,21 @@ "typeString": "literal_string \"Initialize rewards upgrade1 can happen only once\"" } ], - "id": 1297, + "id": 349, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4201, - 4202 + 1450, + 1451 ], - "referencedDeclaration": 4202, - "src": "10749:7:2", + "referencedDeclaration": 1451, + "src": "5950:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1302, + "id": 354, "isConstant": false, "isLValue": false, "isPure": false, @@ -16053,32 +5039,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10749:78:2", + "src": "5950:114:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1303, + "id": 355, "nodeType": "ExpressionStatement", - "src": "10749:78:2" + "src": "5950:114:2" }, { "expression": { "argumentTypes": null, - "id": 1306, + "id": 358, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1304, + "id": 356, "name": "controller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 924, - "src": "10837:10:2", + "referencedDeclaration": 50, + "src": "6074:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16088,2793 +5074,5586 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1305, + "id": 357, "name": "_controller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1288, - "src": "10850:11:2", + "referencedDeclaration": 344, + "src": "6087:11:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "10837:24:2", + "src": "6074:24:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1307, + "id": 359, "nodeType": "ExpressionStatement", - "src": "10837:24:2" + "src": "6074:24:2" }, { "expression": { "argumentTypes": null, - "arguments": [ - { + "id": 369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 360, + "name": "maxTotalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "6182:14:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "argumentTypes": null, - "id": 1311, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "10958:14:2", + "commonType": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6199:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "316539", + "id": 362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6203:3:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1e9" + }, + "src": "6199:7:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" } }, - { + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { + "components": [ + { "argumentTypes": null, - "id": 1312, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "10974:15:2", + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 364, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6210:2:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "id": 365, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 346, + "src": "6214:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6210:13:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 1313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "ParameterName", - "nodeType": "MemberAccess", - "referencedDeclaration": 1513, - "src": "10974:29:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ParameterName_$1513_$", - "typeString": "type(enum PropsRewardsLib.ParameterName)" } - }, - "id": 1314, + ], + "id": 367, "isConstant": false, + "isInlineArray": false, "isLValue": false, - "isPure": true, + "isPure": false, "lValueRequested": false, - "memberName": "ApplicationRewardsPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10974:55:2", + "nodeType": "TupleExpression", + "src": "6209:15:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, + "src": "6199:25:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6182:42:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 370, + "nodeType": "ExpressionStatement", + "src": "6182:42:2" + } + ] + }, + "documentation": "@dev internal intialize\n@param _controller address that will have controller functionality on rewards protocol\n@param _decimals uint256 number of decimals used in total supply", + "id": 372, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_initialize", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 347, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 344, + "name": "_controller", + "nodeType": "VariableDeclaration", + "scope": 372, + "src": "5891:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 343, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5891:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 346, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 372, + "src": "5912:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 345, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5912:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5890:40:2" + }, + "payable": false, + "returnParameters": { + "id": 348, + "nodeType": "ParameterList", + "parameters": [], + "src": "5940:0:2" + }, + "scope": 373, + "src": "5870:361:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 374, + "src": "428:5805:2" + } + ], + "src": "0:6233:2" + }, + "legacyAST": { + "attributes": { + "absolutePath": "/home/george/Development/props/props-token-distribution/contracts/token/PropsRewards.sol", + "exportedSymbols": { + "PropsRewards": [ + 373 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ] + }, + "id": 22, + "name": "PragmaDirective", + "src": "0:24:2" + }, + { + "attributes": { + "SourceUnit": 1433, + "absolutePath": "zos-lib/contracts/Initializable.sol", + "file": "zos-lib/contracts/Initializable.sol", + "scope": 374, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 23, + "name": "ImportDirective", + "src": "26:45:2" + }, + { + "attributes": { + "SourceUnit": 777, + "absolutePath": "openzeppelin-eth/contracts/math/SafeMath.sol", + "file": "openzeppelin-eth/contracts/math/SafeMath.sol", + "scope": 374, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 24, + "name": "ImportDirective", + "src": "72:54:2" + }, + { + "attributes": { + "SourceUnit": 1179, + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", + "file": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", + "scope": 374, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 25, + "name": "ImportDirective", + "src": "127:58:2" + }, + { + "attributes": { + "SourceUnit": 1377, + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/SafeERC20.sol", + "file": "openzeppelin-eth/contracts/token/ERC20/SafeERC20.sol", + "scope": 374, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 26, + "name": "ImportDirective", + "src": "186:62:2" + }, + { + "attributes": { + "SourceUnit": 485, + "absolutePath": "/home/george/Development/props/props-token-distribution/contracts/token/PropsRewardsLib.sol", + "file": "./PropsRewardsLib.sol", + "scope": 374, + "symbolAliases": [ + { + "foreign": 27, + "local": null + } + ], + "unitAlias": "" + }, + "id": 28, + "name": "ImportDirective", + "src": "249:56:2" + }, + { + "attributes": { + "contractDependencies": [ + 1178, + 1314, + 1432 + ], + "contractKind": "contract", + "documentation": "@title Props Rewards\n@dev Contract allows to set approved apps and validators. Submit and mint rewards...*", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 373, + 1178, + 1314, + 1432 + ], + "name": "PropsRewards", + "scope": 374 + }, + "children": [ + { + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "Initializable", + "referencedDeclaration": 1432, + "type": "contract Initializable" + }, + "id": 29, + "name": "UserDefinedTypeName", + "src": "453:13:2" + } + ], + "id": 30, + "name": "InheritanceSpecifier", + "src": "453:13:2" + }, + { + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "ERC20", + "referencedDeclaration": 1178, + "type": "contract ERC20" + }, + "id": 31, + "name": "UserDefinedTypeName", + "src": "468:5:2" + } + ], + "id": 32, + "name": "InheritanceSpecifier", + "src": "468:5:2" + }, + { + "children": [ + { + "attributes": { + "contractScope": null, + "name": "SafeMath", + "referencedDeclaration": 776, + "type": "library SafeMath" + }, + "id": 33, + "name": "UserDefinedTypeName", + "src": "486:8:2" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 34, + "name": "ElementaryTypeName", + "src": "499:7:2" + } + ], + "id": 35, + "name": "UsingForDirective", + "src": "480:27:2" + }, + { + "children": [ + { + "attributes": { + "contractScope": null, + "name": "SafeERC20", + "referencedDeclaration": 1376, + "type": "library SafeERC20" + }, + "id": 36, + "name": "UserDefinedTypeName", + "src": "518:9:2" + }, + { + "attributes": { + "contractScope": null, + "name": "ERC20", + "referencedDeclaration": 1178, + "type": "contract ERC20" + }, + "id": 37, + "name": "UserDefinedTypeName", + "src": "532:5:2" + } + ], + "id": 38, + "name": "UsingForDirective", + "src": "512:26:2" + }, + { + "attributes": { + "anonymous": false, + "documentation": null, + "name": "ControllerUpdated" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "name": "newController", + "scope": 42, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ { - "argumentTypes": null, - "hexValue": "3334373530", - "id": 1315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11031:5:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_34750_by_1", - "typeString": "int_const 34750" - }, - "value": "34750" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 1316, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11038:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "attributes": { + "name": "address", + "type": "address" }, - "value": "0" + "id": 39, + "name": "ElementaryTypeName", + "src": "600:7:2" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - { - "typeIdentifier": "t_rational_34750_by_1", - "typeString": "int_const 34750" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "argumentTypes": null, - "id": 1308, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "10926:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateParameter", - "nodeType": "MemberAccess", - "referencedDeclaration": 2198, - "src": "10926:31:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_ParameterName_$1513_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.ParameterName,uint256,uint256)" - } + "id": 40, + "name": "VariableDeclaration", + "src": "600:29:2" + } + ], + "id": 41, + "name": "ParameterList", + "src": "599:31:2" + } + ], + "id": 42, + "name": "EventDefinition", + "src": "576:55:2" + }, + { + "attributes": { + "constant": false, + "name": "rewardsLibData", + "scope": 373, + "stateVariable": true, + "storageLocation": "default", + "type": "struct PropsRewardsLib.Data", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "PropsRewardsLib.Data", + "referencedDeclaration": 483, + "type": "struct PropsRewardsLib.Data" + }, + "id": 43, + "name": "UserDefinedTypeName", + "src": "667:20:2" + } + ], + "id": 44, + "name": "VariableDeclaration", + "src": "667:44:2" + }, + { + "attributes": { + "constant": false, + "name": "maxTotalSupply", + "scope": 373, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 45, + "name": "ElementaryTypeName", + "src": "717:7:2" + } + ], + "id": 46, + "name": "VariableDeclaration", + "src": "717:29:2" + }, + { + "attributes": { + "constant": false, + "name": "rewardsStartTimestamp", + "scope": 373, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 47, + "name": "ElementaryTypeName", + "src": "752:7:2" + } + ], + "id": 48, + "name": "VariableDeclaration", + "src": "752:36:2" + }, + { + "attributes": { + "constant": false, + "name": "controller", + "scope": 373, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 49, + "name": "ElementaryTypeName", + "src": "794:7:2" + } + ], + "id": 50, + "name": "VariableDeclaration", + "src": "794:25:2" + }, + { + "attributes": { + "constant": false, + "name": "minters", + "scope": 373, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => bool)", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 51, + "name": "ElementaryTypeName", + "src": "854:7:2" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 52, + "name": "ElementaryTypeName", + "src": "865:4:2" + } + ], + "id": 53, + "name": "Mapping", + "src": "846:24:2" + } + ], + "id": 54, + "name": "VariableDeclaration", + "src": "846:39:2" + }, + { + "attributes": { + "constant": false, + "name": "DOMAIN_SEPARATOR", + "scope": 373, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 55, + "name": "ElementaryTypeName", + "src": "891:7:2" + } + ], + "id": 56, + "name": "VariableDeclaration", + "src": "891:31:2" + }, + { + "attributes": { + "constant": true, + "name": "PERMIT_TYPEHASH", + "scope": 373, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes32", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 57, + "name": "ElementaryTypeName", + "src": "1032:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 4995...(69 digits omitted)...3241", + "value": "0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9" + }, + "id": 58, + "name": "Literal", + "src": "1074:66:2" + } + ], + "id": 59, + "name": "VariableDeclaration", + "src": "1032:108:2" + }, + { + "attributes": { + "constant": false, + "name": "nonces", + "scope": 373, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => uint256)", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => uint256)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" }, - "id": 1317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10926:114:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + "id": 60, + "name": "ElementaryTypeName", + "src": "1154:7:2" }, - "id": 1318, - "nodeType": "ExpressionStatement", - "src": "10926:114:2" + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 61, + "name": "ElementaryTypeName", + "src": "1165:7:2" + } + ], + "id": 62, + "name": "Mapping", + "src": "1146:27:2" + } + ], + "id": 63, + "name": "VariableDeclaration", + "src": "1146:41:2" + }, + { + "attributes": { + "constant": false, + "name": "MY_CHAIN_ID", + "scope": 373, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1322, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "11148:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, + "id": 64, + "name": "ElementaryTypeName", + "src": "1193:7:2" + } + ], + "id": 65, + "name": "VariableDeclaration", + "src": "1193:26:2" + }, + { + "attributes": { + "documentation": null, + "name": "onlyController", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 66, + "name": "ParameterList", + "src": "1279:2:2" + }, + { + "children": [ + { + "children": [ { - "argumentTypes": null, - "expression": { + "attributes": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1323, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "11164:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1324, "isConstant": false, "isLValue": false, "isPure": false, + "isStructConstructorCall": false, "lValueRequested": false, - "memberName": "ParameterName", - "nodeType": "MemberAccess", - "referencedDeclaration": 1513, - "src": "11164:29:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ParameterName_$1513_$", - "typeString": "type(enum PropsRewardsLib.ParameterName)" - } - }, - "id": 1325, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "ApplicationRewardsMaxVariationPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11164:67:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_150000000_by_1", - "typeString": "int_const 150000000" + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false }, - "id": 1328, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "313530", - "id": 1326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11233:3:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_150_by_1", - "typeString": "int_const 150" + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a97db86538dc368189c5fc6f1877eb574a6bdbd5996134dcbb672078a84d0c9", + "typeString": "literal_string \"Must be the controller\"" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1451, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 67, + "name": "Identifier", + "src": "1292:7:2" }, - "value": "150" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "316536", - "id": 1327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11239:3:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1447, + "type": "msg", + "value": "msg" + }, + "id": 68, + "name": "Identifier", + "src": "1313:3:2" + } + ], + "id": 69, + "name": "MemberAccess", + "src": "1313:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 50, + "type": "address", + "value": "controller" + }, + "id": 70, + "name": "Identifier", + "src": "1327:10:2" + } + ], + "id": 71, + "name": "BinaryOperation", + "src": "1313:24:2" }, - "value": "1e6" - }, - "src": "11233:9:2", - "typeDescriptions": { - "typeIdentifier": "t_rational_150000000_by_1", - "typeString": "int_const 150000000" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 1329, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11244:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + { + "attributes": { + "argumentTypes": null, + "hexvalue": "4d7573742062652074686520636f6e74726f6c6c6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Must be the controller\"", + "value": "Must be the controller" + }, + "id": 72, + "name": "Literal", + "src": "1351:24:2" + } + ], + "id": 73, + "name": "FunctionCall", + "src": "1292:93:2" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - { - "typeIdentifier": "t_rational_150000000_by_1", - "typeString": "int_const 150000000" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "argumentTypes": null, - "id": 1319, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "11116:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateParameter", - "nodeType": "MemberAccess", - "referencedDeclaration": 2198, - "src": "11116:31:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_ParameterName_$1513_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.ParameterName,uint256,uint256)" - } + "id": 74, + "name": "ExpressionStatement", + "src": "1292:93:2" + }, + { + "id": 75, + "name": "PlaceholderStatement", + "src": "1395:1:2" + } + ], + "id": 76, + "name": "Block", + "src": "1282:121:2" + } + ], + "id": 77, + "name": "ModifierDefinition", + "src": "1256:147:2" + }, + { + "attributes": { + "constant": false, + "documentation": "@dev The initializer function for upgrade as initialize was already called, get the decimals used in the token to initialize the params\n@param _controller address that will have controller functionality on token", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "initialize", + "payable": false, + "scope": 373, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_controller", + "scope": 92, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" }, - "id": 1330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11116:130:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1331, - "nodeType": "ExpressionStatement", - "src": "11116:130:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1335, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "11340:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, + "children": [ { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1336, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "11356:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1337, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "ParameterName", - "nodeType": "MemberAccess", - "referencedDeclaration": 1513, - "src": "11356:29:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ParameterName_$1513_$", - "typeString": "type(enum PropsRewardsLib.ParameterName)" + "attributes": { + "name": "address", + "type": "address" + }, + "id": 78, + "name": "ElementaryTypeName", + "src": "1671:7:2" + } + ], + "id": 79, + "name": "VariableDeclaration", + "src": "1671:19:2" + } + ], + "id": 80, + "name": "ParameterList", + "src": "1670:21:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 81, + "name": "ParameterList", + "src": "1699:0:2" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 83 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "decimals", + "scope": 92, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 82, + "name": "ElementaryTypeName", + "src": "1709:7:2" } - }, - "id": 1338, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "ValidatorMajorityPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11356:54:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } + ], + "id": 83, + "name": "VariableDeclaration", + "src": "1709:16:2" }, { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_50000000_by_1", - "typeString": "int_const 50000000" - }, - "id": 1341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3530", - "id": 1339, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11412:2:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_50_by_1", - "typeString": "int_const 50" - }, - "value": "50" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { + "attributes": { "argumentTypes": null, - "hexValue": "316536", - "id": 1340, + "hexvalue": "3138", "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", "lValueRequested": false, - "nodeType": "Literal", - "src": "11417:3:2", "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000_by_1", - "typeString": "int_const 1000000" - }, - "value": "1e6" - }, - "src": "11412:8:2", - "typeDescriptions": { - "typeIdentifier": "t_rational_50000000_by_1", - "typeString": "int_const 50000000" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 1342, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11422:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "token": "number", + "type": "int_const 18", + "value": "18" }, - "value": "0" + "id": 84, + "name": "Literal", + "src": "1728:2:2" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - { - "typeIdentifier": "t_rational_50000000_by_1", - "typeString": "int_const 50000000" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "argumentTypes": null, - "id": 1332, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "11308:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateParameter", - "nodeType": "MemberAccess", - "referencedDeclaration": 2198, - "src": "11308:31:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_ParameterName_$1513_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.ParameterName,uint256,uint256)" - } - }, - "id": 1343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11308:116:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + "id": 85, + "name": "VariableDeclarationStatement", + "src": "1709:21:2" }, - "id": 1344, - "nodeType": "ExpressionStatement", - "src": "11308:116:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1348, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "11524:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, + { + "children": [ { - "argumentTypes": null, - "expression": { + "attributes": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1349, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "11540:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1350, "isConstant": false, "isLValue": false, "isPure": false, + "isStructConstructorCall": false, "lValueRequested": false, - "memberName": "ParameterName", - "nodeType": "MemberAccess", - "referencedDeclaration": 1513, - "src": "11540:29:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ParameterName_$1513_$", - "typeString": "type(enum PropsRewardsLib.ParameterName)" - } - }, - "id": 1351, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "ValidatorRewardsPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11540:53:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - { - "argumentTypes": null, - "hexValue": "31383239", - "id": 1352, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11595:4:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1829_by_1", - "typeString": "int_const 1829" - }, - "value": "1829" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 1353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11601:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false }, - "value": "0" + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 372, + "type": "function (address,uint256)", + "value": "_initialize" + }, + "id": 86, + "name": "Identifier", + "src": "1740:11:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 79, + "type": "address", + "value": "_controller" + }, + "id": 87, + "name": "Identifier", + "src": "1752:11:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 83, + "type": "uint256", + "value": "decimals" + }, + "id": 88, + "name": "Identifier", + "src": "1765:8:2" + } + ], + "id": 89, + "name": "FunctionCall", + "src": "1740:34:2" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - { - "typeIdentifier": "t_rational_1829_by_1", - "typeString": "int_const 1829" + "id": 90, + "name": "ExpressionStatement", + "src": "1740:34:2" + } + ], + "id": 91, + "name": "Block", + "src": "1699:82:2" + } + ], + "id": 92, + "name": "FunctionDefinition", + "src": "1651:130:2" + }, + { + "attributes": { + "constant": false, + "documentation": "@dev Initialize post separation of rewards contract upgrade\n@param _tokenName string token name", + "implemented": true, + "isConstructor": false, + "name": "initializePermitUpgrade", + "payable": false, + "scope": 373, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_tokenName", + "scope": 137, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "argumentTypes": null, - "id": 1345, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "11492:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateParameter", - "nodeType": "MemberAccess", - "referencedDeclaration": 2198, - "src": "11492:31:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_ParameterName_$1513_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.ParameterName,uint256,uint256)" + "id": 93, + "name": "ElementaryTypeName", + "src": "1946:6:2" } - }, - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11492:111:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1355, - "nodeType": "ExpressionStatement", - "src": "11492:111:2" + ], + "id": 94, + "name": "VariableDeclaration", + "src": "1946:24:2" + } + ], + "id": 95, + "name": "ParameterList", + "src": "1945:26:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 98, + "name": "ParameterList", + "src": "2011:0:2" + }, + { + "attributes": { + "arguments": null }, - { - "expression": { - "argumentTypes": null, - "id": 1369, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { + "children": [ + { + "attributes": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1356, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "11688:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1358, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "maxTotalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 1609, - "src": "11688:29:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1359, - "name": "maxTotalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 920, - "src": "11720:14:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1413, + "type": "modifier ()", + "value": "initializer" + }, + "id": 96, + "name": "Identifier", + "src": "1995:11:2" + } + ], + "id": 97, + "name": "ModifierInvocation", + "src": "1995:11:2" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 100 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "chainId", + "scope": 137, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 99, + "name": "ElementaryTypeName", + "src": "2021:7:2" + } + ], + "id": 100, + "name": "VariableDeclaration", + "src": "2021:15:2" }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "attributes": { + "argumentTypes": null, + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1", + "value": "1" }, - "id": 1367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "id": 101, + "name": "Literal", + "src": "2039:1:2" + } + ], + "id": 102, + "name": "VariableDeclarationStatement", + "src": "2021:19:2" + }, + { + "attributes": { + "assignments": [ + 104 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "one", + "scope": 137, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 103, + "name": "ElementaryTypeName", + "src": "2050:6:2" + } + ], + "id": 104, + "name": "VariableDeclaration", + "src": "2050:17:2" + }, + { + "attributes": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_1000000000_by_1", - "typeString": "int_const 1000000000" - }, - "id": 1362, + "hexvalue": "31", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1360, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11737:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" + "subdenomination": null, + "token": "string", + "type": "literal_string \"1\"", + "value": "1" + }, + "id": 105, + "name": "Literal", + "src": "2070:3:2" + } + ], + "id": 106, + "name": "VariableDeclarationStatement", + "src": "2050:23:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 65, + "type": "uint256", + "value": "MY_CHAIN_ID" }, - "value": "1" + "id": 107, + "name": "Identifier", + "src": "2207:11:2" }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "316539", - "id": 1361, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11741:3:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000_by_1", - "typeString": "int_const 1000000000" + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 100, + "type": "uint256", + "value": "chainId" }, - "value": "1e9" - }, - "src": "11737:7:2", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000_by_1", - "typeString": "int_const 1000000000" + "id": 108, + "name": "Identifier", + "src": "2221:7:2" } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { + ], + "id": 109, + "name": "Assignment", + "src": "2207:21:2" + } + ], + "id": 110, + "name": "ExpressionStatement", + "src": "2207:21:2" + }, + { + "children": [ + { + "attributes": { "argumentTypes": null, - "components": [ - { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 56, + "type": "bytes32", + "value": "DOMAIN_SEPARATOR" + }, + "id": 111, + "name": "Identifier", + "src": "2238:16:2" + }, + { + "attributes": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1365, "isConstant": false, "isLValue": false, "isPure": false, + "isStructConstructorCall": false, "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 1363, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11748:2:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1441, + "type": "function () pure returns (bytes32)", + "value": "keccak256" }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "id": 1364, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1290, - "src": "11754:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "id": 112, + "name": "Identifier", + "src": "2257:9:2" }, - "src": "11748:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encode", + "referencedDeclaration": null, + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1434, + "type": "abi", + "value": "abi" + }, + "id": 113, + "name": "Identifier", + "src": "2280:3:2" + } + ], + "id": 114, + "name": "MemberAccess", + "src": "2280:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f", + "typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1441, + "type": "function () pure returns (bytes32)", + "value": "keccak256" + }, + "id": 115, + "name": "Identifier", + "src": "2308:9:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"", + "value": "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)" + }, + "id": 116, + "name": "Literal", + "src": "2339:84:2" + } + ], + "id": 117, + "name": "FunctionCall", + "src": "2308:133:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1441, + "type": "function () pure returns (bytes32)", + "value": "keccak256" + }, + "id": 118, + "name": "Identifier", + "src": "2459:9:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)", + "value": "bytes" + }, + "id": 119, + "name": "ElementaryTypeNameExpression", + "src": "2469:5:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 94, + "type": "string memory", + "value": "_tokenName" + }, + "id": 120, + "name": "Identifier", + "src": "2475:10:2" + } + ], + "id": 121, + "name": "FunctionCall", + "src": "2469:17:2" + } + ], + "id": 122, + "name": "FunctionCall", + "src": "2459:28:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1441, + "type": "function () pure returns (bytes32)", + "value": "keccak256" + }, + "id": 123, + "name": "Identifier", + "src": "2505:9:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)", + "value": "bytes" + }, + "id": 124, + "name": "ElementaryTypeNameExpression", + "src": "2515:5:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 104, + "type": "string memory", + "value": "one" + }, + "id": 125, + "name": "Identifier", + "src": "2521:3:2" + } + ], + "id": 126, + "name": "FunctionCall", + "src": "2515:10:2" + } + ], + "id": 127, + "name": "FunctionCall", + "src": "2505:21:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 100, + "type": "uint256", + "value": "chainId" + }, + "id": 128, + "name": "Identifier", + "src": "2544:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_PropsRewards_$373", + "typeString": "contract PropsRewards" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 129, + "name": "ElementaryTypeNameExpression", + "src": "2569:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1478, + "type": "contract PropsRewards", + "value": "this" + }, + "id": 130, + "name": "Identifier", + "src": "2577:4:2" + } + ], + "id": 131, + "name": "FunctionCall", + "src": "2569:13:2" + } + ], + "id": 132, + "name": "FunctionCall", + "src": "2280:316:2" } - } - ], - "id": 1366, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "11747:17:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + ], + "id": 133, + "name": "FunctionCall", + "src": "2257:349:2" } + ], + "id": 134, + "name": "Assignment", + "src": "2238:368:2" + } + ], + "id": 135, + "name": "ExpressionStatement", + "src": "2238:368:2" + } + ], + "id": 136, + "name": "Block", + "src": "2011:602:2" + } + ], + "id": 137, + "name": "FunctionDefinition", + "src": "1913:700:2" + }, + { + "attributes": { + "constant": false, + "documentation": "@dev Allows for approvals to be made via secp256k1 signatures\n@param _owner address owner\n@param _spender address spender\n@param _amount uint spender\n@param _deadline uint spender\n@param _v uint8 spender\n@param _r bytes32 spender\n@param _s bytes32 spender", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "permit", + "payable": false, + "scope": 373, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_owner", + "scope": 215, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" }, - "src": "11737:27:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11720:44:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "id": 138, + "name": "ElementaryTypeName", + "src": "2972:7:2" } - }, - "src": "11688:76:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + ], + "id": 139, + "name": "VariableDeclaration", + "src": "2972:14:2" }, - "id": 1370, - "nodeType": "ExpressionStatement", - "src": "11688:76:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1371, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "11774:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1373, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "rewardsStartTimestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": 1607, - "src": "11774:36:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + { + "attributes": { + "constant": false, + "name": "_spender", + "scope": 215, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1374, - "name": "rewardsStartTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 922, - "src": "11813:21:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1375, - "name": "_rewardsStartTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1294, - "src": "11837:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11813:46:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 140, + "name": "ElementaryTypeName", + "src": "2996:7:2" } - }, - "src": "11774:85:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + ], + "id": 141, + "name": "VariableDeclaration", + "src": "2996:16:2" }, - "id": 1378, - "nodeType": "ExpressionStatement", - "src": "11774:85:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1379, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "11869:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1381, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "minSecondsBetweenDays", - "nodeType": "MemberAccess", - "referencedDeclaration": 1605, - "src": "11869:36:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + { + "attributes": { + "constant": false, + "name": "_amount", + "scope": 215, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1382, - "name": "_minSecondsBetweenDays", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1292, - "src": "11908:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 142, + "name": "ElementaryTypeName", + "src": "3022:7:2" } - }, - "src": "11869:61:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1384, - "nodeType": "ExpressionStatement", - "src": "11869:61:2" - } - ] - }, - "documentation": "@dev internal intialize rewards upgrade1\n@param _controller address that will have controller functionality on rewards protocol\n@param _decimals uint256 number of decimals used in total supply\n@param _minSecondsBetweenDays uint256 seconds required to pass between consecutive rewards day\n@param _rewardsStartTimestamp uint256 day 0 timestamp", - "id": 1386, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_initializePostRewardsUpgrade1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1295, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1288, - "name": "_controller", - "nodeType": "VariableDeclaration", - "scope": 1386, - "src": "10585:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1287, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10585:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1290, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 1386, - "src": "10614:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1289, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10614:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1292, - "name": "_minSecondsBetweenDays", - "nodeType": "VariableDeclaration", - "scope": 1386, - "src": "10641:30:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1291, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10641:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1294, - "name": "_rewardsStartTimestamp", - "nodeType": "VariableDeclaration", - "scope": 1386, - "src": "10681:30:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + ], + "id": 143, + "name": "VariableDeclaration", + "src": "3022:15:2" }, - "typeName": { - "id": 1293, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10681:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + { + "attributes": { + "constant": false, + "name": "_deadline", + "scope": 215, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 144, + "name": "ElementaryTypeName", + "src": "3047:7:2" + } + ], + "id": 145, + "name": "VariableDeclaration", + "src": "3047:17:2" }, - "value": null, - "visibility": "internal" - } - ], - "src": "10575:142:2" - }, - "payable": false, - "returnParameters": { - "id": 1296, - "nodeType": "ParameterList", - "parameters": [], - "src": "10739:0:2" - }, - "scope": 1502, - "src": "10536:1402:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1450, - "nodeType": "Block", - "src": "12289:574:2", - "statements": [ - { - "assignments": [ - 1396 - ], - "declarations": [ - { + { + "attributes": { + "constant": false, + "name": "_v", + "scope": 215, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 146, + "name": "ElementaryTypeName", + "src": "3074:5:2" + } + ], + "id": 147, + "name": "VariableDeclaration", + "src": "3074:8:2" + }, + { + "attributes": { "constant": false, - "id": 1396, - "name": "validatorsCount", - "nodeType": "VariableDeclaration", - "scope": 1451, - "src": "12299:23:2", + "name": "_r", + "scope": 215, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1395, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12299:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + "type": "bytes32", "value": null, "visibility": "internal" - } - ], - "id": 1404, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 148, + "name": "ElementaryTypeName", + "src": "3092:7:2" + } + ], + "id": 149, + "name": "VariableDeclaration", + "src": "3092:10:2" + }, + { + "attributes": { + "constant": false, + "name": "_s", + "scope": 215, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 150, + "name": "ElementaryTypeName", + "src": "3112:7:2" + } + ], + "id": 151, + "name": "VariableDeclaration", + "src": "3112:10:2" + } + ], + "id": 152, + "name": "ParameterList", + "src": "2962:166:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 153, + "name": "ParameterList", + "src": "3138:0:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_206b253708b173d1c2e8e9a9892423d311a63be2c33c320a780f9508326eb500", + "typeString": "literal_string \"Permit Expired\"" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1451, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 154, + "name": "Identifier", + "src": "3148:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 145, + "type": "uint256", + "value": "_deadline" + }, + "id": 155, + "name": "Identifier", + "src": "3156:9:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "timestamp", + "referencedDeclaration": null, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1437, + "type": "block", + "value": "block" + }, + "id": 156, + "name": "Identifier", + "src": "3169:5:2" + } + ], + "id": 157, + "name": "MemberAccess", + "src": "3169:15:2" + } + ], + "id": 158, + "name": "BinaryOperation", + "src": "3156:28:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "5065726d69742045787069726564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Permit Expired\"", + "value": "Permit Expired" + }, + "id": 159, + "name": "Literal", + "src": "3186:16:2" + } + ], + "id": 160, + "name": "FunctionCall", + "src": "3148:55:2" + } + ], + "id": 161, + "name": "ExpressionStatement", + "src": "3148:55:2" + }, + { + "attributes": { + "assignments": [ + 163 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "digest", + "scope": 215, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 162, + "name": "ElementaryTypeName", + "src": "3213:7:2" + } + ], + "id": 163, + "name": "VariableDeclaration", + "src": "3213:14:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1441, + "type": "function () pure returns (bytes32)", + "value": "keccak256" + }, + "id": 164, + "name": "Identifier", + "src": "3242:9:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "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": 1434, + "type": "abi", + "value": "abi" + }, + "id": 165, + "name": "Identifier", + "src": "3269:3:2" + } + ], + "id": 166, + "name": "MemberAccess", + "src": "3269:16:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "1901", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"\u0019\u0001\"", + "value": "\u0019\u0001" + }, + "id": 167, + "name": "Literal", + "src": "3307:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 56, + "type": "bytes32", + "value": "DOMAIN_SEPARATOR" + }, + "id": 168, + "name": "Identifier", + "src": "3339:16:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1441, + "type": "function () pure returns (bytes32)", + "value": "keccak256" + }, + "id": 169, + "name": "Identifier", + "src": "3377:9:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encode", + "referencedDeclaration": null, + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1434, + "type": "abi", + "value": "abi" + }, + "id": 170, + "name": "Identifier", + "src": "3412:3:2" + } + ], + "id": 171, + "name": "MemberAccess", + "src": "3412:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 59, + "type": "bytes32", + "value": "PERMIT_TYPEHASH" + }, + "id": 172, + "name": "Identifier", + "src": "3452:15:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 139, + "type": "address", + "value": "_owner" + }, + "id": 173, + "name": "Identifier", + "src": "3497:6:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 141, + "type": "address", + "value": "_spender" + }, + "id": 174, + "name": "Identifier", + "src": "3533:8:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 143, + "type": "uint256", + "value": "_amount" + }, + "id": 175, + "name": "Identifier", + "src": "3571:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 63, + "type": "mapping(address => uint256)", + "value": "nonces" + }, + "id": 176, + "name": "Identifier", + "src": "3608:6:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 139, + "type": "address", + "value": "_owner" + }, + "id": 177, + "name": "Identifier", + "src": "3615:6:2" + } + ], + "id": 178, + "name": "IndexAccess", + "src": "3608:14:2" + } + ], + "id": 179, + "name": "UnaryOperation", + "src": "3608:16:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 145, + "type": "uint256", + "value": "_deadline" + }, + "id": 180, + "name": "Identifier", + "src": "3654:9:2" + } + ], + "id": 181, + "name": "FunctionCall", + "src": "3412:277:2" + } + ], + "id": 182, + "name": "FunctionCall", + "src": "3377:334:2" + } + ], + "id": 183, + "name": "FunctionCall", + "src": "3269:460:2" + } + ], + "id": 184, + "name": "FunctionCall", + "src": "3242:501:2" + } + ], + "id": 185, + "name": "VariableDeclarationStatement", + "src": "3213:530:2" + }, + { + "attributes": { + "assignments": [ + 187 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "recoveredAddress", + "scope": 215, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 186, + "name": "ElementaryTypeName", + "src": "3753:7:2" + } + ], + "id": 187, + "name": "VariableDeclaration", + "src": "3753:24:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1439, + "type": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)", + "value": "ecrecover" + }, + "id": 188, + "name": "Identifier", + "src": "3780:9:2" + }, + { + "attributes": { "argumentTypes": null, - "id": 1397, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "12325:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 163, + "type": "bytes32", + "value": "digest" }, - "id": 1398, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "12325:27:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } + "id": 189, + "name": "Identifier", + "src": "3790:6:2" }, - "id": 1399, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "12325:39:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 1401, - "indexExpression": { - "argumentTypes": null, - "id": 1400, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1390, - "src": "12365:12:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 147, + "type": "uint8", + "value": "_v" + }, + "id": 190, + "name": "Identifier", + "src": "3798:2:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 149, + "type": "bytes32", + "value": "_r" + }, + "id": 191, + "name": "Identifier", + "src": "3802:2:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 151, + "type": "bytes32", + "value": "_s" + }, + "id": 192, + "name": "Identifier", + "src": "3806:2:2" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12325:53:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 1402, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validatorsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1572, - "src": "12325:68:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" + ], + "id": 193, + "name": "FunctionCall", + "src": "3780:29:2" } - }, - "id": 1403, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12325:75:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + ], + "id": 194, + "name": "VariableDeclarationStatement", + "src": "3753:56:2" }, - "nodeType": "VariableDeclarationStatement", - "src": "12299:101:2" - }, - { - "body": { - "id": 1431, - "nodeType": "Block", - "src": "12456:153:2", - "statements": [ + { + "children": [ { - "expression": { + "attributes": { "argumentTypes": null, - "arguments": [ - { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_98abf41928333e3fb96f450e411f323711f90894815c0b92e5e7c34ae876605a", + "typeString": "literal_string \"Invalid Signature\"" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1451, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 195, + "name": "Identifier", + "src": "3819:7:2" + }, + { + "attributes": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "&&", + "type": "bool" + }, + "children": [ + { + "attributes": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1416, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "12476:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 1417, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "validators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1590, - "src": "12476:25:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } + "operator": "!=", + "type": "bool" }, - "id": 1426, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { + "children": [ + { + "attributes": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1418, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "12502:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 187, + "type": "address", + "value": "recoveredAddress" + }, + "id": 196, + "name": "Identifier", + "src": "3840:16:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" } - }, - "id": 1419, + ], "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "12502:27:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } + "type": "type(address)", + "value": "address" }, - "id": 1420, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "12502:39:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 1422, - "indexExpression": { - "argumentTypes": null, - "id": 1421, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1390, - "src": "12542:12:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } + "id": 197, + "name": "ElementaryTypeNameExpression", + "src": "3860:7:2" }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12502:53:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 198, + "name": "Literal", + "src": "3868:1:2" } - }, - "id": 1423, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validatorsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1572, - "src": "12502:68:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1425, - "indexExpression": { - "argumentTypes": null, - "id": 1424, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "12571:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + ], + "id": 199, + "name": "FunctionCall", + "src": "3860:10:2" + } + ], + "id": 200, + "name": "BinaryOperation", + "src": "3840:30:2" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" }, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12502:71:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "operator": "==", + "type": "bool" }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12476:98:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 1427, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "rewardsAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1527, - "src": "12476:113:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1428, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1392, - "src": "12590:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 187, + "type": "address", + "value": "recoveredAddress" + }, + "id": 201, + "name": "Identifier", + "src": "3874:16:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 139, + "type": "address", + "value": "_owner" + }, + "id": 202, + "name": "Identifier", + "src": "3894:6:2" + } + ], + "id": 203, + "name": "BinaryOperation", + "src": "3874:26:2" } ], - "id": 1415, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3870, - "src": "12470:5:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } + "id": 204, + "name": "BinaryOperation", + "src": "3840:60:2" }, - "id": 1429, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "496e76616c6964205369676e6174757265", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Invalid Signature\"", + "value": "Invalid Signature" + }, + "id": 205, + "name": "Literal", + "src": "3914:19:2" + } + ], + "id": 206, + "name": "FunctionCall", + "src": "3819:124:2" + } + ], + "id": 207, + "name": "ExpressionStatement", + "src": "3819:124:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "isStructConstructorCall": false, "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12470:128:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1145, + "type": "function (address,address,uint256)", + "value": "_approve" + }, + "id": 208, + "name": "Identifier", + "src": "3953:8:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 139, + "type": "address", + "value": "_owner" + }, + "id": 209, + "name": "Identifier", + "src": "3962:6:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 141, + "type": "address", + "value": "_spender" + }, + "id": 210, + "name": "Identifier", + "src": "3970:8:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 143, + "type": "uint256", + "value": "_amount" + }, + "id": 211, + "name": "Identifier", + "src": "3980:7:2" } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "12470:128:2" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1411, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1409, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "12430:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + ], + "id": 212, + "name": "FunctionCall", + "src": "3953:35:2" } + ], + "id": 213, + "name": "ExpressionStatement", + "src": "3953:35:2" + } + ], + "id": 214, + "name": "Block", + "src": "3138:857:2" + } + ], + "id": 215, + "name": "FunctionDefinition", + "src": "2947:1048:2" + }, + { + "attributes": { + "constant": false, + "documentation": "@dev Reclaim all ERC20 compatible tokens\n@param _token ERC20 The address of the token contract", + "implemented": true, + "isConstructor": false, + "name": "reclaimToken", + "payable": false, + "scope": 373, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_token", + "scope": 257, + "stateVariable": false, + "storageLocation": "default", + "type": "contract ERC20", + "value": null, + "visibility": "internal" }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 1410, - "name": "validatorsCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1396, - "src": "12434:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "children": [ + { + "attributes": { + "contractScope": null, + "name": "ERC20", + "referencedDeclaration": 1178, + "type": "contract ERC20" + }, + "id": 216, + "name": "UserDefinedTypeName", + "src": "4157:5:2" } - }, - "src": "12430:19:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1432, - "initializationExpression": { - "assignments": [ - 1406 ], - "declarations": [ + "id": 217, + "name": "VariableDeclaration", + "src": "4157:12:2" + }, + { + "attributes": { + "constant": false, + "name": "_to", + "scope": 257, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ { - "constant": false, - "id": 1406, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1451, - "src": "12415:9:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1405, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12415:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "attributes": { + "name": "address", + "type": "address" }, - "value": null, - "visibility": "internal" + "id": 218, + "name": "ElementaryTypeName", + "src": "4179:7:2" } ], - "id": 1408, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12427:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "12415:13:2" + "id": 219, + "name": "VariableDeclaration", + "src": "4179:11:2" }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "12451:3:2", - "subExpression": { - "argumentTypes": null, - "id": 1412, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1406, - "src": "12451:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + { + "attributes": { + "constant": false, + "name": "_amount", + "scope": 257, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" }, - "id": 1414, - "nodeType": "ExpressionStatement", - "src": "12451:3:2" - }, - "nodeType": "ForStatement", - "src": "12410:199:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1436, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "12653:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, + "children": [ { - "argumentTypes": null, - "id": 1437, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1390, - "src": "12669:12:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 220, + "name": "ElementaryTypeName", + "src": "4200:7:2" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } + "id": 221, + "name": "VariableDeclaration", + "src": "4200:15:2" + } + ], + "id": 222, + "name": "ParameterList", + "src": "4147:74:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 225, + "name": "ParameterList", + "src": "4246:0:2" + }, + { + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null ], - "expression": { - "argumentTypes": null, - "id": 1433, - "name": "PropsRewardsLib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3297, - "src": "12618:15:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewardsLib_$3297_$", - "typeString": "type(library PropsRewardsLib)" - } - }, - "id": 1435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_resetDailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 3296, - "src": "12618:34:2", - "typeDescriptions": { - "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_bytes32_$returns$__$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,bytes32)" - } + "referencedDeclaration": 77, + "type": "modifier ()", + "value": "onlyController" }, - "id": 1438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12618:64:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1439, - "nodeType": "ExpressionStatement", - "src": "12618:64:2" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1441, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1388, - "src": "12739:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1442, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1390, - "src": "12764:12:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, + "id": 223, + "name": "Identifier", + "src": "4231:14:2" + } + ], + "id": 224, + "name": "ModifierInvocation", + "src": "4231:14:2" + }, + { + "children": [ + { + "children": [ { - "argumentTypes": null, - "id": 1443, - "name": "validatorsCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1396, - "src": "12790:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b5a5fcf93367cc12680d338003ac2e4545eb84b34cdaec1fea6f3707feabdf0e", + "typeString": "literal_string \"Must transfer to recipient\"" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1451, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 226, + "name": "Identifier", + "src": "4256:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 219, + "type": "address", + "value": "_to" + }, + "id": 227, + "name": "Identifier", + "src": "4264:3:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 228, + "name": "ElementaryTypeNameExpression", + "src": "4271:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 229, + "name": "Literal", + "src": "4279:1:2" + } + ], + "id": 230, + "name": "FunctionCall", + "src": "4271:10:2" + } + ], + "id": 231, + "name": "BinaryOperation", + "src": "4264:17:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "4d757374207472616e7366657220746f20726563697069656e74", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Must transfer to recipient\"", + "value": "Must transfer to recipient" + }, + "id": 232, + "name": "Literal", + "src": "4283:28:2" + } + ], + "id": 233, + "name": "FunctionCall", + "src": "4256:56:2" + } + ], + "id": 234, + "name": "ExpressionStatement", + "src": "4256:56:2" + }, + { + "attributes": { + "assignments": [ + 236 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "balance", + "scope": 257, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 235, + "name": "ElementaryTypeName", + "src": "4322:7:2" + } + ], + "id": 236, + "name": "VariableDeclaration", + "src": "4322:15:2" }, { - "argumentTypes": null, - "components": [ + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_PropsRewards_$373", + "typeString": "contract PropsRewards" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balanceOf", + "referencedDeclaration": 820, + "type": "function (address) view external returns (uint256)" }, - "id": 1446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1444, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1392, - "src": "12820:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 217, + "type": "contract ERC20", + "value": "_token" + }, + "id": 237, + "name": "Identifier", + "src": "4340:6:2" } + ], + "id": 238, + "name": "MemberAccess", + "src": "4340:16:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1478, + "type": "contract PropsRewards", + "value": "this" }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { + "id": 239, + "name": "Identifier", + "src": "4357:4:2" + } + ], + "id": 240, + "name": "FunctionCall", + "src": "4340:22:2" + } + ], + "id": 241, + "name": "VariableDeclarationStatement", + "src": "4322:40:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8daed5df447a99bd86d9920e68a48cc7f3f950cc6dace39b40b747efd39d8167", + "typeString": "literal_string \"Cannot transfer more than balance\"" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1451, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 242, + "name": "Identifier", + "src": "4372:7:2" + }, + { + "attributes": { "argumentTypes": null, - "id": 1445, - "name": "validatorsCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1396, - "src": "12830:15:2", - "typeDescriptions": { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 221, + "type": "uint256", + "value": "_amount" + }, + "id": 243, + "name": "Identifier", + "src": "4380:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 236, + "type": "uint256", + "value": "balance" + }, + "id": 244, + "name": "Identifier", + "src": "4391:7:2" } + ], + "id": 245, + "name": "BinaryOperation", + "src": "4380:18:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "43616e6e6f74207472616e73666572206d6f7265207468616e2062616c616e6365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Cannot transfer more than balance\"", + "value": "Cannot transfer more than balance" }, - "src": "12820:25:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "id": 246, + "name": "Literal", + "src": "4400:35:2" } ], - "id": 1447, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "12819:27:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "id": 247, + "name": "FunctionCall", + "src": "4372:64:2" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1440, - "name": "DailyRewardsValidatorsMinted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 864, - "src": "12697:28:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,bytes32,uint256,uint256)" - } - }, - "id": 1448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12697:159:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1449, - "nodeType": "EmitStatement", - "src": "12692:164:2" - } - ] - }, - "documentation": "@dev Mint rewards for validators\n@param _rewardsDay uint256 the rewards day\n@param _rewardsHash bytes32 hash of the rewards data\n@param _amount uint256 amount each validator should get", - "id": 1451, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_mintDailyRewardsForValidators", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1388, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 1451, - "src": "12208:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1387, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12208:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1390, - "name": "_rewardsHash", - "nodeType": "VariableDeclaration", - "scope": 1451, - "src": "12229:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1389, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "12229:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1392, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1451, - "src": "12251:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1391, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12251:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "id": 248, + "name": "ExpressionStatement", + "src": "4372:64:2" }, - "value": null, - "visibility": "internal" - } - ], - "src": "12207:60:2" - }, - "payable": false, - "returnParameters": { - "id": 1394, - "nodeType": "ParameterList", - "parameters": [], - "src": "12289:0:2" - }, - "scope": 1502, - "src": "12168:695:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "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": "safeTransfer", + "referencedDeclaration": 1336, + "type": "function (contract IERC20,address,uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 217, + "type": "contract ERC20", + "value": "_token" + }, + "id": 249, + "name": "Identifier", + "src": "4446:6:2" + } + ], + "id": 251, + "name": "MemberAccess", + "src": "4446:19:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 219, + "type": "address", + "value": "_to" + }, + "id": 252, + "name": "Identifier", + "src": "4466:3:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 221, + "type": "uint256", + "value": "_amount" + }, + "id": 253, + "name": "Identifier", + "src": "4471:7:2" + } + ], + "id": 254, + "name": "FunctionCall", + "src": "4446:33:2" + } + ], + "id": 255, + "name": "ExpressionStatement", + "src": "4446:33:2" + } + ], + "id": 256, + "name": "Block", + "src": "4246:240:2" + } + ], + "id": 257, + "name": "FunctionDefinition", + "src": "4126:360:2" }, { - "body": { - "id": 1500, - "nodeType": "Block", - "src": "13457:272:2", - "statements": [ - { - "body": { - "id": 1490, - "nodeType": "Block", - "src": "13518:105:2", - "statements": [ + "attributes": { + "constant": false, + "documentation": "@dev Allows the controller/owner to update to a new controller\n@param _controller address address of the new controller", + "implemented": true, + "isConstructor": false, + "name": "updateController", + "payable": false, + "scope": 373, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_controller", + "scope": 282, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ { - "expression": { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 258, + "name": "ElementaryTypeName", + "src": "4678:7:2" + } + ], + "id": 259, + "name": "VariableDeclaration", + "src": "4678:19:2" + } + ], + "id": 260, + "name": "ParameterList", + "src": "4668:35:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 263, + "name": "ParameterList", + "src": "4746:0:2" + }, + { + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 77, + "type": "modifier ()", + "value": "onlyController" + }, + "id": 261, + "name": "Identifier", + "src": "4727:14:2" + } + ], + "id": 262, + "name": "ModifierInvocation", + "src": "4727:14:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { "argumentTypes": null, - "arguments": [ - { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a495fa0d3c9f7c33b0da68880d49b175abe1e0d24ae9a6277a9d61a20134261", + "typeString": "literal_string \"Controller cannot be the zero address\"" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1451, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 264, + "name": "Identifier", + "src": "4756:7:2" + }, + { + "attributes": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1478, - "name": "rewardsLibData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 918, - "src": "13538:14:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage", - "typeString": "struct PropsRewardsLib.Data storage ref" - } - }, - "id": 1479, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1583, - "src": "13538:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 259, + "type": "address", + "value": "_controller" }, - "id": 1483, - "indexExpression": { + "id": 265, + "name": "Identifier", + "src": "4764:11:2" + }, + { + "attributes": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1480, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1458, - "src": "13566:13:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1482, - "indexExpression": { - "argumentTypes": null, - "id": 1481, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1467, - "src": "13580:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13566:16:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "names": [ + null + ], + "type": "address", + "type_conversion": true }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13538:45:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 1484, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)", + "value": "address" + }, + "id": 266, + "name": "ElementaryTypeNameExpression", + "src": "4779:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 267, + "name": "Literal", + "src": "4787:1:2" + } + ], + "id": 268, + "name": "FunctionCall", + "src": "4779:10:2" + } + ], + "id": 269, + "name": "BinaryOperation", + "src": "4764:25:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "436f6e74726f6c6c65722063616e6e6f7420626520746865207a65726f2061646472657373", "isConstant": false, - "isLValue": true, - "isPure": false, + "isLValue": false, + "isPure": true, "lValueRequested": false, - "memberName": "rewardsAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1527, - "src": "13538:60:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "subdenomination": null, + "token": "string", + "type": "literal_string \"Controller cannot be the zero address\"", + "value": "Controller cannot be the zero address" }, - { + "id": 270, + "name": "Literal", + "src": "4791:39:2" + } + ], + "id": 271, + "name": "FunctionCall", + "src": "4756:75:2" + } + ], + "id": 272, + "name": "ExpressionStatement", + "src": "4756:75:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1485, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1461, - "src": "13600:8:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 1487, - "indexExpression": { - "argumentTypes": null, - "id": 1486, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1467, - "src": "13609:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 50, + "type": "address", + "value": "controller" + }, + "id": 273, + "name": "Identifier", + "src": "4841:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 259, + "type": "address", + "value": "_controller" + }, + "id": 274, + "name": "Identifier", + "src": "4854:11:2" + } + ], + "id": 275, + "name": "Assignment", + "src": "4841:24:2" + } + ], + "id": 276, + "name": "ExpressionStatement", + "src": "4841:24:2" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" } - }, + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 42, + "type": "function (address)", + "value": "ControllerUpdated" + }, + "id": 277, + "name": "Identifier", + "src": "4880:17:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 259, + "type": "address", + "value": "_controller" + }, + "id": 278, + "name": "Identifier", + "src": "4920:11:2" + } + ], + "id": 279, + "name": "FunctionCall", + "src": "4880:61:2" + } + ], + "id": 280, + "name": "EmitStatement", + "src": "4875:66:2" + } + ], + "id": 281, + "name": "Block", + "src": "4746:202:2" + } + ], + "id": 282, + "name": "FunctionDefinition", + "src": "4643:305:2" + }, + { + "attributes": { + "constant": false, + "documentation": null, + "implemented": true, + "isConstructor": false, + "name": "addMinter", + "payable": false, + "scope": 373, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_minter", + "scope": 296, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 283, + "name": "ElementaryTypeName", + "src": "4973:7:2" + } + ], + "id": 284, + "name": "VariableDeclaration", + "src": "4973:15:2" + } + ], + "id": 285, + "name": "ParameterList", + "src": "4972:17:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 288, + "name": "ParameterList", + "src": "5012:0:2" + }, + { + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 77, + "type": "modifier ()", + "value": "onlyController" + }, + "id": 286, + "name": "Identifier", + "src": "4997:14:2" + } + ], + "id": 287, + "name": "ModifierInvocation", + "src": "4997:14:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, "isConstant": false, "isLValue": true, "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13600:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ + "lValueRequested": true, + "type": "bool" + }, + "children": [ { - "typeIdentifier": "t_address", - "typeString": "address" + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 54, + "type": "mapping(address => bool)", + "value": "minters" + }, + "id": 289, + "name": "Identifier", + "src": "5022:7:2" }, { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 284, + "type": "address", + "value": "_minter" + }, + "id": 290, + "name": "Identifier", + "src": "5030:7:2" } ], - "id": 1477, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3870, - "src": "13532:5:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } + "id": 291, + "name": "IndexAccess", + "src": "5022:16:2" }, - "id": 1488, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 292, + "name": "Literal", + "src": "5041:4:2" + } + ], + "id": 293, + "name": "Assignment", + "src": "5022:23:2" + } + ], + "id": 294, + "name": "ExpressionStatement", + "src": "5022:23:2" + } + ], + "id": 295, + "name": "Block", + "src": "5012:40:2" + } + ], + "id": 296, + "name": "FunctionDefinition", + "src": "4954:98:2" + }, + { + "attributes": { + "constant": false, + "documentation": null, + "implemented": true, + "isConstructor": false, + "name": "removeMinter", + "payable": false, + "scope": 373, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_minter", + "scope": 310, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 297, + "name": "ElementaryTypeName", + "src": "5080:7:2" + } + ], + "id": 298, + "name": "VariableDeclaration", + "src": "5080:15:2" + } + ], + "id": 299, + "name": "ParameterList", + "src": "5079:17:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 302, + "name": "ParameterList", + "src": "5119:0:2" + }, + { + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 77, + "type": "modifier ()", + "value": "onlyController" + }, + "id": 300, + "name": "Identifier", + "src": "5104:14:2" + } + ], + "id": 301, + "name": "ModifierInvocation", + "src": "5104:14:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13532:80:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + "operator": "=", + "type": "bool" }, - "id": 1489, - "nodeType": "ExpressionStatement", - "src": "13532:80:2" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1470, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1467, - "src": "13487:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 54, + "type": "mapping(address => bool)", + "value": "minters" + }, + "id": 303, + "name": "Identifier", + "src": "5129:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 298, + "type": "address", + "value": "_minter" + }, + "id": 304, + "name": "Identifier", + "src": "5137:7:2" + } + ], + "id": 305, + "name": "IndexAccess", + "src": "5129:16:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 306, + "name": "Literal", + "src": "5148:5:2" + } + ], + "id": 307, + "name": "Assignment", + "src": "5129:24:2" } + ], + "id": 308, + "name": "ExpressionStatement", + "src": "5129:24:2" + } + ], + "id": 309, + "name": "Block", + "src": "5119:41:2" + } + ], + "id": 310, + "name": "FunctionDefinition", + "src": "5058:102:2" + }, + { + "attributes": { + "constant": false, + "documentation": "@dev Allows minters to mint tokens to a given address\n@param _account address of the receiving account\n@param _amount uint256 how much to mint", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "mint", + "payable": false, + "scope": 373, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_account", + "scope": 342, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1471, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1458, - "src": "13491:13:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1472, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13491:20:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 311, + "name": "ElementaryTypeName", + "src": "5360:7:2" } - }, - "src": "13487:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1491, - "initializationExpression": { - "assignments": [ - 1467 ], - "declarations": [ + "id": 312, + "name": "VariableDeclaration", + "src": "5360:16:2" + }, + { + "attributes": { + "constant": false, + "name": "_amount", + "scope": 342, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ { - "constant": false, - "id": 1467, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1501, - "src": "13472:9:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1466, + "attributes": { "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13472:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "type": "uint256" }, - "value": null, - "visibility": "internal" + "id": 313, + "name": "ElementaryTypeName", + "src": "5378:7:2" } ], - "id": 1469, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13484:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "13472:13:2" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "13513:3:2", - "subExpression": { - "argumentTypes": null, - "id": 1474, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1467, - "src": "13513:1:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "id": 314, + "name": "VariableDeclaration", + "src": "5378:15:2" + } + ], + "id": 315, + "name": "ParameterList", + "src": "5359:35:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 316, + "name": "ParameterList", + "src": "5402:0:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_eb1a5f0f9d0fdf3f262c34f8680edb58553e4d4b8bf43b2a6234c19fb11f4284", + "typeString": "literal_string \"Mint fn can be called only by minter\"" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1451, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 317, + "name": "Identifier", + "src": "5412:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 54, + "type": "mapping(address => bool)", + "value": "minters" + }, + "id": 318, + "name": "Identifier", + "src": "5420:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "referencedDeclaration": null, + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1447, + "type": "msg", + "value": "msg" + }, + "id": 319, + "name": "Identifier", + "src": "5428:3:2" + } + ], + "id": 320, + "name": "MemberAccess", + "src": "5428:10:2" + } + ], + "id": 321, + "name": "IndexAccess", + "src": "5420:19:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "4d696e7420666e2063616e2062652063616c6c6564206f6e6c79206279206d696e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Mint fn can be called only by minter\"", + "value": "Mint fn can be called only by minter" + }, + "id": 322, + "name": "Literal", + "src": "5441:38:2" + } + ], + "id": 323, + "name": "FunctionCall", + "src": "5412:68:2" } - }, - "id": 1476, - "nodeType": "ExpressionStatement", - "src": "13513:3:2" + ], + "id": 324, + "name": "ExpressionStatement", + "src": "5412:68:2" }, - "nodeType": "ForStatement", - "src": "13467:156:2" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1493, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1453, - "src": "13668:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + { + "children": [ { - "argumentTypes": null, - "id": 1494, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1455, - "src": "13681:12:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "expression": { + "attributes": { "argumentTypes": null, - "id": 1495, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1458, - "src": "13695:13:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false }, - "id": 1496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13695:20:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1497, - "name": "_sum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1463, - "src": "13717:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_576687e9f9a6c8940514acd6edd253f5634a720591b9770678ade141862adb82", + "typeString": "literal_string \"Max total supply exceeded\"" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1451, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 325, + "name": "Identifier", + "src": "5490:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 755, + "type": "function (uint256,uint256) pure returns (uint256)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 808, + "type": "function () view returns (uint256)", + "value": "totalSupply" + }, + "id": 326, + "name": "Identifier", + "src": "5511:11:2" + } + ], + "id": 327, + "name": "FunctionCall", + "src": "5511:13:2" + } + ], + "id": 328, + "name": "MemberAccess", + "src": "5511:17:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 314, + "type": "uint256", + "value": "_amount" + }, + "id": 329, + "name": "Identifier", + "src": "5529:7:2" + } + ], + "id": 330, + "name": "FunctionCall", + "src": "5511:26:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 46, + "type": "uint256", + "value": "maxTotalSupply" + }, + "id": 331, + "name": "Identifier", + "src": "5541:14:2" + } + ], + "id": 332, + "name": "BinaryOperation", + "src": "5511:44:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "4d617820746f74616c20737570706c79206578636565646564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Max total supply exceeded\"", + "value": "Max total supply exceeded" + }, + "id": 333, + "name": "Literal", + "src": "5569:27:2" + } + ], + "id": 334, + "name": "FunctionCall", + "src": "5490:116:2" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1492, - "name": "DailyRewardsApplicationsMinted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 854, - "src": "13637:30:2", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,bytes32,uint256,uint256)" - } - }, - "id": 1498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13637:85:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1499, - "nodeType": "EmitStatement", - "src": "13632:90:2" - } - ] - }, - "documentation": "@dev Mint rewards for apps\n@param _rewardsDay uint256 the rewards day\n@param _rewardsHash bytes32 hash of the rewards data\n@param _applications address[] array of application addresses getting the daily reward\n@param _amounts uint256[] array of amounts each app should get\n@param _sum uint256 the sum of all application rewards given", - "id": 1501, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_mintDailyRewardsForApps", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1464, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1453, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 1501, - "src": "13297:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1452, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13297:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1455, - "name": "_rewardsHash", - "nodeType": "VariableDeclaration", - "scope": 1501, - "src": "13326:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1454, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "13326:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1458, - "name": "_applications", - "nodeType": "VariableDeclaration", - "scope": 1501, - "src": "13356:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1456, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13356:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1457, - "length": null, - "nodeType": "ArrayTypeName", - "src": "13356:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1461, - "name": "_amounts", - "nodeType": "VariableDeclaration", - "scope": 1501, - "src": "13389:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" + "id": 335, + "name": "ExpressionStatement", + "src": "5490:116:2" }, - "typeName": { - "baseType": { - "id": 1459, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13389:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1057, + "type": "function (address,uint256)", + "value": "_mint" + }, + "id": 336, + "name": "Identifier", + "src": "5616:5:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 312, + "type": "address", + "value": "_account" + }, + "id": 337, + "name": "Identifier", + "src": "5622:8:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 314, + "type": "uint256", + "value": "_amount" + }, + "id": 338, + "name": "Identifier", + "src": "5632:7:2" + } + ], + "id": 339, + "name": "FunctionCall", + "src": "5616:24:2" } + ], + "id": 340, + "name": "ExpressionStatement", + "src": "5616:24:2" + } + ], + "id": 341, + "name": "Block", + "src": "5402:245:2" + } + ], + "id": 342, + "name": "FunctionDefinition", + "src": "5346:301:2" + }, + { + "attributes": { + "constant": false, + "documentation": "@dev internal intialize\n@param _controller address that will have controller functionality on rewards protocol\n@param _decimals uint256 number of decimals used in total supply", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "_initialize", + "payable": false, + "scope": 373, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "_controller", + "scope": 372, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" }, - "id": 1460, - "length": null, - "nodeType": "ArrayTypeName", - "src": "13389:9:2", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 343, + "name": "ElementaryTypeName", + "src": "5891:7:2" + } + ], + "id": 344, + "name": "VariableDeclaration", + "src": "5891:19:2" }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1463, - "name": "_sum", - "nodeType": "VariableDeclaration", - "scope": 1501, - "src": "13417:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "attributes": { + "constant": false, + "name": "_decimals", + "scope": 372, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 345, + "name": "ElementaryTypeName", + "src": "5912:7:2" + } + ], + "id": 346, + "name": "VariableDeclaration", + "src": "5912:17:2" + } + ], + "id": 347, + "name": "ParameterList", + "src": "5890:40:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 348, + "name": "ParameterList", + "src": "5940:0:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8f3fa00998356bee6475356a7d882a097c898c4220629a10c10cc1088d89dcb0", + "typeString": "literal_string \"Initialize rewards upgrade1 can happen only once\"" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1451, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 349, + "name": "Identifier", + "src": "5950:7:2" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 46, + "type": "uint256", + "value": "maxTotalSupply" + }, + "id": 350, + "name": "Identifier", + "src": "5971:14:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 351, + "name": "Literal", + "src": "5989:1:2" + } + ], + "id": 352, + "name": "BinaryOperation", + "src": "5971:19:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "496e697469616c697a6520726577617264732075706772616465312063616e2068617070656e206f6e6c79206f6e6365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Initialize rewards upgrade1 can happen only once\"", + "value": "Initialize rewards upgrade1 can happen only once" + }, + "id": 353, + "name": "Literal", + "src": "6004:50:2" + } + ], + "id": 354, + "name": "FunctionCall", + "src": "5950:114:2" + } + ], + "id": 355, + "name": "ExpressionStatement", + "src": "5950:114:2" }, - "typeName": { - "id": 1462, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13417:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 50, + "type": "address", + "value": "controller" + }, + "id": 356, + "name": "Identifier", + "src": "6074:10:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 344, + "type": "address", + "value": "_controller" + }, + "id": 357, + "name": "Identifier", + "src": "6087:11:2" + } + ], + "id": 358, + "name": "Assignment", + "src": "6074:24:2" + } + ], + "id": 359, + "name": "ExpressionStatement", + "src": "6074:24:2" }, - "value": null, - "visibility": "internal" - } - ], - "src": "13287:148:2" - }, - "payable": false, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "13457:0:2" - }, - "scope": 1502, - "src": "13254:475:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 46, + "type": "uint256", + "value": "maxTotalSupply" + }, + "id": 360, + "name": "Identifier", + "src": "6182:14:2" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "operator": "*", + "type": "int_const 1000000000" + }, + "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": 361, + "name": "Literal", + "src": "6199:1:2" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "316539", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1000000000", + "value": "1e9" + }, + "id": 362, + "name": "Literal", + "src": "6203:3:2" + } + ], + "id": 363, + "name": "BinaryOperation", + "src": "6199:7:2" + }, + { + "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": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 364, + "name": "Literal", + "src": "6210:2:2" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 346, + "type": "uint256", + "value": "_decimals" + }, + "id": 365, + "name": "Identifier", + "src": "6214:9:2" + } + ], + "id": 366, + "name": "BinaryOperation", + "src": "6210:13:2" + } + ], + "id": 367, + "name": "TupleExpression", + "src": "6209:15:2" + } + ], + "id": 368, + "name": "BinaryOperation", + "src": "6199:25:2" + } + ], + "id": 369, + "name": "Assignment", + "src": "6182:42:2" + } + ], + "id": 370, + "name": "ExpressionStatement", + "src": "6182:42:2" + } + ], + "id": 371, + "name": "Block", + "src": "5940:291:2" + } + ], + "id": 372, + "name": "FunctionDefinition", + "src": "5870:361:2" } ], - "scope": 1503, - "src": "365:13366:2" + "id": 373, + "name": "ContractDefinition", + "src": "428:5805:2" } ], - "src": "0:13731:2" + "id": 374, + "name": "SourceUnit", + "src": "0:6233:2" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.4.25+commit.59dbf8f1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.1", - "updatedAt": "2019-08-15T18:51:44.501Z" + "schemaVersion": "3.3.4", + "updatedAt": "2021-04-02T09:51:14.561Z", + "devdoc": { + "methods": { + "allowance(address,address)": { + "details": "Function to check the amount of tokens that an owner allowed to a spender.", + "params": { + "owner": "address The address which owns the funds.", + "spender": "address The address which will spend the funds." + }, + "return": "A uint256 specifying the amount of tokens still available for the spender." + }, + "approve(address,uint256)": { + "details": "Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729", + "params": { + "spender": "The address which will spend the funds.", + "value": "The amount of tokens to be spent." + } + }, + "balanceOf(address)": { + "details": "Gets the balance of the specified address.", + "params": { + "owner": "The address to query the the balance of." + }, + "return": "An uint256 representing the amount owned by the passed address." + }, + "decreaseAllowance(address,uint256)": { + "details": "Decrease the amount of tokens that an owner allowed to a spender. approve should be called when allowed_[_spender] == 0. To decrement allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol", + "params": { + "spender": "The address which will spend the funds.", + "subtractedValue": "The amount of tokens to decrease the allowance by." + } + }, + "increaseAllowance(address,uint256)": { + "details": "Increase the amount of tokens that an owner allowed to a spender. approve should be called when allowed_[_spender] == 0. To increment allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol", + "params": { + "addedValue": "The amount of tokens to increase the allowance by.", + "spender": "The address which will spend the funds." + } + }, + "initialize(address)": { + "details": "The initializer function for upgrade as initialize was already called, get the decimals used in the token to initialize the params", + "params": { + "_controller": "address that will have controller functionality on token" + } + }, + "initializePermitUpgrade(string)": { + "details": "Initialize post separation of rewards contract upgrade", + "params": { + "_tokenName": "string token name" + } + }, + "mint(address,uint256)": { + "details": "Allows minters to mint tokens to a given address", + "params": { + "_account": "address of the receiving account", + "_amount": "uint256 how much to mint" + } + }, + "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": { + "details": "Allows for approvals to be made via secp256k1 signatures", + "params": { + "_amount": "uint spender", + "_deadline": "uint spender", + "_owner": "address owner", + "_r": "bytes32 spender", + "_s": "bytes32 spender", + "_spender": "address spender", + "_v": "uint8 spender" + } + }, + "reclaimToken(address,address,uint256)": { + "details": "Reclaim all ERC20 compatible tokens", + "params": { + "_token": "ERC20 The address of the token contract" + } + }, + "totalSupply()": { + "details": "Total number of tokens in existence" + }, + "transfer(address,uint256)": { + "details": "Transfer token for a specified address", + "params": { + "to": "The address to transfer to.", + "value": "The amount to be transferred." + } + }, + "transferFrom(address,address,uint256)": { + "details": "Transfer tokens from one address to another", + "params": { + "from": "address The address which you want to send tokens from", + "to": "address The address which you want to transfer to", + "value": "uint256 the amount of tokens to be transferred" + } + }, + "updateController(address)": { + "details": "Allows the controller/owner to update to a new controller", + "params": { + "_controller": "address address of the new controller" + } + } + }, + "title": "Props Rewards" + }, + "userdoc": { + "methods": {} + } } \ No newline at end of file diff --git a/build/contracts/PropsRewardsLib.json b/build/contracts/PropsRewardsLib.json index 18e2ca23..9b35c85a 100644 --- a/build/contracts/PropsRewardsLib.json +++ b/build/contracts/PropsRewardsLib.json @@ -1,536 +1,25 @@ { "contractName": "PropsRewardsLib", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "_self", - "type": "PropsRewardsLib.Data storage" - }, - { - "name": "_rewardsDay", - "type": "uint256" - }, - { - "name": "_rewardsHash", - "type": "bytes32" - }, - { - "name": "_allValidators", - "type": "bool" - } - ], - "name": "calculateValidatorRewards", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_self", - "type": "PropsRewardsLib.Data storage" - }, - { - "name": "_rewardsDay", - "type": "uint256" - }, - { - "name": "_rewardsHash", - "type": "bytes32" - }, - { - "name": "_applications", - "type": "address[]" - }, - { - "name": "_amounts", - "type": "uint256[]" - }, - { - "name": "_currentTotalSupply", - "type": "uint256" - } - ], - "name": "calculateAndFinalizeApplicationRewards", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_self", - "type": "PropsRewardsLib.Data storage" - }, - { - "name": "_rewardsDay", - "type": "uint256" - }, - { - "name": "_rewardsHash", - "type": "bytes32" - }, - { - "name": "_currentTotalSupply", - "type": "uint256" - } - ], - "name": "_finalizeDailyApplicationRewards", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_self", - "type": "PropsRewardsLib.Data storage" - }, - { - "name": "_name", - "type": "PropsRewardsLib.ParameterName" - }, - { - "name": "_rewardsDay", - "type": "uint256" - } - ], - "name": "getParameterValue", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_self", - "type": "PropsRewardsLib.Data storage" - }, - { - "name": "_name", - "type": "PropsRewardsLib.ParameterName" - }, - { - "name": "_value", - "type": "uint256" - }, - { - "name": "_rewardsDay", - "type": "uint256" - } - ], - "name": "updateParameter", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_self", - "type": "PropsRewardsLib.Data storage" - }, - { - "name": "_entityType", - "type": "PropsRewardsLib.RewardedEntityType" - }, - { - "name": "_name", - "type": "bytes32" - }, - { - "name": "_rewardsAddress", - "type": "address" - }, - { - "name": "_sidechainAddress", - "type": "address" - } - ], - "name": "updateEntity", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_self", - "type": "PropsRewardsLib.Data storage" - }, - { - "name": "_name", - "type": "bytes32" - }, - { - "name": "_rewardsAddress", - "type": "address" - }, - { - "name": "_sidechainAddress", - "type": "address" - } - ], - "name": "updateApplication", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_self", - "type": "PropsRewardsLib.Data storage" - }, - { - "name": "_name", - "type": "bytes32" - }, - { - "name": "_rewardsAddress", - "type": "address" - }, - { - "name": "_sidechainAddress", - "type": "address" - } - ], - "name": "updateValidator", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_self", - "type": "PropsRewardsLib.Data storage" - }, - { - "name": "_rewardsDay", - "type": "uint256" - }, - { - "name": "_validators", - "type": "address[]" - } - ], - "name": "setValidators", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_self", - "type": "PropsRewardsLib.Data storage" - }, - { - "name": "_rewardsDay", - "type": "uint256" - }, - { - "name": "_applications", - "type": "address[]" - } - ], - "name": "setApplications", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_self", - "type": "PropsRewardsLib.Data storage" - }, - { - "name": "_entityType", - "type": "PropsRewardsLib.RewardedEntityType" - }, - { - "name": "_rewardsDay", - "type": "uint256" - } - ], - "name": "getEntities", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_self", - "type": "PropsRewardsLib.Data storage" - }, - { - "name": "_rewardsDay", - "type": "uint256" - }, - { - "name": "_currentTotalSupply", - "type": "uint256" - } - ], - "name": "_getMaxAppRewardsDailyAmount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_self", - "type": "PropsRewardsLib.Data storage" - }, - { - "name": "_rewardsDay", - "type": "uint256" - }, - { - "name": "_numOfValidators", - "type": "uint256" - } - ], - "name": "_getValidatorRewardsDailyAmountPerValidator", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_self", - "type": "PropsRewardsLib.Data storage" - }, - { - "name": "_applications", - "type": "address[]" - }, - { - "name": "_amounts", - "type": "uint256[]" - } - ], - "name": "_validateSubmittedData", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_self", - "type": "PropsRewardsLib.Data storage" - }, - { - "name": "_rewardsDay", - "type": "uint256" - }, - { - "name": "_rewardsHash", - "type": "bytes32" - }, - { - "name": "_applications", - "type": "address[]" - }, - { - "name": "_amounts", - "type": "uint256[]" - } - ], - "name": "_rewardsHashIsValid", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_self", - "type": "PropsRewardsLib.Data storage" - }, - { - "name": "_rewardsDay", - "type": "uint256" - } - ], - "name": "_requiredValidatorsForValidatorsRewards", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_self", - "type": "PropsRewardsLib.Data storage" - }, - { - "name": "_rewardsDay", - "type": "uint256" - } - ], - "name": "_requiredValidatorsForAppRewards", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_self", - "type": "PropsRewardsLib.Data storage" - } - ], - "name": "_currentRewardsDay", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_self", - "type": "PropsRewardsLib.Data storage" - }, - { - "name": "_rewardsHash", - "type": "bytes32" - } - ], - "name": "_resetDailyRewards", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x613763610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f300730000000000000000000000000000000000000000301460806040526004361061011e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e295071146101235780630f9887a0146101b257806311cb33da1461029b57806314a68c38146102e95780633f065dc91461034157806346e3a298146103fb578063519e72ab1461048357806363cad06a146104cb5780638993273514610545578063a352a57d146105d1578063a4143f831461060f578063c3ac1c781461064d578063c8cd615f1461069c578063cb27ba3e14610772578063cc1b8c9c146107ad578063d81b705014610827578063e2c593d314610872578063e3dbf5e314610901578063e8fc02ab14610949575b600080fd5b81801561012f57600080fd5b5061019c600480360381019080803590602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061097d565b6040518082815260200191505060405180910390f35b8180156101be57600080fd5b5061028560048036038101908080359060200190929190803590602001909291908035600019169060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610c6c565b6040518082815260200191505060405180910390f35b8180156102a757600080fd5b506102e760048036038101908080359060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506114c7565b005b61032b6004803603810190808035906020019092919080359060200190929190803560001916906020019092919080351515906020019092919050505061166e565b6040518082815260200191505060405180910390f35b6103e5600480360381019080803590602001909291908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611735565b6040518082815260200191505060405180910390f35b81801561040757600080fd5b5061048160048036038101908080359060200190929190803560ff1690602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118ae565b005b6104b56004803603810190808035906020019092919080359060200190929190803590602001909291905050506119fc565b6040518082815260200191505060405180910390f35b8180156104d757600080fd5b50610543600480360381019080803590602001909291908035906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611a6a565b005b61057a60048036038101908080359060200190929190803560ff16906020019092919080359060200190929190505050611c3c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105bd5780820151818401526020810190506105a2565b505050509050019250505060405180910390f35b6105f96004803603810190808035906020019092919080359060200190929190505050612136565b6040518082815260200191505060405180910390f35b61063760048036038101908080359060200190929190803590602001909291905050506122a3565b6040518082815260200191505060405180910390f35b81801561065957600080fd5b5061069a600480360381019080803590602001909291908035906020019092919080356000191690602001909291908035906020019092919050505061249c565b005b6107586004803603810190808035906020019092919080359060200190929190803560001916906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506124f3565b604051808215151515815260200191505060405180910390f35b81801561077e57600080fd5b506107ab6004803603810190808035906020019092919080356000191690602001909291905050506128a0565b005b8180156107b957600080fd5b50610825600480360381019080803590602001909291908035906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612a7e565b005b61085c60048036038101908080359060200190929190803560ff16906020019092919080359060200190929190505050612c50565b6040518082815260200191505060405180910390f35b81801561087e57600080fd5b506108eb600480360381019080803590602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cd7565b6040518082815260200191505060405180910390f35b610933600480360381019080803590602001909291908035906020019092919080359060200190929190505050612fc7565b6040518082815260200191505060405180910390f35b6109676004803603810190808035906020019092919050505061303c565b6040518082815260200191505060405180910390f35b6000838560020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018160001916905550828560020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818560020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508460020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160149054906101000a900460ff161515610c5657846003013390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060018560020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160146101000a81548160ff02191690831515021790555060018560020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160156101000a81548160ff02191690836001811115610c5057fe5b02179055505b600180811115610c6257fe5b9050949350505050565b600080878780610c7b8361303c565b118015610c8b5750816017015481115b1515610d25576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001807f4d75737420626520666f7220612070726576696f75732064617920627574206181526020017f6674657220746865206c6173742072657761726473206461790000000000000081525060400191505060405180910390fd5b898881600f016000016000826000191660001916815260200190815260200160002060000160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610e30576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4d757374206265206f6e65207375626d697373696f6e207065722076616c696481526020017f61746f720000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8b8b610f71826005016060604051908101604052908160028201805480602002602001604051908101604052809291908181526020018280548015610eca57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610e80575b5050505050815260200160038201805480602002602001604051908101604052809291908181526020018280548015610f5857602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610f0e575b505050505081526020016004820154815250508261309b565b1515611068578160050160000160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611063576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4d75737420626520612063757272656e742073656c65637465642076616c696481526020017f61746f720000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b611155565b8160050160010160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611154576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d75737420626520612070726576696f75732073656c65637465642076616c6981526020017f6461746f7200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b6111628e8e8e8e8e6124f3565b15156111d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f52657761726473204861736820697320696e76616c696400000000000000000081525060200191505060405180910390fd5b8d600f0160000160008d6000191660001916815260200190815260200160002060040160009054906101000a900460ff1615156112815760018e600f0160000160008e6000191660001916815260200190815260200160002060040160006101000a81548160ff0219169083151502179055508d600f016001018c90806001815401808255809150509060018203906000526020600020016000909192909190915090600019169055505b60018e600f0160000160008e6000191660001916815260200190815260200160002060000160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508d600f0160000160008d600019166000191681526020019081526020016000206001013390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508d600f0160000160008d60001916600019168152602001908152602001600020600201600081548092919060010191905055506113be8e8e6122a3565b8e600f0160000160008e600019166000191681526020019081526020016000206002015414156114b1576113f38e8c8c611735565b96506114008e8e8b612fc7565b871115151561149d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f52657761726473206461746120697320696e76616c6964202d2065786365656481526020017f206461696c7920766172696174696f6e0000000000000000000000000000000081525060400191505060405180910390fd5b6114a98e8e8e8c61249c565b8697506114b6565b600097505b505050505050509695505050505050565b83816114d28261303c565b8110151515611549576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4d7573742062652066757475726520726577617264734461790000000000000081525060200191505060405180910390fd5b85600401600086600381111561155b57fe5b815260200190815260200160002060020154831115156115ca578386600401600087600381111561158857fe5b815260200190815260200160002060000181905550828660040160008760038111156115b057fe5b815260200190815260200160002060020181905550611666565b8560040160008660038111156115dc57fe5b81526020019081526020016000206000015486600401600087600381111561160057fe5b8152602001908152602001600020600101819055508386600401600087600381111561162857fe5b8152602001908152602001600020600001819055508286600401600087600381111561165057fe5b8152602001908152602001600020600201819055505b505050505050565b6000806000600187600f01600001600087600019166000191681526020019081526020016000206003015414156117265783156116ea576116af8787612136565b915086600f0160000160008660001916600019168152602001908152602001600020600201548211156116e5576000925061172b565b611711565b86600f01600001600086600019166000191681526020019081526020016000206002015491505b61171c8787846119fc565b905080925061172b565b600092505b5050949350505050565b60008060008060019150600090505b84518110156117fa57611777858281518110151561175e57fe5b90602001906020020151846130be90919063ffffffff16565b9250866000016000878381518110151561178d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160149054906101000a900460ff1615156117ed57600091505b8080600101915050611744565b6000831180156118075750815b15156118a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f53756d207a65726f206f72206e6f6e65206578697374696e672061707020737581526020017f626d69747465640000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8293505050509392505050565b8181600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561191a5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156119b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001807f4d75737420686176652076616c6964207265776172647320616e64207369646581526020017f636861696e20616464726573736573000000000000000000000000000000000081525060400191505060405180910390fd5b600060018111156119c157fe5b8660018111156119cd57fe5b14156119e5576119df87868686612cd7565b506119f3565b6119f18786868661097d565b505b50505050505050565b6000611a6182611a536305f5e100611a45611a198960038a612c50565b611a378a600f01600201548b601601546130df90919063ffffffff16565b61310090919063ffffffff16565b61313e90919063ffffffff16565b61313e90919063ffffffff16565b90509392505050565b8282611a758261303c565b8110151515611aec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4d7573742062652066757475726520726577617264734461790000000000000081525060200191505060405180910390fd5b848360008090505b8151811015611be7578260020160008383815181101515611b1157fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160149054906101000a900460ff161515611bda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f56616c696461746f72206d75737420657869737400000000000000000000000081525060200191505060405180910390fd5b8080600101915050611af4565b876005016004015487118015611c07575060008860050160020180549050115b15611c1957611c1888600501613168565b5b611c2688600501876133a6565b8688600501600401819055505050505050505050565b606060006001811115611c4b57fe5b836001811115611c5757fe5b1415611ec857611d9c84600a016060604051908101604052908160028201805480602002602001604051908101604052809291908181526020018280548015611cf557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611cab575b5050505050815260200160038201805480602002602001604051908101604052809291908181526020018280548015611d8357602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611d39575b505050505081526020016004820154815250508361309b565b1515611e355783600a01600201805480602002602001604051908101604052809291908181526020018280548015611e2957602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611ddf575b5050505050905061212f565b83600a01600301805480602002602001604051908101604052809291908181526020018280548015611ebc57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611e72575b5050505050905061212f565b612007846005016060604051908101604052908160028201805480602002602001604051908101604052809291908181526020018280548015611f6057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611f16575b5050505050815260200160038201805480602002602001604051908101604052809291908181526020018280548015611fee57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611fa4575b505050505081526020016004820154815250508361309b565b15156120a0578360050160020180548060200260200160405190810160405280929190818152602001828054801561209457602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161204a575b5050505050905061212f565b8360050160030180548060200260200160405190810160405280929190818152602001828054801561212757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116120dd575b505050505090505b9392505050565b60006122778360050160606040519081016040529081600282018054806020026020016040519081016040528092919081815260200182805480156121d057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311612186575b505050505081526020016003820180548060200260200160405190810160405280929190818152602001828054801561225e57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311612214575b505050505081526020016004820154815250508361309b565b151561228f578260050160020180549050905061229d565b826005016003018054905090505b92915050565b60006123e483600501606060405190810160405290816002820180548060200260200160405190810160405280929190818152602001828054801561233d57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116122f3575b50505050508152602001600382018054806020026020016040519081016040528092919081815260200182805480156123cb57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311612381575b505050505081526020016004820154815250508361309b565b15156124425761243b600161242d6305f5e10061241f61240688600289612c50565b886005016002018054905061310090919063ffffffff16565b61313e90919063ffffffff16565b6130be90919063ffffffff16565b9050612496565b61249360016124856305f5e10061247761245e88600289612c50565b886005016003018054905061310090919063ffffffff16565b61313e90919063ffffffff16565b6130be90919063ffffffff16565b90505b92915050565b8084600f01600201819055508184600f0160030181600019169055508284600f0160040181905550600184600f01600001600084600019166000191681526020019081526020016000206003018190555050505050565b6000806000806000925061263c89600a01606060405190810160405290816002820180548060200260200160405190810160405280929190818152602001828054801561259557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161254b575b505050505081526020016003820180548060200260200160405190810160405280929190818152602001828054801561262357602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116125d9575b505050505081526020016004820154815250508961309b565b15156126d657600091505b85518210156126d15788600a016000016000878481518110151561266757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156126c457600192505b8180600101925050612647565b612766565b600090505b85518110156127655788600a01600101600087838151811015156126fb57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561275857600192505b80806001019150506126db565b5b60008651118015612778575084518651145b8015612782575082155b8015612892575086600019168887518751898960405160200180868152602001858152602001848152602001838051906020019060200280838360005b838110156127da5780820151818401526020810190506127bf565b50505050905001828051906020019060200280838360005b8381101561280d5780820151818401526020810190506127f2565b50505050905001955050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561285f578051825260208201915060208101905060208303925061283a565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916145b935050505095945050505050565b600082600f01600401548360170181905550600090505b82600f0160000160008360001916600019168152602001908152602001600020600101805490508110156129bc5782600f0160000160008360001916600019168152602001908152602001600020600001600084600f01600001600085600019166000191681526020019081526020016000206001018381548110151561293a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905580806001019150506128b7565b82600f016000016000836000191660001916815260200190815260200160002060010160006129eb91906136f1565b600083600f016000016000846000191660001916815260200190815260200160002060020181905550600083600f016000016000846000191660001916815260200190815260200160002060030181905550600083600f016000016000846000191660001916815260200190815260200160002060040160006101000a81548160ff021916908315150217905550505050565b8282612a898261303c565b8110151515612b00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4d7573742062652066757475726520726577617264734461790000000000000081525060200191505060405180910390fd5b848360008090505b8151811015612bfb578260000160008383815181101515612b2557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160149054906101000a900460ff161515612bee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4170706c69636174696f6e206d7573742065786973740000000000000000000081525060200191505060405180910390fd5b8080600101915050612b08565b87600a016004015487118015612c1b5750600088600a0160020180549050115b15612c2d57612c2c88600a01613168565b5b612c3a88600a01876133a6565b8688600a01600401819055505050505050505050565b6000836004016000846003811115612c6457fe5b81526020019081526020016000206002015482101515612ca957836004016000846003811115612c9057fe5b8152602001908152602001600020600001549050612cd0565b836004016000846003811115612cbb57fe5b81526020019081526020016000206001015490505b9392505050565b6000838560000160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018160001916905550828560000160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818560000160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508460000160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160149054906101000a900460ff161515612fb057846001013390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060018560000160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160146101000a81548160ff02191690831515021790555060008560000160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160156101000a81548160ff02191690836001811115612faa57fe5b02179055505b60006001811115612fbd57fe5b9050949350505050565b6000613033662386f26fc10000613025612fe387600188612c50565b613017612ff28960008a612c50565b613009888b601601546130df90919063ffffffff16565b61310090919063ffffffff16565b61310090919063ffffffff16565b61313e90919063ffffffff16565b90509392505050565b600080826014015411156130915761308a600161307c846014015461306e8660150154426130df90919063ffffffff16565b61313e90919063ffffffff16565b6130be90919063ffffffff16565b9050613096565b600090505b919050565b60008260400151821015156130b357600090506130b8565b600190505b92915050565b60008082840190508381101515156130d557600080fd5b8091505092915050565b6000808383111515156130f157600080fd5b82840390508091505092915050565b60008060008414156131155760009150613137565b828402905082848281151561312657fe5b0414151561313357600080fd5b8091505b5092915050565b60008060008311151561315057600080fd5b828481151561315b57fe5b0490508091505092915050565b600080600083600301805490501491508115801561319457508260020180549050836003018054905014155b156131a7576131a28361356d565b600191505b600090505b82600201805490508110156133a1578115613269578260030183600201828154811015156131d657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506132ff565b826002018181548110151561327a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600301828154811015156132b657fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6001836001016000856002018481548110151561331857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506131ac565b505050565b60008060008460020180549050149150811580156133cc57508251846002018054905014155b156133df576133da8461362f565b600191505b600090505b82518110156135675781156134775783600201838281518110151561340557fe5b9060200190602002015190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506134e9565b828181518110151561348557fe5b9060200190602002015184600201828154811015156134a057fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600184600001600085848151811015156134ff57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506133e4565b50505050565b60008090505b816003018054905081101561361b57816001016000836003018381548110151561359957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690558080600101915050613573565b81600301600061362b91906136f1565b5050565b60008090505b81600201805490508110156136dd57816000016000836002018381548110151561365b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690558080600101915050613635565b8160020160006136ed91906136f1565b5050565b508054600082559060005260206000209081019061370f9190613712565b50565b61373491905b80821115613730576000816000905550600101613718565b5090565b905600a165627a7a72305820b784a0f1d97c4f19ade2e72932224753476a0ee044d36952ca966c56641e47210029", - "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361061011e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630e295071146101235780630f9887a0146101b257806311cb33da1461029b57806314a68c38146102e95780633f065dc91461034157806346e3a298146103fb578063519e72ab1461048357806363cad06a146104cb5780638993273514610545578063a352a57d146105d1578063a4143f831461060f578063c3ac1c781461064d578063c8cd615f1461069c578063cb27ba3e14610772578063cc1b8c9c146107ad578063d81b705014610827578063e2c593d314610872578063e3dbf5e314610901578063e8fc02ab14610949575b600080fd5b81801561012f57600080fd5b5061019c600480360381019080803590602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061097d565b6040518082815260200191505060405180910390f35b8180156101be57600080fd5b5061028560048036038101908080359060200190929190803590602001909291908035600019169060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610c6c565b6040518082815260200191505060405180910390f35b8180156102a757600080fd5b506102e760048036038101908080359060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506114c7565b005b61032b6004803603810190808035906020019092919080359060200190929190803560001916906020019092919080351515906020019092919050505061166e565b6040518082815260200191505060405180910390f35b6103e5600480360381019080803590602001909291908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611735565b6040518082815260200191505060405180910390f35b81801561040757600080fd5b5061048160048036038101908080359060200190929190803560ff1690602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118ae565b005b6104b56004803603810190808035906020019092919080359060200190929190803590602001909291905050506119fc565b6040518082815260200191505060405180910390f35b8180156104d757600080fd5b50610543600480360381019080803590602001909291908035906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611a6a565b005b61057a60048036038101908080359060200190929190803560ff16906020019092919080359060200190929190505050611c3c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105bd5780820151818401526020810190506105a2565b505050509050019250505060405180910390f35b6105f96004803603810190808035906020019092919080359060200190929190505050612136565b6040518082815260200191505060405180910390f35b61063760048036038101908080359060200190929190803590602001909291905050506122a3565b6040518082815260200191505060405180910390f35b81801561065957600080fd5b5061069a600480360381019080803590602001909291908035906020019092919080356000191690602001909291908035906020019092919050505061249c565b005b6107586004803603810190808035906020019092919080359060200190929190803560001916906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506124f3565b604051808215151515815260200191505060405180910390f35b81801561077e57600080fd5b506107ab6004803603810190808035906020019092919080356000191690602001909291905050506128a0565b005b8180156107b957600080fd5b50610825600480360381019080803590602001909291908035906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612a7e565b005b61085c60048036038101908080359060200190929190803560ff16906020019092919080359060200190929190505050612c50565b6040518082815260200191505060405180910390f35b81801561087e57600080fd5b506108eb600480360381019080803590602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cd7565b6040518082815260200191505060405180910390f35b610933600480360381019080803590602001909291908035906020019092919080359060200190929190505050612fc7565b6040518082815260200191505060405180910390f35b6109676004803603810190808035906020019092919050505061303c565b6040518082815260200191505060405180910390f35b6000838560020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018160001916905550828560020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818560020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508460020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160149054906101000a900460ff161515610c5657846003013390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060018560020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160146101000a81548160ff02191690831515021790555060018560020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160156101000a81548160ff02191690836001811115610c5057fe5b02179055505b600180811115610c6257fe5b9050949350505050565b600080878780610c7b8361303c565b118015610c8b5750816017015481115b1515610d25576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001807f4d75737420626520666f7220612070726576696f75732064617920627574206181526020017f6674657220746865206c6173742072657761726473206461790000000000000081525060400191505060405180910390fd5b898881600f016000016000826000191660001916815260200190815260200160002060000160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610e30576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4d757374206265206f6e65207375626d697373696f6e207065722076616c696481526020017f61746f720000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8b8b610f71826005016060604051908101604052908160028201805480602002602001604051908101604052809291908181526020018280548015610eca57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610e80575b5050505050815260200160038201805480602002602001604051908101604052809291908181526020018280548015610f5857602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610f0e575b505050505081526020016004820154815250508261309b565b1515611068578160050160000160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611063576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4d75737420626520612063757272656e742073656c65637465642076616c696481526020017f61746f720000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b611155565b8160050160010160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611154576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d75737420626520612070726576696f75732073656c65637465642076616c6981526020017f6461746f7200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b6111628e8e8e8e8e6124f3565b15156111d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f52657761726473204861736820697320696e76616c696400000000000000000081525060200191505060405180910390fd5b8d600f0160000160008d6000191660001916815260200190815260200160002060040160009054906101000a900460ff1615156112815760018e600f0160000160008e6000191660001916815260200190815260200160002060040160006101000a81548160ff0219169083151502179055508d600f016001018c90806001815401808255809150509060018203906000526020600020016000909192909190915090600019169055505b60018e600f0160000160008e6000191660001916815260200190815260200160002060000160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508d600f0160000160008d600019166000191681526020019081526020016000206001013390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508d600f0160000160008d60001916600019168152602001908152602001600020600201600081548092919060010191905055506113be8e8e6122a3565b8e600f0160000160008e600019166000191681526020019081526020016000206002015414156114b1576113f38e8c8c611735565b96506114008e8e8b612fc7565b871115151561149d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f52657761726473206461746120697320696e76616c6964202d2065786365656481526020017f206461696c7920766172696174696f6e0000000000000000000000000000000081525060400191505060405180910390fd5b6114a98e8e8e8c61249c565b8697506114b6565b600097505b505050505050509695505050505050565b83816114d28261303c565b8110151515611549576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4d7573742062652066757475726520726577617264734461790000000000000081525060200191505060405180910390fd5b85600401600086600381111561155b57fe5b815260200190815260200160002060020154831115156115ca578386600401600087600381111561158857fe5b815260200190815260200160002060000181905550828660040160008760038111156115b057fe5b815260200190815260200160002060020181905550611666565b8560040160008660038111156115dc57fe5b81526020019081526020016000206000015486600401600087600381111561160057fe5b8152602001908152602001600020600101819055508386600401600087600381111561162857fe5b8152602001908152602001600020600001819055508286600401600087600381111561165057fe5b8152602001908152602001600020600201819055505b505050505050565b6000806000600187600f01600001600087600019166000191681526020019081526020016000206003015414156117265783156116ea576116af8787612136565b915086600f0160000160008660001916600019168152602001908152602001600020600201548211156116e5576000925061172b565b611711565b86600f01600001600086600019166000191681526020019081526020016000206002015491505b61171c8787846119fc565b905080925061172b565b600092505b5050949350505050565b60008060008060019150600090505b84518110156117fa57611777858281518110151561175e57fe5b90602001906020020151846130be90919063ffffffff16565b9250866000016000878381518110151561178d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160149054906101000a900460ff1615156117ed57600091505b8080600101915050611744565b6000831180156118075750815b15156118a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f53756d207a65726f206f72206e6f6e65206578697374696e672061707020737581526020017f626d69747465640000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8293505050509392505050565b8181600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561191a5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156119b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001807f4d75737420686176652076616c6964207265776172647320616e64207369646581526020017f636861696e20616464726573736573000000000000000000000000000000000081525060400191505060405180910390fd5b600060018111156119c157fe5b8660018111156119cd57fe5b14156119e5576119df87868686612cd7565b506119f3565b6119f18786868661097d565b505b50505050505050565b6000611a6182611a536305f5e100611a45611a198960038a612c50565b611a378a600f01600201548b601601546130df90919063ffffffff16565b61310090919063ffffffff16565b61313e90919063ffffffff16565b61313e90919063ffffffff16565b90509392505050565b8282611a758261303c565b8110151515611aec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4d7573742062652066757475726520726577617264734461790000000000000081525060200191505060405180910390fd5b848360008090505b8151811015611be7578260020160008383815181101515611b1157fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160149054906101000a900460ff161515611bda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f56616c696461746f72206d75737420657869737400000000000000000000000081525060200191505060405180910390fd5b8080600101915050611af4565b876005016004015487118015611c07575060008860050160020180549050115b15611c1957611c1888600501613168565b5b611c2688600501876133a6565b8688600501600401819055505050505050505050565b606060006001811115611c4b57fe5b836001811115611c5757fe5b1415611ec857611d9c84600a016060604051908101604052908160028201805480602002602001604051908101604052809291908181526020018280548015611cf557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611cab575b5050505050815260200160038201805480602002602001604051908101604052809291908181526020018280548015611d8357602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611d39575b505050505081526020016004820154815250508361309b565b1515611e355783600a01600201805480602002602001604051908101604052809291908181526020018280548015611e2957602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611ddf575b5050505050905061212f565b83600a01600301805480602002602001604051908101604052809291908181526020018280548015611ebc57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611e72575b5050505050905061212f565b612007846005016060604051908101604052908160028201805480602002602001604051908101604052809291908181526020018280548015611f6057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611f16575b5050505050815260200160038201805480602002602001604051908101604052809291908181526020018280548015611fee57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611fa4575b505050505081526020016004820154815250508361309b565b15156120a0578360050160020180548060200260200160405190810160405280929190818152602001828054801561209457602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161204a575b5050505050905061212f565b8360050160030180548060200260200160405190810160405280929190818152602001828054801561212757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116120dd575b505050505090505b9392505050565b60006122778360050160606040519081016040529081600282018054806020026020016040519081016040528092919081815260200182805480156121d057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311612186575b505050505081526020016003820180548060200260200160405190810160405280929190818152602001828054801561225e57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311612214575b505050505081526020016004820154815250508361309b565b151561228f578260050160020180549050905061229d565b826005016003018054905090505b92915050565b60006123e483600501606060405190810160405290816002820180548060200260200160405190810160405280929190818152602001828054801561233d57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116122f3575b50505050508152602001600382018054806020026020016040519081016040528092919081815260200182805480156123cb57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311612381575b505050505081526020016004820154815250508361309b565b15156124425761243b600161242d6305f5e10061241f61240688600289612c50565b886005016002018054905061310090919063ffffffff16565b61313e90919063ffffffff16565b6130be90919063ffffffff16565b9050612496565b61249360016124856305f5e10061247761245e88600289612c50565b886005016003018054905061310090919063ffffffff16565b61313e90919063ffffffff16565b6130be90919063ffffffff16565b90505b92915050565b8084600f01600201819055508184600f0160030181600019169055508284600f0160040181905550600184600f01600001600084600019166000191681526020019081526020016000206003018190555050505050565b6000806000806000925061263c89600a01606060405190810160405290816002820180548060200260200160405190810160405280929190818152602001828054801561259557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161254b575b505050505081526020016003820180548060200260200160405190810160405280929190818152602001828054801561262357602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116125d9575b505050505081526020016004820154815250508961309b565b15156126d657600091505b85518210156126d15788600a016000016000878481518110151561266757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156126c457600192505b8180600101925050612647565b612766565b600090505b85518110156127655788600a01600101600087838151811015156126fb57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561275857600192505b80806001019150506126db565b5b60008651118015612778575084518651145b8015612782575082155b8015612892575086600019168887518751898960405160200180868152602001858152602001848152602001838051906020019060200280838360005b838110156127da5780820151818401526020810190506127bf565b50505050905001828051906020019060200280838360005b8381101561280d5780820151818401526020810190506127f2565b50505050905001955050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561285f578051825260208201915060208101905060208303925061283a565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060001916145b935050505095945050505050565b600082600f01600401548360170181905550600090505b82600f0160000160008360001916600019168152602001908152602001600020600101805490508110156129bc5782600f0160000160008360001916600019168152602001908152602001600020600001600084600f01600001600085600019166000191681526020019081526020016000206001018381548110151561293a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905580806001019150506128b7565b82600f016000016000836000191660001916815260200190815260200160002060010160006129eb91906136f1565b600083600f016000016000846000191660001916815260200190815260200160002060020181905550600083600f016000016000846000191660001916815260200190815260200160002060030181905550600083600f016000016000846000191660001916815260200190815260200160002060040160006101000a81548160ff021916908315150217905550505050565b8282612a898261303c565b8110151515612b00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4d7573742062652066757475726520726577617264734461790000000000000081525060200191505060405180910390fd5b848360008090505b8151811015612bfb578260000160008383815181101515612b2557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160149054906101000a900460ff161515612bee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4170706c69636174696f6e206d7573742065786973740000000000000000000081525060200191505060405180910390fd5b8080600101915050612b08565b87600a016004015487118015612c1b5750600088600a0160020180549050115b15612c2d57612c2c88600a01613168565b5b612c3a88600a01876133a6565b8688600a01600401819055505050505050505050565b6000836004016000846003811115612c6457fe5b81526020019081526020016000206002015482101515612ca957836004016000846003811115612c9057fe5b8152602001908152602001600020600001549050612cd0565b836004016000846003811115612cbb57fe5b81526020019081526020016000206001015490505b9392505050565b6000838560000160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018160001916905550828560000160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818560000160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508460000160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160149054906101000a900460ff161515612fb057846001013390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060018560000160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160146101000a81548160ff02191690831515021790555060008560000160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160156101000a81548160ff02191690836001811115612faa57fe5b02179055505b60006001811115612fbd57fe5b9050949350505050565b6000613033662386f26fc10000613025612fe387600188612c50565b613017612ff28960008a612c50565b613009888b601601546130df90919063ffffffff16565b61310090919063ffffffff16565b61310090919063ffffffff16565b61313e90919063ffffffff16565b90509392505050565b600080826014015411156130915761308a600161307c846014015461306e8660150154426130df90919063ffffffff16565b61313e90919063ffffffff16565b6130be90919063ffffffff16565b9050613096565b600090505b919050565b60008260400151821015156130b357600090506130b8565b600190505b92915050565b60008082840190508381101515156130d557600080fd5b8091505092915050565b6000808383111515156130f157600080fd5b82840390508091505092915050565b60008060008414156131155760009150613137565b828402905082848281151561312657fe5b0414151561313357600080fd5b8091505b5092915050565b60008060008311151561315057600080fd5b828481151561315b57fe5b0490508091505092915050565b600080600083600301805490501491508115801561319457508260020180549050836003018054905014155b156131a7576131a28361356d565b600191505b600090505b82600201805490508110156133a1578115613269578260030183600201828154811015156131d657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506132ff565b826002018181548110151561327a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600301828154811015156132b657fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6001836001016000856002018481548110151561331857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506131ac565b505050565b60008060008460020180549050149150811580156133cc57508251846002018054905014155b156133df576133da8461362f565b600191505b600090505b82518110156135675781156134775783600201838281518110151561340557fe5b9060200190602002015190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506134e9565b828181518110151561348557fe5b9060200190602002015184600201828154811015156134a057fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600184600001600085848151811015156134ff57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506133e4565b50505050565b60008090505b816003018054905081101561361b57816001016000836003018381548110151561359957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690558080600101915050613573565b81600301600061362b91906136f1565b5050565b60008090505b81600201805490508110156136dd57816000016000836002018381548110151561365b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690558080600101915050613635565b8160020160006136ed91906136f1565b5050565b508054600082559060005260206000209081019061370f9190613712565b50565b61373491905b80821115613730576000816000905550600101613718565b5090565b905600a165627a7a72305820b784a0f1d97c4f19ade2e72932224753476a0ee044d36952ca966c56641e47210029", - "sourceMap": "191:27331:3:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", - "deployedSourceMap": "191:27331:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13688:730;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13688:730:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7276:1682;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7276:1682:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10629:705;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10629:705:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5888:902;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19434:575;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11747:524;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11747:524:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18736:416;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14658:658;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14658:658:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16420:795;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;16420:795:3;;;;;;;;;;;;;;;;;21674:404;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22256:603;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9285:433;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9285:433:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20358:1138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26706:814;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26706:814:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15561:584;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15561:584:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9919:418;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12600:750;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12600:750:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18021:477;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22971:448;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13688:730;13870:7;13929:5;13893;:16;;:28;13910:10;13893:28;;;;;;;;;;;;;;;:33;;:41;;;;;;;13990:15;13944:5;:16;;:28;13961:10;13944:28;;;;;;;;;;;;;;;:43;;;:61;;;;;;;;;;;;;;;;;;14063:17;14015:5;:16;;:28;14032:10;14015:28;;;;;;;;;;;;;;;:45;;;:65;;;;;;;;;;;;;;;;;;14095:5;:16;;:28;14112:10;14095:28;;;;;;;;;;;;;;;:47;;;;;;;;;;;;14094:48;14090:268;;;14158:5;:20;;14184:10;14158:37;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;14158:37:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14259:4;14209:5;:16;;:28;14226:10;14209:28;;;;;;;;;;;;;;;:47;;;:54;;;;;;;;;;;;;;;;;;14319:28;14277:5;:16;;:28;14294:10;14277:28;;;;;;;;;;;;;;;:39;;;:70;;;;;;;;;;;;;;;;;;;;;;;;14090:268;14382:28;14374:37;;;;;;;;14367:44;;13688:730;;;;;;:::o;7276:1682::-;7721:7;8533:11;7558:5;7565:11;4841;4813:25;4832:5;4813:18;:25::i;:::-;:39;:87;;;;;4870:5;:30;;;4856:11;:44;4813:87;4792:191;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7632:5;7639:12;3413:5;:18;;:30;;:44;3444:12;3413:44;;;;;;;;;;;;;;;;;:55;;:67;3469:10;3413:67;;;;;;;;;;;;;;;;;;;;;;;;;3412:68;3391:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7684:5;7691:11;4273:76;4311:5;:24;;4273:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4337:11;4273:37;:76::i;:::-;4272:77;4268:421;;;4391:5;:24;;:32;;:44;4424:10;4391:44;;;;;;;;;;;;;;;;;;;;;;;;;4365:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4268:421;;;4562:5;:24;;:33;;:45;4596:10;4562:45;;;;;;;;;;;;;;;;;;;;;;;;;4536:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4268:421;7769:78;7789:5;7796:11;7809:12;7823:13;7838:8;7769:19;:78::i;:::-;7744:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7915:5;:18;;:30;;:44;7946:12;7915:44;;;;;;;;;;;;;;;;;:63;;;;;;;;;;;;7914:64;7910:239;;;8060:4;7994:5;:18;;:30;;:44;8025:12;7994:44;;;;;;;;;;;;;;;;;:63;;;:70;;;;;;;;;;;;;;;;;;8078:5;:18;;:41;;8125:12;8078:60;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;8078:60:3;;;;;;;;;;;;;;;;;;;;;;;;;;;7910:239;8228:4;8158:5;:18;;:30;;:44;8189:12;8158:44;;;;;;;;;;;;;;;;;:55;;:67;8214:10;8158:67;;;;;;;;;;;;;;;;:74;;;;;;;;;;;;;;;;;;8242:5;:18;;:30;;:44;8273:12;8242:44;;;;;;;;;;;;;;;;;:59;;8307:10;8242:76;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;8242:76:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8328:5;:18;;:30;;:44;8359:12;8328:44;;;;;;;;;;;;;;;;;:58;;;:60;;;;;;;;;;;;;8465:52;8498:5;8505:11;8465:32;:52::i;:::-;8403:5;:18;;:30;;:44;8434:12;8403:44;;;;;;;;;;;;;;;;;:58;;;:114;8399:535;;;8547:54;8570:5;8577:13;8592:8;8547:22;:54::i;:::-;8533:68;;8647:69;8676:5;8683:11;8696:19;8647:28;:69::i;:::-;8640:3;:76;;8615:183;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8812:87;8845:5;8852:11;8865:12;8879:19;8812:32;:87::i;:::-;8920:3;8913:10;;;;8399:535;8950:1;8943:8;;4698:1;3553;;4994;;7276:1682;;;;;;;;;;;:::o;10629:705::-;10819:5;10826:11;5130:25;5149:5;5130:18;:25::i;:::-;5115:11;:40;;5094:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10872:5;:16;;:32;10897:5;10889:14;;;;;;;;10872:32;;;;;;;;;;;:43;;;10857:11;:58;;10853:475;;;10978:6;10930:5;:16;;:32;10955:5;10947:14;;;;;;;;10930:32;;;;;;;;;;;:45;;:54;;;;11043:11;10997:5;:16;;:32;11022:5;11014:14;;;;;;;;10997:32;;;;;;;;;;;:43;;:57;;;;10853:475;;;11134:5;:16;;:32;11159:5;11151:14;;;;;;;;11134:32;;;;;;;;;;;:45;;;11085:5;:16;;:32;11110:5;11102:14;;;;;;;;11085:32;;;;;;;;;;;:46;;:94;;;;11241:6;11193:5;:16;;:32;11218:5;11210:14;;;;;;;;11193:32;;;;;;;;;;;:45;;:54;;;;11306:11;11260:5;:16;;:32;11285:5;11277:14;;;;;;;;11260:32;;;;;;;;;;;:43;;:57;;;;10853:475;10629:705;;;;;;:::o;5888:902::-;6090:7;6113:23;6605:27;6214:1;6150:5;:18;;:30;;:44;6181:12;6150:44;;;;;;;;;;;;;;;;;:60;;;:65;6146:620;;;6243:14;6239:353;;;6295:59;6335:5;6342:11;6295:39;:59::i;:::-;6277:77;;6394:5;:18;;:30;;:44;6425:12;6394:44;;;;;;;;;;;;;;;;;:58;;;6376:15;:76;6372:90;;;6461:1;6454:8;;;;6372:90;6239:353;;;6519:5;:18;;:30;;:44;6550:12;6519:44;;;;;;;;;;;;;;;;;:58;;;6501:76;;6239:353;6635:80;6679:5;6686:11;6699:15;6635:43;:80::i;:::-;6605:110;;6736:19;6729:26;;;;6146:620;6782:1;6775:8;;5888:902;;;;;;;;;:::o;19434:575::-;19606:7;19629:11;19650:10;19682:9;19663:4;19650:17;;19694:1;19682:13;;19677:186;19701:8;:15;19697:1;:19;19677:186;;;19743:20;19751:8;19760:1;19751:11;;;;;;;;;;;;;;;;;;19743:3;:7;;:20;;;;:::i;:::-;19737:26;;19782:5;:18;;:36;19801:13;19815:1;19801:16;;;;;;;;;;;;;;;;;;19782:36;;;;;;;;;;;;;;;:55;;;;;;;;;;;;19781:56;19777:75;;;19847:5;19839:13;;19777:75;19718:3;;;;;;;19677:186;;;19903:1;19897:3;:7;:16;;;;;19908:5;19897:16;19872:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19999:3;19992:10;;19434:575;;;;;;;;:::o;11747:524::-;11976:15;11993:17;5369:1;5342:29;;:15;:29;;;;:76;;;;;5416:1;5387:31;;:17;:31;;;;5342:76;5321:170;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12045:30;12030:45;;;;;;;;:11;:45;;;;;;;;;12026:239;;;12091:67;12109:5;12116;12123:15;12140:17;12091;:67::i;:::-;;12026:239;;;12189:65;12205:5;12212;12219:15;12236:17;12189:15;:65::i;:::-;;12026:239;11747:524;;;;;;;:::o;18736:416::-;18931:7;18961:184;19128:16;18962:160;19118:3;18963:149;19035:76;19053:5;19060:37;19099:11;19035:17;:76::i;:::-;18964:56;18989:5;:18;;:30;;;18964:5;:20;;;:24;;:56;;;;:::i;:::-;18963:62;;:149;;;;:::i;:::-;18962:155;;:160;;;;:::i;:::-;18961:166;;:184;;;;:::i;:::-;18954:191;;18736:416;;;;;:::o;14658:658::-;14824:5;14831:11;5130:25;5149:5;5130:18;:25::i;:::-;5115:11;:40;;5094:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14875:5;14882:11;3967:9;3979:1;3967:13;;3962:200;3986:9;:16;3982:1;:20;3962:200;;;4048:5;:16;;:30;4065:9;4075:1;4065:12;;;;;;;;;;;;;;;;;;4048:30;;;;;;;;;;;;;;;:49;;;;;;;;;;;;4023:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4004:3;;;;;;;3962:200;;;15025:5;:24;;:35;;;15011:11;:49;:100;;;;;15110:1;15064:5;:24;;:36;;:43;;;;:47;15011:100;15007:169;;;15125:51;15151:5;:24;;15125:25;:51::i;:::-;15007:169;15187:63;15212:5;:24;;15238:11;15187:24;:63::i;:::-;15298:11;15260:5;:24;;:35;;:49;;;;5217:1;;;14658:658;;;;;:::o;16420:795::-;16589:9;16633:30;16618:45;;;;;;;;:11;:45;;;;;;;;;16614:595;;;16684:78;16722:5;:26;;16684:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16750:11;16684:37;:78::i;:::-;16683:79;16679:248;;;16789:5;:26;;:38;;16782:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16679:248;16873:5;:26;;:39;;16866:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16614:595;16962:76;17000:5;:24;;16962:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17026:11;16962:37;:76::i;:::-;16961:77;16957:242;;;17065:5;:24;;:36;;17058:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16957:242;17147:5;:24;;:37;;17140:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16420:795;;;;;;:::o;21674:404::-;21809:7;21837:76;21875:5;:24;;21837:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21901:11;21837:37;:76::i;:::-;21836:77;21832:240;;;21936:5;:24;;:36;;:43;;;;21929:50;;;;21832:240;22017:5;:24;;:37;;:44;;;;22010:51;;21674:404;;;;;:::o;22256:603::-;22384:7;22412:76;22450:5;:24;;22412:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22476:11;22412:37;:76::i;:::-;22411:77;22407:446;;;22511:146;22655:1;22512:137;22645:3;22513:126;22561:77;22579:5;22586:38;22626:11;22561:17;:77::i;:::-;22513:5;:24;;:36;;:43;;;;:47;;:126;;;;:::i;:::-;22512:132;;:137;;;;:::i;:::-;22511:143;;:146;;;;:::i;:::-;22504:153;;;;22407:446;22695:147;22840:1;22696:138;22830:3;22697:127;22746:77;22764:5;22771:38;22811:11;22746:17;:77::i;:::-;22697:5;:24;;:37;;:44;;;;:48;;:127;;;;:::i;:::-;22696:133;;:138;;;;:::i;:::-;22695:144;;:147;;;;:::i;:::-;22688:154;;22256:603;;;;;:::o;9285:433::-;9481:19;9448:5;:18;;:30;;:52;;;;9556:12;9510:5;:18;;:43;;:58;;;;;;;9626:11;9578:5;:18;;:45;;:59;;;;9710:1;9647:5;:18;;:30;;:44;9678:12;9647:44;;;;;;;;;;;;;;;;;:60;;:64;;;;9285:433;;;;:::o;20358:1138::-;20586:4;20606:25;20753:9;20993;20634:5;20606:33;;20654:78;20692:5;:26;;20654:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20720:11;20654:37;:78::i;:::-;20653:79;20649:560;;;20765:1;20753:13;;20748:210;20772:13;:20;20768:1;:24;20748:210;;;20822:5;:26;;:34;;:52;20857:13;20871:1;20857:16;;;;;;;;;;;;;;;;;;20822:52;;;;;;;;;;;;;;;;;;;;;;;;;20821:53;20817:127;;;20921:4;20898:27;;20817:127;20794:3;;;;;;;20748:210;;;20649:560;;;21005:1;20993:13;;20988:211;21012:13;:20;21008:1;:24;20988:211;;;21062:5;:26;;:35;;:53;21098:13;21112:1;21098:16;;;;;;;;;;;;;;;;;;21062:53;;;;;;;;;;;;;;;;;;;;;;;;;21061:54;21057:128;;;21162:4;21139:27;;21057:128;21034:3;;;;;;;20988:211;;;20649:560;21260:1;21237:13;:20;:24;:79;;;;;21301:8;:15;21277:13;:20;:39;21237:79;:116;;;;;21333:20;21332:21;21237:116;:252;;;;;21477:12;21369:120;;;21396:11;21409:13;:20;21431:8;:15;21448:13;21463:8;21379:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;21379:93:3;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;21379:93:3;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;21379:93:3;;;21369:104;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;21369:104:3;;;;;;;;;;;;;;;;:120;;;;21237:252;21218:271;;20358:1138;;;;;;;;;;:::o;26706:814::-;26921:9;26861:5;:18;;:45;;;26828:5;:30;;:78;;;;26933:1;26921:13;;26916:279;26940:5;:18;;:30;;:44;26971:12;26940:44;;;;;;;;;;;;;;;;;:59;;:66;;;;26936:1;:70;26916:279;;;27051:5;:18;;:30;;:44;27082:12;27051:44;;;;;;;;;;;;;;;;;:55;;:119;27107:5;:18;;:30;;:44;27138:12;27107:44;;;;;;;;;;;;;;;;;:59;;27167:1;27107:62;;;;;;;;;;;;;;;;;;;;;;;;;;;27051:119;;;;;;;;;;;;;;;;27027:157;;;;;;;;;;;27008:3;;;;;;;26916:279;;;27215:5;:18;;:30;;:44;27246:12;27215:44;;;;;;;;;;;;;;;;;:59;;;27208:66;;;;:::i;:::-;27349:1;27288:5;:18;;:30;;:44;27319:12;27288:44;;;;;;;;;;;;;;;;;:58;;:62;;;;27427:1;27364:5;:18;;:30;;:44;27395:12;27364:44;;;;;;;;;;;;;;;;;:60;;:64;;;;27508:5;27442;:18;;:30;;:44;27473:12;27442:44;;;;;;;;;;;;;;;;;:63;;;:71;;;;;;;;;;;;;;;;;;26706:814;;;:::o;15561:584::-;15731:5;15738:11;5130:25;5149:5;5130:18;:25::i;:::-;5115:11;:40;;5094:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15784:5;15791:13;3657:9;3669:1;3657:13;;3652:204;3676:9;:16;3672:1;:20;3652:204;;;3738:5;:18;;:32;3757:9;3767:1;3757:12;;;;;;;;;;;;;;;;;;3738:32;;;;;;;;;;;;;;;:51;;;;;;;;;;;;3713:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3694:3;;;;;;;3652:204;;;15839:5;:26;;:37;;;15825:11;:51;:104;;;;;15928:1;15880:5;:26;;:38;;:45;;;;:49;15825:104;15821:179;;;15947:53;15973:5;:26;;15947:25;:53::i;:::-;15821:179;16010:67;16035:5;:26;;16063:13;16010:24;:67::i;:::-;16127:11;16087:5;:26;;:37;;:51;;;;5217:1;;;15561:584;;;;;:::o;9919:418::-;10083:7;10125:5;:16;;:32;10150:5;10142:14;;;;;;;;10125:32;;;;;;;;;;;:43;;;10110:11;:58;;10106:225;;;10191:5;:16;;:32;10216:5;10208:14;;;;;;;;10191:32;;;;;;;;;;;:45;;;10184:52;;;;10106:225;10274:5;:16;;:32;10299:5;10291:14;;;;;;;;10274:32;;;;;;;;;;;:46;;;10267:53;;9919:418;;;;;;:::o;12600:750::-;12784:7;12845:5;12807;:18;;:30;12826:10;12807:30;;;;;;;;;;;;;;;:35;;:43;;;;;;;12908:15;12860:5;:18;;:30;12879:10;12860:30;;;;;;;;;;;;;;;:45;;;:63;;;;;;;;;;;;;;;;;;12983:17;12933:5;:18;;:30;12952:10;12933:30;;;;;;;;;;;;;;;:47;;;:67;;;;;;;;;;;;;;;;;;13015:5;:18;;:30;13034:10;13015:30;;;;;;;;;;;;;;;:49;;;;;;;;;;;;13014:50;13010:278;;;13080:5;:22;;13108:10;13080:39;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;13080:39:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13185:4;13133:5;:18;;:30;13152:10;13133:30;;;;;;;;;;;;;;;:49;;;:56;;;;;;;;;;;;;;;;;;13247:30;13203:5;:18;;:30;13222:10;13203:30;;;;;;;;;;;;;;;:41;;;:74;;;;;;;;;;;;;;;;;;;;;;;;13010:278;13312:30;13304:39;;;;;;;;13297:46;;12600:750;;;;;;:::o;18021:477::-;18204:7;18234:257;18486:4;18235:245;18389:90;18407:5;18414:51;18467:11;18389:17;:90::i;:::-;18235:140;18296:78;18314:5;18321:39;18362:11;18296:17;:78::i;:::-;18236:45;18261:19;18236:5;:20;;;:24;;:45;;;;:::i;:::-;18235:51;;:140;;;;:::i;:::-;:144;;:245;;;;:::i;:::-;18234:251;;:257;;;;:::i;:::-;18227:264;;18021:477;;;;;:::o;22971:448::-;23064:7;23249:1;23219:5;:27;;;:31;23215:198;;;23273:90;23361:1;23273:83;23328:5;:27;;;23274:48;23294:5;:27;;;23274:15;:19;;:48;;;;:::i;:::-;23273:54;;:83;;;;:::i;:::-;:87;;:90;;;;:::i;:::-;23266:97;;;;23215:198;23401:1;23394:8;;22971:448;;;;:::o;17470:311::-;17625:4;17664:19;:30;;;17649:11;:45;;17645:130;;;17717:5;17710:12;;;;17645:130;17760:4;17753:11;;17470:311;;;;;:::o;1273:131:7:-;1331:7;1346:9;1362:1;1358;:5;1346:17;;1382:1;1377;:6;;1369:15;;;;;;;;1398:1;1391:8;;1273:131;;;;;:::o;1079:::-;1137:7;1173:9;1165:1;1160;:6;;1152:15;;;;;;;;1189:1;1185;:5;1173:17;;1204:1;1197:8;;1079:131;;;;;:::o;205:381::-;263:7;524:9;492:1;487;:6;483:35;;;510:1;503:8;;;;483:35;540:1;536;:5;524:17;;564:1;559;555;:5;;;;;;;;:10;547:19;;;;;;;;580:1;573:8;;205:381;;;;;;:::o;696:270::-;754:7;847:9;781:1;777;:5;769:14;;;;;;;;863:1;859;:5;;;;;;;;847:17;;960:1;953:8;;696:270;;;;;:::o;24690:878:3:-;24804:22;25149:9;24872:1;24829:19;:32;;:39;;;;:44;24804:69;;24901:17;24900:18;:115;;;;;24977:19;:31;;:38;;;;24934:19;:32;;:39;;;;:81;;24900:115;24883:252;;;25040:46;25066:19;25040:25;:46::i;:::-;25120:4;25100:24;;24883:252;25161:1;25149:13;;25144:418;25168:19;:31;;:38;;;;25164:1;:42;25144:418;;;25231:17;25227:240;;;25268:19;:32;;25306:19;:31;;25338:1;25306:34;;;;;;;;;;;;;;;;;;;;;;;;;;;25268:73;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;25268:73:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25227:240;;;25418:19;:31;;25450:1;25418:34;;;;;;;;;;;;;;;;;;;;;;;;;;;25380:19;:32;;25413:1;25380:35;;;;;;;;;;;;;;;;;;:72;;;;;;;;;;;;;;;;;;25227:240;25547:4;25480:19;:28;;:64;25509:19;:31;;25541:1;25509:34;;;;;;;;;;;;;;;;;;;;;;;;;;;25480:64;;;;;;;;;;;;;;;;:71;;;;;;;;;;;;;;;;;;25208:3;;;;;;;25144:418;;;24690:878;;;:::o;23793:767::-;23949:21;24233:9;24015:1;23973:19;:31;;:38;;;;:43;23949:67;;24031:16;24030:17;:79;;;;;24093:9;:16;24051:19;:31;;:38;;;;:58;;24030:79;24026:192;;;24125:45;24150:19;24125:24;:45::i;:::-;24203:4;24184:23;;24026:192;24245:1;24233:13;;24228:326;24252:9;:16;24248:1;:20;24228:326;;;24293:16;24289:193;;;24329:19;:31;;24366:9;24376:1;24366:12;;;;;;;;;;;;;;;;;;24329:50;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;24329:50:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24289:193;;;24455:9;24465:1;24455:12;;;;;;;;;;;;;;;;;;24418:19;:31;;24450:1;24418:34;;;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;24289:193;24539:4;24495:19;:27;;:41;24523:9;24533:1;24523:12;;;;;;;;;;;;;;;;;;24495:41;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;24270:3;;;;;;;24228:326;;;23793:767;;;;:::o;26212:337::-;26331:9;26343:1;26331:13;;26326:168;26350:19;:32;;:39;;;;26346:1;:43;26326:168;;;26418:19;:28;;:65;26447:19;:32;;26480:1;26447:35;;;;;;;;;;;;;;;;;;;;;;;;;;;26418:65;;;;;;;;;;;;;;;;26411:72;;;;;;;;;;;26392:3;;;;;;;26326:168;;;26510:19;:32;;;26503:39;;;;:::i;:::-;26212:337;;:::o;25716:334::-;25834:9;25846:1;25834:13;;25829:166;25853:19;:31;;:38;;;;25849:1;:42;25829:166;;;25921:19;:27;;:63;25949:19;:31;;25981:1;25949:34;;;;;;;;;;;;;;;;;;;;;;;;;;;25921:63;;;;;;;;;;;;;;;;25914:70;;;;;;;;;;;25894:3;;;;;;;25829:166;;;26012:19;:31;;;26004:39;;;;:::i;:::-;25716:334;;:::o;191:27331::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-eth/contracts/math/SafeMath.sol\";\n\n/**\n * @title Props Rewards Library\n * @dev Library to manage application and validators and parameters\n **/\nlibrary PropsRewardsLib {\n using SafeMath for uint256;\n /*\n * Events\n */\n\n /*\n * Storage\n */\n\n // The various parameters used by the contract\n enum ParameterName { ApplicationRewardsPercent, ApplicationRewardsMaxVariationPercent, ValidatorMajorityPercent, ValidatorRewardsPercent}\n enum RewardedEntityType { Application, Validator }\n\n // Represents a parameter current, previous and time of change\n struct Parameter {\n uint256 currentValue; // current value in Pphm valid after timestamp\n uint256 previousValue; // previous value in Pphm for use before timestamp\n uint256 rewardsDay; // timestamp of when the value was updated\n }\n // Represents application details\n struct RewardedEntity {\n bytes32 name; // Application name\n address rewardsAddress; // address where rewards will be minted to\n address sidechainAddress; // address used on the sidechain\n bool isInitializedState; // A way to check if there's something in the map and whether it is already added to the list\n RewardedEntityType entityType; // Type of rewarded entity\n }\n\n // Represents validators current and previous lists\n struct RewardedEntityList {\n mapping (address => bool) current;\n mapping (address => bool) previous;\n address[] currentList;\n address[] previousList;\n uint256 rewardsDay;\n }\n\n // Represents daily rewards submissions and confirmations\n struct DailyRewards {\n mapping (bytes32 => Submission) submissions;\n bytes32[] submittedRewardsHashes;\n uint256 totalSupply;\n bytes32 lastConfirmedRewardsHash;\n uint256 lastApplicationsRewardsDay;\n }\n\n struct Submission {\n mapping (address => bool) validators;\n address[] validatorsList;\n uint256 confirmations;\n uint256 finalizedStatus; // 0 - initialized, 1 - finalized\n bool isInitializedState; // A way to check if there's something in the map and whether it is already added to the list\n }\n\n\n // represent the storage structures\n struct Data {\n // applications data\n mapping (address => RewardedEntity) applications;\n address[] applicationsList;\n // validators data\n mapping (address => RewardedEntity) validators;\n address[] validatorsList;\n // adjustable parameters data\n mapping (uint256 => Parameter) parameters; // uint256 is the parameter enum index\n // the participating validators\n RewardedEntityList selectedValidators;\n // the participating applications\n RewardedEntityList selectedApplications;\n // daily rewards submission data\n DailyRewards dailyRewards;\n uint256 minSecondsBetweenDays;\n uint256 rewardsStartTimestamp;\n uint256 maxTotalSupply;\n uint256 lastValidatorsRewardsDay;\n }\n /*\n * Modifiers\n */\n modifier onlyOneConfirmationPerValidatorPerRewardsHash(Data storage _self, bytes32 _rewardsHash) {\n require(\n !_self.dailyRewards.submissions[_rewardsHash].validators[msg.sender],\n \"Must be one submission per validator\"\n );\n _;\n }\n\n modifier onlyExistingApplications(Data storage _self, address[] _entities) {\n for (uint256 i = 0; i < _entities.length; i++) {\n require(\n _self.applications[_entities[i]].isInitializedState,\n \"Application must exist\"\n );\n }\n _;\n }\n\n modifier onlyExistingValidators(Data storage _self, address[] _entities) {\n for (uint256 i = 0; i < _entities.length; i++) {\n require(\n _self.validators[_entities[i]].isInitializedState,\n \"Validator must exist\"\n );\n }\n _;\n }\n\n modifier onlySelectedValidators(Data storage _self, uint256 _rewardsDay) {\n if (!_usePreviousSelectedRewardsEntityList(_self.selectedValidators, _rewardsDay)) {\n require (\n _self.selectedValidators.current[msg.sender],\n \"Must be a current selected validator\"\n );\n } else {\n require (\n _self.selectedValidators.previous[msg.sender],\n \"Must be a previous selected validator\"\n );\n }\n _;\n }\n\n modifier onlyValidRewardsDay(Data storage _self, uint256 _rewardsDay) {\n require(\n _currentRewardsDay(_self) > _rewardsDay && _rewardsDay > _self.lastValidatorsRewardsDay,\n \"Must be for a previous day but after the last rewards day\"\n );\n _;\n }\n\n modifier onlyValidFutureRewardsDay(Data storage _self, uint256 _rewardsDay) {\n require(\n _rewardsDay >= _currentRewardsDay(_self),\n \"Must be future rewardsDay\"\n );\n _;\n }\n\n modifier onlyValidAddresses(address _rewardsAddress, address _sidechainAddress) {\n require(\n _rewardsAddress != address(0) &&\n _sidechainAddress != address(0),\n \"Must have valid rewards and sidechain addresses\"\n );\n _;\n }\n\n /**\n * @dev The function is called by validators with the calculation of the daily rewards\n * @param _self Data pointer to storage\n * @param _rewardsDay uint256 the rewards day\n * @param _rewardsHash bytes32 hash of the rewards data\n * @param _allValidators bool should the calculation be based on all the validators or just those which submitted\n */\n function calculateValidatorRewards(\n Data storage _self,\n uint256 _rewardsDay,\n bytes32 _rewardsHash,\n bool _allValidators\n )\n public\n view\n returns (uint256)\n {\n uint256 numOfValidators;\n if (_self.dailyRewards.submissions[_rewardsHash].finalizedStatus == 1)\n {\n if (_allValidators) {\n numOfValidators = _requiredValidatorsForValidatorsRewards(_self, _rewardsDay);\n if (numOfValidators > _self.dailyRewards.submissions[_rewardsHash].confirmations) return 0;\n } else {\n numOfValidators = _self.dailyRewards.submissions[_rewardsHash].confirmations;\n }\n uint256 rewardsPerValidator = _getValidatorRewardsDailyAmountPerValidator(_self, _rewardsDay, numOfValidators);\n return rewardsPerValidator;\n }\n return 0;\n }\n\n /**\n * @dev The function is called by validators with the calculation of the daily rewards\n * @param _self Data pointer to storage\n * @param _rewardsDay uint256 the rewards day\n * @param _rewardsHash bytes32 hash of the rewards data\n * @param _applications address[] array of application addresses getting the daily reward\n * @param _amounts uint256[] array of amounts each app should get\n * @param _currentTotalSupply uint256 current total supply\n */\n function calculateAndFinalizeApplicationRewards(\n Data storage _self,\n uint256 _rewardsDay,\n bytes32 _rewardsHash,\n address[] _applications,\n uint256[] _amounts,\n uint256 _currentTotalSupply\n )\n public\n onlyValidRewardsDay(_self, _rewardsDay)\n onlyOneConfirmationPerValidatorPerRewardsHash(_self, _rewardsHash)\n onlySelectedValidators(_self, _rewardsDay)\n returns (uint256)\n {\n require(\n _rewardsHashIsValid(_self, _rewardsDay, _rewardsHash, _applications, _amounts),\n \"Rewards Hash is invalid\"\n );\n if (!_self.dailyRewards.submissions[_rewardsHash].isInitializedState) {\n _self.dailyRewards.submissions[_rewardsHash].isInitializedState = true;\n _self.dailyRewards.submittedRewardsHashes.push(_rewardsHash);\n }\n _self.dailyRewards.submissions[_rewardsHash].validators[msg.sender] = true;\n _self.dailyRewards.submissions[_rewardsHash].validatorsList.push(msg.sender);\n _self.dailyRewards.submissions[_rewardsHash].confirmations++;\n\n if (_self.dailyRewards.submissions[_rewardsHash].confirmations == _requiredValidatorsForAppRewards(_self, _rewardsDay)) {\n uint256 sum = _validateSubmittedData(_self, _applications, _amounts);\n require(\n sum <= _getMaxAppRewardsDailyAmount(_self, _rewardsDay, _currentTotalSupply),\n \"Rewards data is invalid - exceed daily variation\"\n );\n _finalizeDailyApplicationRewards(_self, _rewardsDay, _rewardsHash, _currentTotalSupply);\n return sum;\n }\n return 0;\n }\n\n /**\n * @dev Finalizes the state, rewards Hash, total supply and block timestamp for the day\n * @param _self Data pointer to storage\n * @param _rewardsDay uint256 the rewards day\n * @param _rewardsHash bytes32 the daily rewards hash\n * @param _currentTotalSupply uint256 the current total supply\n */\n function _finalizeDailyApplicationRewards(Data storage _self, uint256 _rewardsDay, bytes32 _rewardsHash, uint256 _currentTotalSupply)\n public\n {\n _self.dailyRewards.totalSupply = _currentTotalSupply;\n _self.dailyRewards.lastConfirmedRewardsHash = _rewardsHash;\n _self.dailyRewards.lastApplicationsRewardsDay = _rewardsDay;\n _self.dailyRewards.submissions[_rewardsHash].finalizedStatus = 1;\n }\n\n /**\n * @dev Get parameter's value\n * @param _self Data pointer to storage\n * @param _name ParameterName name of the parameter\n * @param _rewardsDay uint256 the rewards day\n */\n function getParameterValue(\n Data storage _self,\n ParameterName _name,\n uint256 _rewardsDay\n )\n public\n view\n returns (uint256)\n {\n if (_rewardsDay >= _self.parameters[uint256(_name)].rewardsDay) {\n return _self.parameters[uint256(_name)].currentValue;\n } else {\n return _self.parameters[uint256(_name)].previousValue;\n }\n }\n\n /**\n * @dev Allows the controller/owner to update rewards parameters\n * @param _self Data pointer to storage\n * @param _name ParameterName name of the parameter\n * @param _value uint256 new value for the parameter\n * @param _rewardsDay uint256 the rewards day\n */\n function updateParameter(\n Data storage _self,\n ParameterName _name,\n uint256 _value,\n uint256 _rewardsDay\n )\n public\n onlyValidFutureRewardsDay(_self, _rewardsDay)\n {\n if (_rewardsDay <= _self.parameters[uint256(_name)].rewardsDay) {\n _self.parameters[uint256(_name)].currentValue = _value;\n _self.parameters[uint256(_name)].rewardsDay = _rewardsDay;\n } else {\n _self.parameters[uint256(_name)].previousValue = _self.parameters[uint256(_name)].currentValue;\n _self.parameters[uint256(_name)].currentValue = _value;\n _self.parameters[uint256(_name)].rewardsDay = _rewardsDay;\n }\n }\n\n /**\n * @dev Allows an application to add/update its details\n * @param _self Data pointer to storage\n * @param _entityType RewardedEntityType either application (0) or validator (1)\n * @param _name bytes32 name of the app\n * @param _rewardsAddress address an address for the app to receive the rewards\n * @param _sidechainAddress address the address used for using the sidechain\n */\n function updateEntity(\n Data storage _self,\n RewardedEntityType _entityType,\n bytes32 _name,\n address _rewardsAddress,\n address _sidechainAddress\n )\n public\n onlyValidAddresses(_rewardsAddress, _sidechainAddress)\n {\n if (_entityType == RewardedEntityType.Application) {\n updateApplication(_self, _name, _rewardsAddress, _sidechainAddress);\n } else {\n updateValidator(_self, _name, _rewardsAddress, _sidechainAddress);\n }\n }\n\n /**\n * @dev Allows an application to add/update its details\n * @param _self Data pointer to storage\n * @param _name bytes32 name of the app\n * @param _rewardsAddress address an address for the app to receive the rewards\n * @param _sidechainAddress address the address used for using the sidechain\n */\n function updateApplication(\n Data storage _self,\n bytes32 _name,\n address _rewardsAddress,\n address _sidechainAddress\n )\n public\n returns (uint256)\n {\n _self.applications[msg.sender].name = _name;\n _self.applications[msg.sender].rewardsAddress = _rewardsAddress;\n _self.applications[msg.sender].sidechainAddress = _sidechainAddress;\n if (!_self.applications[msg.sender].isInitializedState) {\n _self.applicationsList.push(msg.sender);\n _self.applications[msg.sender].isInitializedState = true;\n _self.applications[msg.sender].entityType = RewardedEntityType.Application;\n }\n return uint256(RewardedEntityType.Application);\n }\n\n /**\n * @dev Allows a validator to add/update its details\n * @param _self Data pointer to storage\n * @param _name bytes32 name of the validator\n * @param _rewardsAddress address an address for the validator to receive the rewards\n * @param _sidechainAddress address the address used for using the sidechain\n */\n function updateValidator(\n Data storage _self,\n bytes32 _name,\n address _rewardsAddress,\n address _sidechainAddress\n )\n public\n returns (uint256)\n {\n _self.validators[msg.sender].name = _name;\n _self.validators[msg.sender].rewardsAddress = _rewardsAddress;\n _self.validators[msg.sender].sidechainAddress = _sidechainAddress;\n if (!_self.validators[msg.sender].isInitializedState) {\n _self.validatorsList.push(msg.sender);\n _self.validators[msg.sender].isInitializedState = true;\n _self.validators[msg.sender].entityType = RewardedEntityType.Validator;\n }\n return uint256(RewardedEntityType.Validator);\n }\n\n /**\n * @dev Set new validators list\n * @param _self Data pointer to storage\n * @param _rewardsDay uint256 the rewards day from which the list should be active\n * @param _validators address[] array of validators\n */\n function setValidators(\n Data storage _self,\n uint256 _rewardsDay,\n address[] _validators\n )\n public\n onlyValidFutureRewardsDay(_self, _rewardsDay)\n onlyExistingValidators(_self, _validators)\n {\n // no need to update the previous if its' the first time or second update in the same day\n if (_rewardsDay > _self.selectedValidators.rewardsDay && _self.selectedValidators.currentList.length > 0)\n _updatePreviousEntityList(_self.selectedValidators);\n\n _updateCurrentEntityList(_self.selectedValidators, _validators);\n _self.selectedValidators.rewardsDay = _rewardsDay;\n }\n\n /**\n * @dev Set new applications list\n * @param _self Data pointer to storage\n * @param _rewardsDay uint256 the rewards day from which the list should be active\n * @param _applications address[] array of applications\n */\n function setApplications(\n Data storage _self,\n uint256 _rewardsDay,\n address[] _applications\n )\n public\n onlyValidFutureRewardsDay(_self, _rewardsDay)\n onlyExistingApplications(_self, _applications)\n {\n\n if (_rewardsDay > _self.selectedApplications.rewardsDay && _self.selectedApplications.currentList.length > 0)\n _updatePreviousEntityList(_self.selectedApplications);\n _updateCurrentEntityList(_self.selectedApplications, _applications);\n _self.selectedApplications.rewardsDay = _rewardsDay;\n }\n\n /**\n * @dev Get applications or validators list\n * @param _self Data pointer to storage\n * @param _entityType RewardedEntityType either application (0) or validator (1)\n * @param _rewardsDay uint256 the rewards day to determine which list to get\n */\n function getEntities(\n Data storage _self,\n RewardedEntityType _entityType,\n uint256 _rewardsDay\n )\n public\n view\n returns (address[])\n {\n if (_entityType == RewardedEntityType.Application) {\n if (!_usePreviousSelectedRewardsEntityList(_self.selectedApplications, _rewardsDay)) {\n return _self.selectedApplications.currentList;\n } else {\n return _self.selectedApplications.previousList;\n }\n } else {\n if (!_usePreviousSelectedRewardsEntityList(_self.selectedValidators, _rewardsDay)) {\n return _self.selectedValidators.currentList;\n } else {\n return _self.selectedValidators.previousList;\n }\n }\n }\n\n /**\n * @dev Get which entity list to use. If true use previous if false use current\n * @param _rewardedEntitylist RewardedEntityList pointer to storage\n * @param _rewardsDay uint256 the rewards day to determine which list to get\n */\n function _usePreviousSelectedRewardsEntityList(RewardedEntityList _rewardedEntitylist, uint256 _rewardsDay)\n internal\n pure\n returns (bool)\n {\n if (_rewardsDay >= _rewardedEntitylist.rewardsDay) {\n return false;\n } else {\n return true;\n }\n }\n\n /**\n * @dev Checks how many validators are needed for app rewards\n * @param _self Data pointer to storage\n * @param _rewardsDay uint256 the rewards day\n * @param _currentTotalSupply uint256 current total supply\n */\n function _getMaxAppRewardsDailyAmount(\n Data storage _self,\n uint256 _rewardsDay,\n uint256 _currentTotalSupply\n )\n public\n view\n returns (uint256)\n {\n return ((_self.maxTotalSupply.sub(_currentTotalSupply)).mul(\n getParameterValue(_self, ParameterName.ApplicationRewardsPercent, _rewardsDay)).mul(\n getParameterValue(_self, ParameterName.ApplicationRewardsMaxVariationPercent, _rewardsDay))).div(1e16);\n }\n\n\n /**\n * @dev Checks how many validators are needed for app rewards\n * @param _self Data pointer to storage\n * @param _rewardsDay uint256 the rewards day\n * @param _numOfValidators uint256 number of validators\n */\n function _getValidatorRewardsDailyAmountPerValidator(\n Data storage _self,\n uint256 _rewardsDay,\n uint256 _numOfValidators\n )\n public\n view\n returns (uint256)\n {\n return (((_self.maxTotalSupply.sub(_self.dailyRewards.totalSupply)).mul(\n getParameterValue(_self, ParameterName.ValidatorRewardsPercent, _rewardsDay))).div(1e8)).div(_numOfValidators);\n }\n\n /**\n * @dev Checks if app daily rewards amount is valid\n * @param _self Data pointer to storage\n * @param _applications address[] array of application addresses getting the daily rewards\n * @param _amounts uint256[] array of amounts each app should get\n */\n function _validateSubmittedData(\n Data storage _self,\n address[] _applications,\n uint256[] _amounts\n )\n public\n view\n returns (uint256)\n {\n uint256 sum;\n bool valid = true;\n for (uint256 i = 0; i < _amounts.length; i++) {\n sum = sum.add(_amounts[i]);\n if (!_self.applications[_applications[i]].isInitializedState) valid = false;\n }\n require(\n sum > 0 && valid,\n \"Sum zero or none existing app submitted\"\n );\n return sum;\n }\n\n /**\n * @dev Checks if submitted data matches rewards hash\n * @param _rewardsDay uint256 the rewards day\n * @param _rewardsHash bytes32 hash of the rewards data\n * @param _applications address[] array of application addresses getting the daily rewards\n * @param _amounts uint256[] array of amounts each app should get\n */\n function _rewardsHashIsValid(\n Data storage _self,\n uint256 _rewardsDay,\n bytes32 _rewardsHash,\n address[] _applications,\n uint256[] _amounts\n )\n public\n view\n returns (bool)\n {\n bool nonActiveApplication = false;\n if (!_usePreviousSelectedRewardsEntityList(_self.selectedApplications, _rewardsDay)) {\n for (uint256 i = 0; i < _applications.length; i++) {\n if (!_self.selectedApplications.current[_applications[i]]) {\n nonActiveApplication = true;\n }\n }\n } else {\n for (uint256 j = 0; j < _applications.length; j++) {\n if (!_self.selectedApplications.previous[_applications[j]]) {\n nonActiveApplication = true;\n }\n }\n }\n return\n _applications.length > 0 &&\n _applications.length == _amounts.length &&\n !nonActiveApplication &&\n keccak256(abi.encodePacked(_rewardsDay, _applications.length, _amounts.length, _applications, _amounts)) == _rewardsHash;\n }\n\n /**\n * @dev Checks how many validators are needed for app rewards\n * @param _self Data pointer to storage\n * @param _rewardsDay uint256 the rewards day\n */\n function _requiredValidatorsForValidatorsRewards(Data storage _self, uint256 _rewardsDay)\n public\n view\n returns (uint256)\n {\n if (!_usePreviousSelectedRewardsEntityList(_self.selectedValidators, _rewardsDay)) {\n return _self.selectedValidators.currentList.length;\n } else {\n return _self.selectedValidators.previousList.length;\n }\n }\n\n /**\n * @dev Checks how many validators are needed for app rewards\n * @param _self Data pointer to storage\n * @param _rewardsDay uint256 the rewards day\n */\n function _requiredValidatorsForAppRewards(Data storage _self, uint256 _rewardsDay)\n public\n view\n returns (uint256)\n {\n if (!_usePreviousSelectedRewardsEntityList(_self.selectedValidators, _rewardsDay)) {\n return ((_self.selectedValidators.currentList.length.mul(getParameterValue(_self, ParameterName.ValidatorMajorityPercent, _rewardsDay))).div(1e8)).add(1);\n } else {\n return ((_self.selectedValidators.previousList.length.mul(getParameterValue(_self, ParameterName.ValidatorMajorityPercent, _rewardsDay))).div(1e8)).add(1);\n }\n }\n\n /**\n * @dev Get rewards day from block.timestamp\n * @param _self Data pointer to storage\n */\n function _currentRewardsDay(Data storage _self)\n public\n view\n returns (uint256)\n {\n //the the start time - floor timestamp to previous midnight divided by seconds in a day will give the rewards day number\n if (_self.minSecondsBetweenDays > 0) {\n return (block.timestamp.sub(_self.rewardsStartTimestamp)).div(_self.minSecondsBetweenDays).add(1);\n } else {\n return 0;\n }\n }\n\n /**\n * @dev Update current daily applications list.\n * If new, push.\n * If same size, replace\n * If different size, delete, and then push.\n * @param _rewardedEntitylist RewardedEntityList pointer to storage\n * @param _entities address[] array of entities\n */\n //_updateCurrentEntityList(_rewardedEntitylist, _entities,_rewardedEntityType),\n function _updateCurrentEntityList(\n RewardedEntityList storage _rewardedEntitylist,\n address[] _entities\n )\n internal\n {\n bool emptyCurrentList = _rewardedEntitylist.currentList.length == 0;\n if (!emptyCurrentList && _rewardedEntitylist.currentList.length != _entities.length) {\n _deleteCurrentEntityList(_rewardedEntitylist);\n emptyCurrentList = true;\n }\n\n for (uint256 i = 0; i < _entities.length; i++) {\n if (emptyCurrentList) {\n _rewardedEntitylist.currentList.push(_entities[i]);\n } else {\n _rewardedEntitylist.currentList[i] = _entities[i];\n }\n _rewardedEntitylist.current[_entities[i]] = true;\n }\n }\n\n /**\n * @dev Update previous daily list\n * @param _rewardedEntitylist RewardedEntityList pointer to storage\n */\n function _updatePreviousEntityList(RewardedEntityList storage _rewardedEntitylist)\n internal\n {\n bool emptyPreviousList = _rewardedEntitylist.previousList.length == 0;\n if (\n !emptyPreviousList &&\n _rewardedEntitylist.previousList.length != _rewardedEntitylist.currentList.length\n ) {\n _deletePreviousEntityList(_rewardedEntitylist);\n emptyPreviousList = true;\n }\n for (uint256 i = 0; i < _rewardedEntitylist.currentList.length; i++) {\n if (emptyPreviousList) {\n _rewardedEntitylist.previousList.push(_rewardedEntitylist.currentList[i]);\n } else {\n _rewardedEntitylist.previousList[i] = _rewardedEntitylist.currentList[i];\n }\n _rewardedEntitylist.previous[_rewardedEntitylist.currentList[i]] = true;\n }\n }\n\n /**\n * @dev Delete existing values from the current list\n * @param _rewardedEntitylist RewardedEntityList pointer to storage\n */\n function _deleteCurrentEntityList(RewardedEntityList storage _rewardedEntitylist)\n internal\n {\n for (uint256 i = 0; i < _rewardedEntitylist.currentList.length ; i++) {\n delete _rewardedEntitylist.current[_rewardedEntitylist.currentList[i]];\n }\n delete _rewardedEntitylist.currentList;\n }\n\n /**\n * @dev Delete existing values from the previous applications list\n * @param _rewardedEntitylist RewardedEntityList pointer to storage\n */\n function _deletePreviousEntityList(RewardedEntityList storage _rewardedEntitylist)\n internal\n {\n for (uint256 i = 0; i < _rewardedEntitylist.previousList.length ; i++) {\n delete _rewardedEntitylist.previous[_rewardedEntitylist.previousList[i]];\n }\n delete _rewardedEntitylist.previousList;\n }\n\n /**\n * @dev Deletes rewards day submission data\n * @param _self Data pointer to storage\n * @param _rewardsHash bytes32 rewardsHash\n */\n function _resetDailyRewards(\n Data storage _self,\n bytes32 _rewardsHash\n )\n public\n {\n _self.lastValidatorsRewardsDay = _self.dailyRewards.lastApplicationsRewardsDay;\n for (uint256 j = 0; j < _self.dailyRewards.submissions[_rewardsHash].validatorsList.length; j++) {\n delete(\n _self.dailyRewards.submissions[_rewardsHash].validators[_self.dailyRewards.submissions[_rewardsHash].validatorsList[j]]\n );\n }\n delete _self.dailyRewards.submissions[_rewardsHash].validatorsList;\n _self.dailyRewards.submissions[_rewardsHash].confirmations = 0;\n _self.dailyRewards.submissions[_rewardsHash].finalizedStatus = 0;\n _self.dailyRewards.submissions[_rewardsHash].isInitializedState = false;\n }\n}", - "sourcePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsRewardsLib.sol", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.4.25+commit.59dbf8f1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{},\"title\":\"Props Rewards Library\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/george/Development/props/props-token-distribution/contracts/token/PropsRewardsLib.sol\":\"PropsRewardsLib\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/george/Development/props/props-token-distribution/contracts/token/PropsRewardsLib.sol\":{\"keccak256\":\"0x11a48db38730e0f1ad3c9384b8809dec94c6638123f0f469fc41e77cb5361001\",\"urls\":[\"bzzr://5951643984121b932ed18479eb3b0d2f34d11cd31ff230e779249eba30b3b01d\"]},\"openzeppelin-eth/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xca27427124232a675642ba45303b78d5a36e1207ee222030ef249e11eba5a224\",\"urls\":[\"bzzr://013c67962737acca577ecd24e6b6c80f85b05fd03c1c75ab68f65a084f4b4cfd\"]}},\"version\":1}", + "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820fcee4aabeb0e4689f9cb574729859976bbde43075802dd3a7ae987df58dcd57d0029", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820fcee4aabeb0e4689f9cb574729859976bbde43075802dd3a7ae987df58dcd57d0029", + "sourceMap": "281:3063:3:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "281:3063:3:-;;;;;;;;", + "source": "pragma solidity ^0.4.24;\n/*\n THIS CONTRACT IS OBSOLETE AND REMAINS ONLY FOR UPGRADABILITY/STORAGE CONSIDERATIONS\n*/\nimport \"openzeppelin-eth/contracts/math/SafeMath.sol\";\n\n/**\n * @title Props Rewards Library\n * @dev Library to manage application and validators and parameters\n **/\nlibrary PropsRewardsLib {\n using SafeMath for uint256;\n /*\n * Events\n */\n\n /*\n * Storage\n */\n\n // The various parameters used by the contract\n enum ParameterName { ApplicationRewardsPercent, ApplicationRewardsMaxVariationPercent, ValidatorMajorityPercent, ValidatorRewardsPercent}\n enum RewardedEntityType { Application, Validator }\n\n // Represents a parameter current, previous and time of change\n struct Parameter {\n uint256 currentValue; // current value in Pphm valid after timestamp\n uint256 previousValue; // previous value in Pphm for use before timestamp\n uint256 rewardsDay; // timestamp of when the value was updated\n }\n // Represents application details\n struct RewardedEntity {\n bytes32 name; // Application name\n address rewardsAddress; // address where rewards will be minted to\n address sidechainAddress; // address used on the sidechain\n bool isInitializedState; // A way to check if there's something in the map and whether it is already added to the list\n RewardedEntityType entityType; // Type of rewarded entity\n }\n\n // Represents validators current and previous lists\n struct RewardedEntityList {\n mapping (address => bool) current;\n mapping (address => bool) previous;\n address[] currentList;\n address[] previousList;\n uint256 rewardsDay;\n }\n\n // Represents daily rewards submissions and confirmations\n struct DailyRewards {\n mapping (bytes32 => Submission) submissions;\n bytes32[] submittedRewardsHashes;\n uint256 totalSupply;\n bytes32 lastConfirmedRewardsHash;\n uint256 lastApplicationsRewardsDay;\n }\n\n struct Submission {\n mapping (address => bool) validators;\n address[] validatorsList;\n uint256 confirmations;\n uint256 finalizedStatus; // 0 - initialized, 1 - finalized\n bool isInitializedState; // A way to check if there's something in the map and whether it is already added to the list\n }\n\n\n // represent the storage structures\n struct Data {\n // applications data\n mapping (address => RewardedEntity) applications;\n address[] applicationsList;\n // validators data\n mapping (address => RewardedEntity) validators;\n address[] validatorsList;\n // adjustable parameters data\n mapping (uint256 => Parameter) parameters; // uint256 is the parameter enum index\n // the participating validators\n RewardedEntityList selectedValidators;\n // the participating applications\n RewardedEntityList selectedApplications;\n // daily rewards submission data\n DailyRewards dailyRewards;\n uint256 minSecondsBetweenDays;\n uint256 rewardsStartTimestamp;\n uint256 maxTotalSupply;\n uint256 lastValidatorsRewardsDay;\n } \n}", + "sourcePath": "/home/george/Development/props/props-token-distribution/contracts/token/PropsRewardsLib.sol", "ast": { - "absolutePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsRewardsLib.sol", + "absolutePath": "/home/george/Development/props/props-token-distribution/contracts/token/PropsRewardsLib.sol", "exportedSymbols": { "PropsRewardsLib": [ - 3297 + 484 ] }, - "id": 3298, + "id": 485, "nodeType": "SourceUnit", "nodes": [ { - "id": 1504, + "id": 375, "literals": [ "solidity", "^", @@ -543,11 +32,11 @@ { "absolutePath": "openzeppelin-eth/contracts/math/SafeMath.sol", "file": "openzeppelin-eth/contracts/math/SafeMath.sol", - "id": 1505, + "id": 376, "nodeType": "ImportDirective", - "scope": 3298, - "sourceUnit": 3590, - "src": "26:54:3", + "scope": 485, + "sourceUnit": 777, + "src": "116:54:3", "symbolAliases": [], "unitAlias": "" }, @@ -557,34 +46,34 @@ "contractKind": "library", "documentation": "@title Props Rewards Library\n@dev Library to manage application and validators and parameters*", "fullyImplemented": true, - "id": 3297, + "id": 484, "linearizedBaseContracts": [ - 3297 + 484 ], "name": "PropsRewardsLib", "nodeType": "ContractDefinition", "nodes": [ { - "id": 1508, + "id": 379, "libraryName": { "contractScope": null, - "id": 1506, + "id": 377, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3589, - "src": "227:8:3", + "referencedDeclaration": 776, + "src": "317:8:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3589", + "typeIdentifier": "t_contract$_SafeMath_$776", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "221:27:3", + "src": "311:27:3", "typeName": { - "id": 1507, + "id": 378, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "240:7:3", + "src": "330:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -593,69 +82,69 @@ }, { "canonicalName": "PropsRewardsLib.ParameterName", - "id": 1513, + "id": 384, "members": [ { - "id": 1509, + "id": 380, "name": "ApplicationRewardsPercent", "nodeType": "EnumValue", - "src": "384:25:3" + "src": "474:25:3" }, { - "id": 1510, + "id": 381, "name": "ApplicationRewardsMaxVariationPercent", "nodeType": "EnumValue", - "src": "411:37:3" + "src": "501:37:3" }, { - "id": 1511, + "id": 382, "name": "ValidatorMajorityPercent", "nodeType": "EnumValue", - "src": "450:24:3" + "src": "540:24:3" }, { - "id": 1512, + "id": 383, "name": "ValidatorRewardsPercent", "nodeType": "EnumValue", - "src": "476:23:3" + "src": "566:23:3" } ], "name": "ParameterName", "nodeType": "EnumDefinition", - "src": "363:137:3" + "src": "453:137:3" }, { "canonicalName": "PropsRewardsLib.RewardedEntityType", - "id": 1516, + "id": 387, "members": [ { - "id": 1514, + "id": 385, "name": "Application", "nodeType": "EnumValue", - "src": "531:11:3" + "src": "621:11:3" }, { - "id": 1515, + "id": 386, "name": "Validator", "nodeType": "EnumValue", - "src": "544:9:3" + "src": "634:9:3" } ], "name": "RewardedEntityType", "nodeType": "EnumDefinition", - "src": "505:50:3" + "src": "595:50:3" }, { "canonicalName": "PropsRewardsLib.Parameter", - "id": 1523, + "id": 394, "members": [ { "constant": false, - "id": 1518, + "id": 389, "name": "currentValue", "nodeType": "VariableDeclaration", - "scope": 1523, - "src": "655:20:3", + "scope": 394, + "src": "745:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -663,10 +152,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1517, + "id": 388, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "655:7:3", + "src": "745:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -677,11 +166,11 @@ }, { "constant": false, - "id": 1520, + "id": 391, "name": "previousValue", "nodeType": "VariableDeclaration", - "scope": 1523, - "src": "750:21:3", + "scope": 394, + "src": "840:21:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -689,10 +178,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1519, + "id": 390, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "750:7:3", + "src": "840:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -703,11 +192,11 @@ }, { "constant": false, - "id": 1522, + "id": 393, "name": "rewardsDay", "nodeType": "VariableDeclaration", - "scope": 1523, - "src": "849:18:3", + "scope": 394, + "src": "939:18:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -715,10 +204,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1521, + "id": 392, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "849:7:3", + "src": "939:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -730,21 +219,21 @@ ], "name": "Parameter", "nodeType": "StructDefinition", - "scope": 3297, - "src": "628:309:3", + "scope": 484, + "src": "718:309:3", "visibility": "public" }, { "canonicalName": "PropsRewardsLib.RewardedEntity", - "id": 1534, + "id": 405, "members": [ { "constant": false, - "id": 1525, + "id": 396, "name": "name", "nodeType": "VariableDeclaration", - "scope": 1534, - "src": "1012:12:3", + "scope": 405, + "src": "1102:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -752,10 +241,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1524, + "id": 395, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1012:7:3", + "src": "1102:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -766,11 +255,11 @@ }, { "constant": false, - "id": 1527, + "id": 398, "name": "rewardsAddress", "nodeType": "VariableDeclaration", - "scope": 1534, - "src": "1080:22:3", + "scope": 405, + "src": "1170:22:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -778,10 +267,10 @@ "typeString": "address" }, "typeName": { - "id": 1526, + "id": 397, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1080:7:3", + "src": "1170:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -792,11 +281,11 @@ }, { "constant": false, - "id": 1529, + "id": 400, "name": "sidechainAddress", "nodeType": "VariableDeclaration", - "scope": 1534, - "src": "1171:24:3", + "scope": 405, + "src": "1261:24:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -804,10 +293,10 @@ "typeString": "address" }, "typeName": { - "id": 1528, + "id": 399, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1171:7:3", + "src": "1261:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -818,11 +307,11 @@ }, { "constant": false, - "id": 1531, + "id": 402, "name": "isInitializedState", "nodeType": "VariableDeclaration", - "scope": 1534, - "src": "1252:23:3", + "scope": 405, + "src": "1342:23:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -830,10 +319,10 @@ "typeString": "bool" }, "typeName": { - "id": 1530, + "id": 401, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1252:4:3", + "src": "1342:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -844,26 +333,26 @@ }, { "constant": false, - "id": 1533, + "id": 404, "name": "entityType", "nodeType": "VariableDeclaration", - "scope": 1534, - "src": "1394:29:3", + "scope": 405, + "src": "1484:29:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", + "typeIdentifier": "t_enum$_RewardedEntityType_$387", "typeString": "enum PropsRewardsLib.RewardedEntityType" }, "typeName": { "contractScope": null, - "id": 1532, + "id": 403, "name": "RewardedEntityType", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1516, - "src": "1394:18:3", + "referencedDeclaration": 387, + "src": "1484:18:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", + "typeIdentifier": "t_enum$_RewardedEntityType_$387", "typeString": "enum PropsRewardsLib.RewardedEntityType" } }, @@ -873,21 +362,21 @@ ], "name": "RewardedEntity", "nodeType": "StructDefinition", - "scope": 3297, - "src": "980:486:3", + "scope": 484, + "src": "1070:486:3", "visibility": "public" }, { "canonicalName": "PropsRewardsLib.RewardedEntityList", - "id": 1551, + "id": 422, "members": [ { "constant": false, - "id": 1538, + "id": 409, "name": "current", "nodeType": "VariableDeclaration", - "scope": 1551, - "src": "1564:33:3", + "scope": 422, + "src": "1654:33:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -895,28 +384,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 1537, + "id": 408, "keyType": { - "id": 1535, + "id": 406, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1573:7:3", + "src": "1663:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1564:25:3", + "src": "1654:25:3", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 1536, + "id": 407, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1584:4:3", + "src": "1674:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -928,11 +417,11 @@ }, { "constant": false, - "id": 1542, + "id": 413, "name": "previous", "nodeType": "VariableDeclaration", - "scope": 1551, - "src": "1607:34:3", + "scope": 422, + "src": "1697:34:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -940,28 +429,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 1541, + "id": 412, "keyType": { - "id": 1539, + "id": 410, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1616:7:3", + "src": "1706:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1607:25:3", + "src": "1697:25:3", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 1540, + "id": 411, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1627:4:3", + "src": "1717:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -973,11 +462,11 @@ }, { "constant": false, - "id": 1545, + "id": 416, "name": "currentList", "nodeType": "VariableDeclaration", - "scope": 1551, - "src": "1651:21:3", + "scope": 422, + "src": "1741:21:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -986,19 +475,19 @@ }, "typeName": { "baseType": { - "id": 1543, + "id": 414, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1651:7:3", + "src": "1741:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1544, + "id": 415, "length": null, "nodeType": "ArrayTypeName", - "src": "1651:9:3", + "src": "1741:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -1009,11 +498,11 @@ }, { "constant": false, - "id": 1548, + "id": 419, "name": "previousList", "nodeType": "VariableDeclaration", - "scope": 1551, - "src": "1682:22:3", + "scope": 422, + "src": "1772:22:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1022,19 +511,19 @@ }, "typeName": { "baseType": { - "id": 1546, + "id": 417, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1682:7:3", + "src": "1772:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1547, + "id": 418, "length": null, "nodeType": "ArrayTypeName", - "src": "1682:9:3", + "src": "1772:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -1045,11 +534,11 @@ }, { "constant": false, - "id": 1550, + "id": 421, "name": "rewardsDay", "nodeType": "VariableDeclaration", - "scope": 1551, - "src": "1714:18:3", + "scope": 422, + "src": "1804:18:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1057,10 +546,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1549, + "id": 420, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1714:7:3", + "src": "1804:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1072,54 +561,54 @@ ], "name": "RewardedEntityList", "nodeType": "StructDefinition", - "scope": 3297, - "src": "1528:211:3", + "scope": 484, + "src": "1618:211:3", "visibility": "public" }, { "canonicalName": "PropsRewardsLib.DailyRewards", - "id": 1565, + "id": 436, "members": [ { "constant": false, - "id": 1555, + "id": 426, "name": "submissions", "nodeType": "VariableDeclaration", - "scope": 1565, - "src": "1837:43:3", + "scope": 436, + "src": "1927:43:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$450_storage_$", "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission)" }, "typeName": { - "id": 1554, + "id": 425, "keyType": { - "id": 1552, + "id": 423, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1846:7:3", + "src": "1936:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "1837:31:3", + "src": "1927:31:3", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$450_storage_$", "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission)" }, "valueType": { "contractScope": null, - "id": 1553, + "id": 424, "name": "Submission", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1579, - "src": "1857:10:3", + "referencedDeclaration": 450, + "src": "1947:10:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage_ptr", + "typeIdentifier": "t_struct$_Submission_$450_storage_ptr", "typeString": "struct PropsRewardsLib.Submission" } } @@ -1129,11 +618,11 @@ }, { "constant": false, - "id": 1558, + "id": 429, "name": "submittedRewardsHashes", "nodeType": "VariableDeclaration", - "scope": 1565, - "src": "1890:32:3", + "scope": 436, + "src": "1980:32:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1142,19 +631,19 @@ }, "typeName": { "baseType": { - "id": 1556, + "id": 427, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1890:7:3", + "src": "1980:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1557, + "id": 428, "length": null, "nodeType": "ArrayTypeName", - "src": "1890:9:3", + "src": "1980:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -1165,11 +654,11 @@ }, { "constant": false, - "id": 1560, + "id": 431, "name": "totalSupply", "nodeType": "VariableDeclaration", - "scope": 1565, - "src": "1932:19:3", + "scope": 436, + "src": "2022:19:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1177,10 +666,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1559, + "id": 430, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1932:7:3", + "src": "2022:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1191,11 +680,11 @@ }, { "constant": false, - "id": 1562, + "id": 433, "name": "lastConfirmedRewardsHash", "nodeType": "VariableDeclaration", - "scope": 1565, - "src": "1961:32:3", + "scope": 436, + "src": "2051:32:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1203,10 +692,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1561, + "id": 432, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1961:7:3", + "src": "2051:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1217,11 +706,11 @@ }, { "constant": false, - "id": 1564, + "id": 435, "name": "lastApplicationsRewardsDay", "nodeType": "VariableDeclaration", - "scope": 1565, - "src": "2003:34:3", + "scope": 436, + "src": "2093:34:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1229,10 +718,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1563, + "id": 434, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2003:7:3", + "src": "2093:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1244,21 +733,21 @@ ], "name": "DailyRewards", "nodeType": "StructDefinition", - "scope": 3297, - "src": "1807:237:3", + "scope": 484, + "src": "1897:237:3", "visibility": "public" }, { "canonicalName": "PropsRewardsLib.Submission", - "id": 1579, + "id": 450, "members": [ { "constant": false, - "id": 1569, + "id": 440, "name": "validators", "nodeType": "VariableDeclaration", - "scope": 1579, - "src": "2078:36:3", + "scope": 450, + "src": "2168:36:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1266,28 +755,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 1568, + "id": 439, "keyType": { - "id": 1566, + "id": 437, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2087:7:3", + "src": "2177:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "2078:25:3", + "src": "2168:25:3", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 1567, + "id": 438, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2098:4:3", + "src": "2188:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1299,11 +788,11 @@ }, { "constant": false, - "id": 1572, + "id": 443, "name": "validatorsList", "nodeType": "VariableDeclaration", - "scope": 1579, - "src": "2124:24:3", + "scope": 450, + "src": "2214:24:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1312,19 +801,19 @@ }, "typeName": { "baseType": { - "id": 1570, + "id": 441, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2124:7:3", + "src": "2214:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1571, + "id": 442, "length": null, "nodeType": "ArrayTypeName", - "src": "2124:9:3", + "src": "2214:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -1335,11 +824,11 @@ }, { "constant": false, - "id": 1574, + "id": 445, "name": "confirmations", "nodeType": "VariableDeclaration", - "scope": 1579, - "src": "2158:21:3", + "scope": 450, + "src": "2248:21:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1347,10 +836,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1573, + "id": 444, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2158:7:3", + "src": "2248:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1361,11 +850,11 @@ }, { "constant": false, - "id": 1576, + "id": 447, "name": "finalizedStatus", "nodeType": "VariableDeclaration", - "scope": 1579, - "src": "2189:23:3", + "scope": 450, + "src": "2279:23:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1373,10 +862,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1575, + "id": 446, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2189:7:3", + "src": "2279:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1387,11 +876,11 @@ }, { "constant": false, - "id": 1578, + "id": 449, "name": "isInitializedState", "nodeType": "VariableDeclaration", - "scope": 1579, - "src": "2270:23:3", + "scope": 450, + "src": "2360:23:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1399,10 +888,10 @@ "typeString": "bool" }, "typeName": { - "id": 1577, + "id": 448, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2270:4:3", + "src": "2360:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1414,54 +903,54 @@ ], "name": "Submission", "nodeType": "StructDefinition", - "scope": 3297, - "src": "2050:358:3", + "scope": 484, + "src": "2140:358:3", "visibility": "public" }, { "canonicalName": "PropsRewardsLib.Data", - "id": 1612, + "id": 483, "members": [ { "constant": false, - "id": 1583, + "id": 454, "name": "applications", "nodeType": "VariableDeclaration", - "scope": 1612, - "src": "2506:48:3", + "scope": 483, + "src": "2596:48:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$405_storage_$", "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity)" }, "typeName": { - "id": 1582, + "id": 453, "keyType": { - "id": 1580, + "id": 451, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2515:7:3", + "src": "2605:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "2506:35:3", + "src": "2596:35:3", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$405_storage_$", "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity)" }, "valueType": { "contractScope": null, - "id": 1581, + "id": 452, "name": "RewardedEntity", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1534, - "src": "2526:14:3", + "referencedDeclaration": 405, + "src": "2616:14:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage_ptr", + "typeIdentifier": "t_struct$_RewardedEntity_$405_storage_ptr", "typeString": "struct PropsRewardsLib.RewardedEntity" } } @@ -1471,11 +960,11 @@ }, { "constant": false, - "id": 1586, + "id": 457, "name": "applicationsList", "nodeType": "VariableDeclaration", - "scope": 1612, - "src": "2564:26:3", + "scope": 483, + "src": "2654:26:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1484,19 +973,19 @@ }, "typeName": { "baseType": { - "id": 1584, + "id": 455, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2564:7:3", + "src": "2654:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1585, + "id": 456, "length": null, "nodeType": "ArrayTypeName", - "src": "2564:9:3", + "src": "2654:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -1507,44 +996,44 @@ }, { "constant": false, - "id": 1590, + "id": 461, "name": "validators", "nodeType": "VariableDeclaration", - "scope": 1612, - "src": "2627:46:3", + "scope": 483, + "src": "2717:46:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$405_storage_$", "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity)" }, "typeName": { - "id": 1589, + "id": 460, "keyType": { - "id": 1587, + "id": 458, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2636:7:3", + "src": "2726:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "2627:35:3", + "src": "2717:35:3", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$405_storage_$", "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity)" }, "valueType": { "contractScope": null, - "id": 1588, + "id": 459, "name": "RewardedEntity", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1534, - "src": "2647:14:3", + "referencedDeclaration": 405, + "src": "2737:14:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage_ptr", + "typeIdentifier": "t_struct$_RewardedEntity_$405_storage_ptr", "typeString": "struct PropsRewardsLib.RewardedEntity" } } @@ -1554,11 +1043,11 @@ }, { "constant": false, - "id": 1593, + "id": 464, "name": "validatorsList", "nodeType": "VariableDeclaration", - "scope": 1612, - "src": "2683:24:3", + "scope": 483, + "src": "2773:24:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1567,19 +1056,19 @@ }, "typeName": { "baseType": { - "id": 1591, + "id": 462, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2683:7:3", + "src": "2773:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1592, + "id": 463, "length": null, "nodeType": "ArrayTypeName", - "src": "2683:9:3", + "src": "2773:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -1590,44 +1079,44 @@ }, { "constant": false, - "id": 1597, + "id": 468, "name": "parameters", "nodeType": "VariableDeclaration", - "scope": 1612, - "src": "2755:41:3", + "scope": 483, + "src": "2845:41:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$394_storage_$", "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter)" }, "typeName": { - "id": 1596, + "id": 467, "keyType": { - "id": 1594, + "id": 465, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2764:7:3", + "src": "2854:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", - "src": "2755:30:3", + "src": "2845:30:3", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$394_storage_$", "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter)" }, "valueType": { "contractScope": null, - "id": 1595, + "id": 466, "name": "Parameter", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1523, - "src": "2775:9:3", + "referencedDeclaration": 394, + "src": "2865:9:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage_ptr", + "typeIdentifier": "t_struct$_Parameter_$394_storage_ptr", "typeString": "struct PropsRewardsLib.Parameter" } } @@ -1637,26 +1126,26 @@ }, { "constant": false, - "id": 1599, + "id": 470, "name": "selectedValidators", "nodeType": "VariableDeclaration", - "scope": 1612, - "src": "2885:37:3", + "scope": 483, + "src": "2975:37:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", + "typeIdentifier": "t_struct$_RewardedEntityList_$422_storage_ptr", "typeString": "struct PropsRewardsLib.RewardedEntityList" }, "typeName": { "contractScope": null, - "id": 1598, + "id": 469, "name": "RewardedEntityList", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1551, - "src": "2885:18:3", + "referencedDeclaration": 422, + "src": "2975:18:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", + "typeIdentifier": "t_struct$_RewardedEntityList_$422_storage_ptr", "typeString": "struct PropsRewardsLib.RewardedEntityList" } }, @@ -1665,26 +1154,26 @@ }, { "constant": false, - "id": 1601, + "id": 472, "name": "selectedApplications", "nodeType": "VariableDeclaration", - "scope": 1612, - "src": "2974:39:3", + "scope": 483, + "src": "3064:39:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", + "typeIdentifier": "t_struct$_RewardedEntityList_$422_storage_ptr", "typeString": "struct PropsRewardsLib.RewardedEntityList" }, "typeName": { "contractScope": null, - "id": 1600, + "id": 471, "name": "RewardedEntityList", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1551, - "src": "2974:18:3", + "referencedDeclaration": 422, + "src": "3064:18:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", + "typeIdentifier": "t_struct$_RewardedEntityList_$422_storage_ptr", "typeString": "struct PropsRewardsLib.RewardedEntityList" } }, @@ -1693,26 +1182,26 @@ }, { "constant": false, - "id": 1603, + "id": 474, "name": "dailyRewards", "nodeType": "VariableDeclaration", - "scope": 1612, - "src": "3064:25:3", + "scope": 483, + "src": "3154:25:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage_ptr", + "typeIdentifier": "t_struct$_DailyRewards_$436_storage_ptr", "typeString": "struct PropsRewardsLib.DailyRewards" }, "typeName": { "contractScope": null, - "id": 1602, + "id": 473, "name": "DailyRewards", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1565, - "src": "3064:12:3", + "referencedDeclaration": 436, + "src": "3154:12:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage_ptr", + "typeIdentifier": "t_struct$_DailyRewards_$436_storage_ptr", "typeString": "struct PropsRewardsLib.DailyRewards" } }, @@ -1721,11 +1210,11 @@ }, { "constant": false, - "id": 1605, + "id": 476, "name": "minSecondsBetweenDays", "nodeType": "VariableDeclaration", - "scope": 1612, - "src": "3099:29:3", + "scope": 483, + "src": "3189:29:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1733,10 +1222,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1604, + "id": 475, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3099:7:3", + "src": "3189:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1747,11 +1236,11 @@ }, { "constant": false, - "id": 1607, + "id": 478, "name": "rewardsStartTimestamp", "nodeType": "VariableDeclaration", - "scope": 1612, - "src": "3138:29:3", + "scope": 483, + "src": "3228:29:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1759,10 +1248,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1606, + "id": 477, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3138:7:3", + "src": "3228:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1773,11 +1262,11 @@ }, { "constant": false, - "id": 1609, + "id": 480, "name": "maxTotalSupply", "nodeType": "VariableDeclaration", - "scope": 1612, - "src": "3177:22:3", + "scope": 483, + "src": "3267:22:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1785,10 +1274,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1608, + "id": 479, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3177:7:3", + "src": "3267:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1799,11 +1288,11 @@ }, { "constant": false, - "id": 1611, + "id": 482, "name": "lastValidatorsRewardsDay", "nodeType": "VariableDeclaration", - "scope": 1612, - "src": "3209:32:3", + "scope": 483, + "src": "3299:32:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1811,10 +1300,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1610, + "id": 481, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3209:7:3", + "src": "3299:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1826,45134 +1315,1395 @@ ], "name": "Data", "nodeType": "StructDefinition", - "scope": 3297, - "src": "2455:793:3", + "scope": 484, + "src": "2545:793:3", "visibility": "public" + } + ], + "scope": 485, + "src": "281:3063:3" + } + ], + "src": "0:3344:3" + }, + "legacyAST": { + "attributes": { + "absolutePath": "/home/george/Development/props/props-token-distribution/contracts/token/PropsRewardsLib.sol", + "exportedSymbols": { + "PropsRewardsLib": [ + 484 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ] + }, + "id": 375, + "name": "PragmaDirective", + "src": "0:24:3" + }, + { + "attributes": { + "SourceUnit": 777, + "absolutePath": "openzeppelin-eth/contracts/math/SafeMath.sol", + "file": "openzeppelin-eth/contracts/math/SafeMath.sol", + "scope": 485, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 376, + "name": "ImportDirective", + "src": "116:54:3" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "documentation": "@title Props Rewards Library\n@dev Library to manage application and validators and parameters*", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 484 + ], + "name": "PropsRewardsLib", + "scope": 485 + }, + "children": [ + { + "children": [ + { + "attributes": { + "contractScope": null, + "name": "SafeMath", + "referencedDeclaration": 776, + "type": "library SafeMath" + }, + "id": 377, + "name": "UserDefinedTypeName", + "src": "317:8:3" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 378, + "name": "ElementaryTypeName", + "src": "330:7:3" + } + ], + "id": 379, + "name": "UsingForDirective", + "src": "311:27:3" }, { - "body": { - "id": 1633, - "nodeType": "Block", - "src": "3381:180:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "3412:68:3", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1619, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1614, - "src": "3413:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1620, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "3413:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1621, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "3413:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 1623, - "indexExpression": { - "argumentTypes": null, - "id": 1622, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1616, - "src": "3444:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3413:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 1624, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1569, - "src": "3413:55:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 1627, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1625, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "3469:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3469:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3413:67:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d757374206265206f6e65207375626d697373696f6e207065722076616c696461746f72", - "id": 1629, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3494:38:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_995d3cc26ab8d9cd5aaa6c38fe306e0a7f361278803558761087c8c295ab0274", - "typeString": "literal_string \"Must be one submission per validator\"" - }, - "value": "Must be one submission per validator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_995d3cc26ab8d9cd5aaa6c38fe306e0a7f361278803558761087c8c295ab0274", - "typeString": "literal_string \"Must be one submission per validator\"" - } - ], - "id": 1618, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "3391:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3391:151:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1631, - "nodeType": "ExpressionStatement", - "src": "3391:151:3" + "attributes": { + "canonicalName": "PropsRewardsLib.ParameterName", + "name": "ParameterName" + }, + "children": [ + { + "attributes": { + "name": "ApplicationRewardsPercent" + }, + "id": 380, + "name": "EnumValue", + "src": "474:25:3" + }, + { + "attributes": { + "name": "ApplicationRewardsMaxVariationPercent" + }, + "id": 381, + "name": "EnumValue", + "src": "501:37:3" + }, + { + "attributes": { + "name": "ValidatorMajorityPercent" + }, + "id": 382, + "name": "EnumValue", + "src": "540:24:3" + }, + { + "attributes": { + "name": "ValidatorRewardsPercent" + }, + "id": 383, + "name": "EnumValue", + "src": "566:23:3" + } + ], + "id": 384, + "name": "EnumDefinition", + "src": "453:137:3" + }, + { + "attributes": { + "canonicalName": "PropsRewardsLib.RewardedEntityType", + "name": "RewardedEntityType" + }, + "children": [ + { + "attributes": { + "name": "Application" + }, + "id": 385, + "name": "EnumValue", + "src": "621:11:3" + }, + { + "attributes": { + "name": "Validator" }, - { - "id": 1632, - "nodeType": "PlaceholderStatement", - "src": "3553:1:3" - } - ] + "id": 386, + "name": "EnumValue", + "src": "634:9:3" + } + ], + "id": 387, + "name": "EnumDefinition", + "src": "595:50:3" + }, + { + "attributes": { + "canonicalName": "PropsRewardsLib.Parameter", + "name": "Parameter", + "scope": 484, + "visibility": "public" }, - "documentation": null, - "id": 1634, - "name": "onlyOneConfirmationPerValidatorPerRewardsHash", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1617, - "nodeType": "ParameterList", - "parameters": [ - { + "children": [ + { + "attributes": { "constant": false, - "id": 1614, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 1634, - "src": "3339:18:3", + "name": "currentValue", + "scope": 394, "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 1613, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "3339:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, + "storageLocation": "default", + "type": "uint256", "value": null, "visibility": "internal" }, - { + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 388, + "name": "ElementaryTypeName", + "src": "745:7:3" + } + ], + "id": 389, + "name": "VariableDeclaration", + "src": "745:20:3" + }, + { + "attributes": { "constant": false, - "id": 1616, - "name": "_rewardsHash", - "nodeType": "VariableDeclaration", - "scope": 1634, - "src": "3359:20:3", + "name": "previousValue", + "scope": 394, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1615, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3359:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, + "type": "uint256", "value": null, "visibility": "internal" - } - ], - "src": "3338:42:3" - }, - "src": "3284:277:3", - "visibility": "internal" - }, - { - "body": { - "id": 1666, - "nodeType": "Block", - "src": "3642:231:3", - "statements": [ - { - "body": { - "id": 1663, - "nodeType": "Block", - "src": "3699:157:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1653, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1636, - "src": "3738:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1654, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1583, - "src": "3738:18:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 1658, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1655, - "name": "_entities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1639, - "src": "3757:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1657, - "indexExpression": { - "argumentTypes": null, - "id": 1656, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1642, - "src": "3767:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3757:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3738:32:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 1659, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isInitializedState", - "nodeType": "MemberAccess", - "referencedDeclaration": 1531, - "src": "3738:51:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4170706c69636174696f6e206d757374206578697374", - "id": 1660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3807:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8c0957eab980bb2899afb66a4949c6d6570f9cad158fc6bacaf11f991ecbf4a2", - "typeString": "literal_string \"Application must exist\"" - }, - "value": "Application must exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8c0957eab980bb2899afb66a4949c6d6570f9cad158fc6bacaf11f991ecbf4a2", - "typeString": "literal_string \"Application must exist\"" - } - ], - "id": 1652, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "3713:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3713:132:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1662, - "nodeType": "ExpressionStatement", - "src": "3713:132:3" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1645, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1642, - "src": "3672:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1646, - "name": "_entities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1639, - "src": "3676:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3676:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3672:20:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1664, - "initializationExpression": { - "assignments": [ - 1642 - ], - "declarations": [ - { - "constant": false, - "id": 1642, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1667, - "src": "3657:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3657:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1644, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3669:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "3657:13:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3694:3:3", - "subExpression": { - "argumentTypes": null, - "id": 1649, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1642, - "src": "3694:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" }, - "id": 1651, - "nodeType": "ExpressionStatement", - "src": "3694:3:3" - }, - "nodeType": "ForStatement", - "src": "3652:204:3" + "id": 390, + "name": "ElementaryTypeName", + "src": "840:7:3" + } + ], + "id": 391, + "name": "VariableDeclaration", + "src": "840:21:3" + }, + { + "attributes": { + "constant": false, + "name": "rewardsDay", + "scope": 394, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" }, - { - "id": 1665, - "nodeType": "PlaceholderStatement", - "src": "3865:1:3" - } - ] + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 392, + "name": "ElementaryTypeName", + "src": "939:7:3" + } + ], + "id": 393, + "name": "VariableDeclaration", + "src": "939:18:3" + } + ], + "id": 394, + "name": "StructDefinition", + "src": "718:309:3" + }, + { + "attributes": { + "canonicalName": "PropsRewardsLib.RewardedEntity", + "name": "RewardedEntity", + "scope": 484, + "visibility": "public" }, - "documentation": null, - "id": 1667, - "name": "onlyExistingApplications", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1640, - "nodeType": "ParameterList", - "parameters": [ - { + "children": [ + { + "attributes": { "constant": false, - "id": 1636, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 1667, - "src": "3601:18:3", + "name": "name", + "scope": 405, "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 1635, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "3601:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, + "storageLocation": "default", + "type": "bytes32", "value": null, "visibility": "internal" }, - { + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 395, + "name": "ElementaryTypeName", + "src": "1102:7:3" + } + ], + "id": 396, + "name": "VariableDeclaration", + "src": "1102:12:3" + }, + { + "attributes": { "constant": false, - "id": 1639, - "name": "_entities", - "nodeType": "VariableDeclaration", - "scope": 1667, - "src": "3621:19:3", + "name": "rewardsAddress", + "scope": 405, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1637, + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3621:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "type": "address" }, - "id": 1638, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3621:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, + "id": 397, + "name": "ElementaryTypeName", + "src": "1170:7:3" + } + ], + "id": 398, + "name": "VariableDeclaration", + "src": "1170:22:3" + }, + { + "attributes": { + "constant": false, + "name": "sidechainAddress", + "scope": 405, + "stateVariable": false, + "storageLocation": "default", + "type": "address", "value": null, "visibility": "internal" - } - ], - "src": "3600:41:3" - }, - "src": "3567:306:3", - "visibility": "internal" - }, - { - "body": { - "id": 1699, - "nodeType": "Block", - "src": "3952:227:3", - "statements": [ - { - "body": { - "id": 1696, - "nodeType": "Block", - "src": "4009:153:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1686, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1669, - "src": "4048:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1687, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1590, - "src": "4048:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 1691, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1688, - "name": "_entities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1672, - "src": "4065:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1690, - "indexExpression": { - "argumentTypes": null, - "id": 1689, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1675, - "src": "4075:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4065:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4048:30:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 1692, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isInitializedState", - "nodeType": "MemberAccess", - "referencedDeclaration": 1531, - "src": "4048:49:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "56616c696461746f72206d757374206578697374", - "id": 1693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4115:22:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_977a81c2c1880fc5a4465b2c5e9aeb328408095dbb21e74ad7b74e35ca8ce729", - "typeString": "literal_string \"Validator must exist\"" - }, - "value": "Validator must exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_977a81c2c1880fc5a4465b2c5e9aeb328408095dbb21e74ad7b74e35ca8ce729", - "typeString": "literal_string \"Validator must exist\"" - } - ], - "id": 1685, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "4023:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4023:128:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1695, - "nodeType": "ExpressionStatement", - "src": "4023:128:3" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1678, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1675, - "src": "3982:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1679, - "name": "_entities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1672, - "src": "3986:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3986:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3982:20:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1697, - "initializationExpression": { - "assignments": [ - 1675 - ], - "declarations": [ - { - "constant": false, - "id": 1675, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1700, - "src": "3967:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1674, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3967:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1677, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1676, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3979:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "3967:13:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4004:3:3", - "subExpression": { - "argumentTypes": null, - "id": 1682, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1675, - "src": "4004:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1684, - "nodeType": "ExpressionStatement", - "src": "4004:3:3" - }, - "nodeType": "ForStatement", - "src": "3962:200:3" - }, - { - "id": 1698, - "nodeType": "PlaceholderStatement", - "src": "4171:1:3" - } - ] - }, - "documentation": null, - "id": 1700, - "name": "onlyExistingValidators", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1673, - "nodeType": "ParameterList", - "parameters": [ - { + "id": 399, + "name": "ElementaryTypeName", + "src": "1261:7:3" + } + ], + "id": 400, + "name": "VariableDeclaration", + "src": "1261:24:3" + }, + { + "attributes": { "constant": false, - "id": 1669, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 1700, - "src": "3911:18:3", + "name": "isInitializedState", + "scope": 405, "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 1668, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "3911:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, + "storageLocation": "default", + "type": "bool", "value": null, "visibility": "internal" }, - { + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 401, + "name": "ElementaryTypeName", + "src": "1342:4:3" + } + ], + "id": 402, + "name": "VariableDeclaration", + "src": "1342:23:3" + }, + { + "attributes": { "constant": false, - "id": 1672, - "name": "_entities", - "nodeType": "VariableDeclaration", - "scope": 1700, - "src": "3931:19:3", + "name": "entityType", + "scope": 405, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1670, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3931:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1671, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3931:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, + "type": "enum PropsRewardsLib.RewardedEntityType", "value": null, "visibility": "internal" - } - ], - "src": "3910:41:3" - }, - "src": "3879:300:3", - "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "RewardedEntityType", + "referencedDeclaration": 387, + "type": "enum PropsRewardsLib.RewardedEntityType" + }, + "id": 403, + "name": "UserDefinedTypeName", + "src": "1484:18:3" + } + ], + "id": 404, + "name": "VariableDeclaration", + "src": "1484:29:3" + } + ], + "id": 405, + "name": "StructDefinition", + "src": "1070:486:3" }, { - "body": { - "id": 1736, - "nodeType": "Block", - "src": "4258:448:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 1711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4272:77:3", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1707, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1702, - "src": "4311:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1708, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "4311:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - { - "argumentTypes": null, - "id": 1709, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1704, - "src": "4337:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1706, - "name": "_usePreviousSelectedRewardsEntityList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2590, - "src": "4273:37:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_RewardedEntityList_$1551_memory_ptr_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (struct PropsRewardsLib.RewardedEntityList memory,uint256) pure returns (bool)" - } - }, - "id": 1710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4273:76:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "attributes": { + "canonicalName": "PropsRewardsLib.RewardedEntityList", + "name": "RewardedEntityList", + "scope": 484, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "current", + "scope": 422, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(address => bool)", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => bool)" }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1733, - "nodeType": "Block", - "src": "4522:167:3", - "statements": [ + "children": [ { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1724, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1702, - "src": "4562:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1725, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "4562:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 1726, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previous", - "nodeType": "MemberAccess", - "referencedDeclaration": 1542, - "src": "4562:33:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 1729, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1727, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "4596:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4596:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4562:45:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d75737420626520612070726576696f75732073656c65637465642076616c696461746f72", - "id": 1730, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4625:39:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a06d2666d1f362bae6dafa26bf3b7bf5f762c98da6944f208f164447b8c688cf", - "typeString": "literal_string \"Must be a previous selected validator\"" - }, - "value": "Must be a previous selected validator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a06d2666d1f362bae6dafa26bf3b7bf5f762c98da6944f208f164447b8c688cf", - "typeString": "literal_string \"Must be a previous selected validator\"" - } - ], - "id": 1723, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "4536:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4536:142:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + "attributes": { + "name": "address", + "type": "address" }, - "id": 1732, - "nodeType": "ExpressionStatement", - "src": "4536:142:3" - } - ] - }, - "id": 1734, - "nodeType": "IfStatement", - "src": "4268:421:3", - "trueBody": { - "id": 1722, - "nodeType": "Block", - "src": "4351:165:3", - "statements": [ + "id": 406, + "name": "ElementaryTypeName", + "src": "1663:7:3" + }, { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1713, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1702, - "src": "4391:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1714, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "4391:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 1715, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 1538, - "src": "4391:32:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 1718, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1716, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "4424:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4424:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4391:44:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d75737420626520612063757272656e742073656c65637465642076616c696461746f72", - "id": 1719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4453:38:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d4e1a0ad076530535b11fd52213d35ece3e526b4f44c0862b5f90dbb88ae8157", - "typeString": "literal_string \"Must be a current selected validator\"" - }, - "value": "Must be a current selected validator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d4e1a0ad076530535b11fd52213d35ece3e526b4f44c0862b5f90dbb88ae8157", - "typeString": "literal_string \"Must be a current selected validator\"" - } - ], - "id": 1712, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "4365:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1720, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4365:140:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + "attributes": { + "name": "bool", + "type": "bool" }, - "id": 1721, - "nodeType": "ExpressionStatement", - "src": "4365:140:3" + "id": 407, + "name": "ElementaryTypeName", + "src": "1674:4:3" } - ] + ], + "id": 408, + "name": "Mapping", + "src": "1654:25:3" } - }, - { - "id": 1735, - "nodeType": "PlaceholderStatement", - "src": "4698:1:3" - } - ] - }, - "documentation": null, - "id": 1737, - "name": "onlySelectedValidators", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1705, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1702, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 1737, - "src": "4217:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 1701, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "4217:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { + ], + "id": 409, + "name": "VariableDeclaration", + "src": "1654:33:3" + }, + { + "attributes": { "constant": false, - "id": 1704, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 1737, - "src": "4237:19:3", + "name": "previous", + "scope": 422, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1703, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4237:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + "type": "mapping(address => bool)", "value": null, "visibility": "internal" - } - ], - "src": "4216:41:3" - }, - "src": "4185:521:3", - "visibility": "internal" - }, - { - "body": { - "id": 1758, - "nodeType": "Block", - "src": "4782:220:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ + }, + "children": [ + { + "attributes": { + "type": "mapping(address => bool)" + }, + "children": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1753, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1745, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1739, - "src": "4832:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - ], - "id": 1744, - "name": "_currentRewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2969, - "src": "4813:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer) view returns (uint256)" - } - }, - "id": 1746, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4813:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 1747, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1741, - "src": "4841:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4813:39:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1749, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1741, - "src": "4856:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1750, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1739, - "src": "4870:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1751, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "lastValidatorsRewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1611, - "src": "4870:30:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4856:44:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "attributes": { + "name": "address", + "type": "address" }, - "src": "4813:87:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "id": 410, + "name": "ElementaryTypeName", + "src": "1706:7:3" }, { - "argumentTypes": null, - "hexValue": "4d75737420626520666f7220612070726576696f7573206461792062757420616674657220746865206c617374207265776172647320646179", - "id": 1754, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4914:59:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_935e38251f4ca9fb7808464038c51ee97e3f8ce00b581607c362c19becfdbe50", - "typeString": "literal_string \"Must be for a previous day but after the last rewards day\"" + "attributes": { + "name": "bool", + "type": "bool" }, - "value": "Must be for a previous day but after the last rewards day" + "id": 411, + "name": "ElementaryTypeName", + "src": "1717:4:3" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_935e38251f4ca9fb7808464038c51ee97e3f8ce00b581607c362c19becfdbe50", - "typeString": "literal_string \"Must be for a previous day but after the last rewards day\"" - } - ], - "id": 1743, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "4792:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4792:191:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1756, - "nodeType": "ExpressionStatement", - "src": "4792:191:3" - }, - { - "id": 1757, - "nodeType": "PlaceholderStatement", - "src": "4994:1:3" - } - ] - }, - "documentation": null, - "id": 1759, - "name": "onlyValidRewardsDay", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1742, - "nodeType": "ParameterList", - "parameters": [ - { + "id": 412, + "name": "Mapping", + "src": "1697:25:3" + } + ], + "id": 413, + "name": "VariableDeclaration", + "src": "1697:34:3" + }, + { + "attributes": { "constant": false, - "id": 1739, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 1759, - "src": "4741:18:3", + "name": "currentList", + "scope": 422, "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 1738, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "4741:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, + "storageLocation": "default", + "type": "address[]", "value": null, "visibility": "internal" }, - { + "children": [ + { + "attributes": { + "length": null, + "type": "address[]" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 414, + "name": "ElementaryTypeName", + "src": "1741:7:3" + } + ], + "id": 415, + "name": "ArrayTypeName", + "src": "1741:9:3" + } + ], + "id": 416, + "name": "VariableDeclaration", + "src": "1741:21:3" + }, + { + "attributes": { "constant": false, - "id": 1741, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 1759, - "src": "4761:19:3", + "name": "previousList", + "scope": 422, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1740, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4761:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + "type": "address[]", "value": null, "visibility": "internal" - } - ], - "src": "4740:41:3" - }, - "src": "4712:290:3", - "visibility": "internal" - }, - { - "body": { - "id": 1775, - "nodeType": "Block", - "src": "5084:141:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1766, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1763, - "src": "5115:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1768, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1761, - "src": "5149:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - ], - "id": 1767, - "name": "_currentRewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2969, - "src": "5130:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer) view returns (uint256)" - } - }, - "id": 1769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5130:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5115:40:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, + }, + "children": [ + { + "attributes": { + "length": null, + "type": "address[]" + }, + "children": [ { - "argumentTypes": null, - "hexValue": "4d757374206265206675747572652072657761726473446179", - "id": 1771, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5169:27:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8e5254c566a1283978962bf9a02d12f911de42b73186f37a08ccd0ed89fa2924", - "typeString": "literal_string \"Must be future rewardsDay\"" + "attributes": { + "name": "address", + "type": "address" }, - "value": "Must be future rewardsDay" + "id": 417, + "name": "ElementaryTypeName", + "src": "1772:7:3" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8e5254c566a1283978962bf9a02d12f911de42b73186f37a08ccd0ed89fa2924", - "typeString": "literal_string \"Must be future rewardsDay\"" - } - ], - "id": 1765, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "5094:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5094:112:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1773, - "nodeType": "ExpressionStatement", - "src": "5094:112:3" - }, - { - "id": 1774, - "nodeType": "PlaceholderStatement", - "src": "5217:1:3" - } - ] - }, - "documentation": null, - "id": 1776, - "name": "onlyValidFutureRewardsDay", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1764, - "nodeType": "ParameterList", - "parameters": [ - { + "id": 418, + "name": "ArrayTypeName", + "src": "1772:9:3" + } + ], + "id": 419, + "name": "VariableDeclaration", + "src": "1772:22:3" + }, + { + "attributes": { "constant": false, - "id": 1761, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 1776, - "src": "5043:18:3", + "name": "rewardsDay", + "scope": 422, "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 1760, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "5043:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, + "storageLocation": "default", + "type": "uint256", "value": null, "visibility": "internal" }, - { + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 420, + "name": "ElementaryTypeName", + "src": "1804:7:3" + } + ], + "id": 421, + "name": "VariableDeclaration", + "src": "1804:18:3" + } + ], + "id": 422, + "name": "StructDefinition", + "src": "1618:211:3" + }, + { + "attributes": { + "canonicalName": "PropsRewardsLib.DailyRewards", + "name": "DailyRewards", + "scope": 484, + "visibility": "public" + }, + "children": [ + { + "attributes": { "constant": false, - "id": 1763, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 1776, - "src": "5063:19:3", + "name": "submissions", + "scope": 436, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1762, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5063:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + "type": "mapping(bytes32 => struct PropsRewardsLib.Submission)", "value": null, "visibility": "internal" - } - ], - "src": "5042:41:3" - }, - "src": "5008:217:3", - "visibility": "internal" - }, - { - "body": { - "id": 1798, - "nodeType": "Block", - "src": "5311:198:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => struct PropsRewardsLib.Submission)" + }, + "children": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "attributes": { + "name": "bytes32", + "type": "bytes32" }, - "id": 1793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1783, - "name": "_rewardsAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1778, - "src": "5342:15:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1785, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5369:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1784, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5361:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1786, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5361:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5342:29:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1788, - "name": "_sidechainAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1780, - "src": "5387:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1790, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5416:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1789, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5408:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1791, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5408:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5387:31:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "5342:76:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "id": 423, + "name": "ElementaryTypeName", + "src": "1936:7:3" }, { - "argumentTypes": null, - "hexValue": "4d75737420686176652076616c6964207265776172647320616e642073696465636861696e20616464726573736573", - "id": 1794, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5432:49:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_157d64c9316e4c345938379f92a3d2b3b8837925f0957400681a430557b75841", - "typeString": "literal_string \"Must have valid rewards and sidechain addresses\"" + "attributes": { + "contractScope": null, + "name": "Submission", + "referencedDeclaration": 450, + "type": "struct PropsRewardsLib.Submission" }, - "value": "Must have valid rewards and sidechain addresses" + "id": 424, + "name": "UserDefinedTypeName", + "src": "1947:10:3" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_157d64c9316e4c345938379f92a3d2b3b8837925f0957400681a430557b75841", - "typeString": "literal_string \"Must have valid rewards and sidechain addresses\"" - } - ], - "id": 1782, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "5321:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5321:170:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1796, - "nodeType": "ExpressionStatement", - "src": "5321:170:3" - }, - { - "id": 1797, - "nodeType": "PlaceholderStatement", - "src": "5501:1:3" - } - ] - }, - "documentation": null, - "id": 1799, - "name": "onlyValidAddresses", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1781, - "nodeType": "ParameterList", - "parameters": [ - { + "id": 425, + "name": "Mapping", + "src": "1927:31:3" + } + ], + "id": 426, + "name": "VariableDeclaration", + "src": "1927:43:3" + }, + { + "attributes": { "constant": false, - "id": 1778, - "name": "_rewardsAddress", - "nodeType": "VariableDeclaration", - "scope": 1799, - "src": "5259:23:3", + "name": "submittedRewardsHashes", + "scope": 436, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1777, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5259:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, + "type": "bytes32[]", "value": null, "visibility": "internal" }, - { + "children": [ + { + "attributes": { + "length": null, + "type": "bytes32[]" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 427, + "name": "ElementaryTypeName", + "src": "1980:7:3" + } + ], + "id": 428, + "name": "ArrayTypeName", + "src": "1980:9:3" + } + ], + "id": 429, + "name": "VariableDeclaration", + "src": "1980:32:3" + }, + { + "attributes": { "constant": false, - "id": 1780, - "name": "_sidechainAddress", - "nodeType": "VariableDeclaration", - "scope": 1799, - "src": "5284:25:3", + "name": "totalSupply", + "scope": 436, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1779, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5284:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, + "type": "uint256", "value": null, "visibility": "internal" - } - ], - "src": "5258:52:3" - }, - "src": "5231:278:3", - "visibility": "internal" - }, - { - "body": { - "id": 1868, - "nodeType": "Block", - "src": "6103:687:3", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 1813, - "name": "numOfValidators", - "nodeType": "VariableDeclaration", - "scope": 1869, - "src": "6113:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6113:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1814, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "6113:23:3" }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" }, - "id": 1822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1815, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1801, - "src": "6150:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1816, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "6150:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1817, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "6150:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 1819, - "indexExpression": { - "argumentTypes": null, - "id": 1818, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "6181:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6150:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 1820, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "finalizedStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 1576, - "src": "6150:60:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "id": 430, + "name": "ElementaryTypeName", + "src": "2022:7:3" + } + ], + "id": 431, + "name": "VariableDeclaration", + "src": "2022:19:3" + }, + { + "attributes": { + "constant": false, + "name": "lastConfirmedRewardsHash", + "scope": 436, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1821, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6214:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" + "id": 432, + "name": "ElementaryTypeName", + "src": "2051:7:3" + } + ], + "id": 433, + "name": "VariableDeclaration", + "src": "2051:32:3" + }, + { + "attributes": { + "constant": false, + "name": "lastApplicationsRewardsDay", + "scope": 436, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" }, - "src": "6150:65:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1865, - "nodeType": "IfStatement", - "src": "6146:620:3", - "trueBody": { - "id": 1864, - "nodeType": "Block", - "src": "6225:541:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 1823, - "name": "_allValidators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1807, - "src": "6243:14:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1852, - "nodeType": "Block", - "src": "6483:109:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1850, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1843, - "name": "numOfValidators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "6501:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1844, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1801, - "src": "6519:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1845, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "6519:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1846, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "6519:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 1848, - "indexExpression": { - "argumentTypes": null, - "id": 1847, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "6550:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6519:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 1849, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "confirmations", - "nodeType": "MemberAccess", - "referencedDeclaration": 1574, - "src": "6519:58:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6501:76:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1851, - "nodeType": "ExpressionStatement", - "src": "6501:76:3" - } - ] - }, - "id": 1853, - "nodeType": "IfStatement", - "src": "6239:353:3", - "trueBody": { - "id": 1842, - "nodeType": "Block", - "src": "6259:218:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1824, - "name": "numOfValidators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "6277:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1826, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1801, - "src": "6335:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 1827, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1803, - "src": "6342:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1825, - "name": "_requiredValidatorsForValidatorsRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2876, - "src": "6295:39:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,uint256) view returns (uint256)" - } - }, - "id": 1828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6295:59:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6277:77:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1830, - "nodeType": "ExpressionStatement", - "src": "6277:77:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1831, - "name": "numOfValidators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "6376:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1832, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1801, - "src": "6394:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1833, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "6394:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1834, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "6394:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 1836, - "indexExpression": { - "argumentTypes": null, - "id": 1835, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "6425:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6394:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 1837, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "confirmations", - "nodeType": "MemberAccess", - "referencedDeclaration": 1574, - "src": "6394:58:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6376:76:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1841, - "nodeType": "IfStatement", - "src": "6372:90:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6461:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 1811, - "id": 1840, - "nodeType": "Return", - "src": "6454:8:3" - } - } - ] - } - }, + "id": 434, + "name": "ElementaryTypeName", + "src": "2093:7:3" + } + ], + "id": 435, + "name": "VariableDeclaration", + "src": "2093:34:3" + } + ], + "id": 436, + "name": "StructDefinition", + "src": "1897:237:3" + }, + { + "attributes": { + "canonicalName": "PropsRewardsLib.Submission", + "name": "Submission", + "scope": 484, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "validators", + "scope": 450, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(address => bool)", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => bool)" + }, + "children": [ { - "assignments": [ - 1855 - ], - "declarations": [ - { - "constant": false, - "id": 1855, - "name": "rewardsPerValidator", - "nodeType": "VariableDeclaration", - "scope": 1869, - "src": "6605:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1854, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6605:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1861, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1857, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1801, - "src": "6679:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 1858, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1803, - "src": "6686:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1859, - "name": "numOfValidators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "6699:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1856, - "name": "_getValidatorRewardsDailyAmountPerValidator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2666, - "src": "6635:43:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,uint256,uint256) view returns (uint256)" - } - }, - "id": 1860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6635:80:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "attributes": { + "name": "address", + "type": "address" }, - "nodeType": "VariableDeclarationStatement", - "src": "6605:110:3" + "id": 437, + "name": "ElementaryTypeName", + "src": "2177:7:3" }, { - "expression": { - "argumentTypes": null, - "id": 1862, - "name": "rewardsPerValidator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1855, - "src": "6736:19:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "attributes": { + "name": "bool", + "type": "bool" }, - "functionReturnParameters": 1811, - "id": 1863, - "nodeType": "Return", - "src": "6729:26:3" + "id": 438, + "name": "ElementaryTypeName", + "src": "2188:4:3" } - ] + ], + "id": 439, + "name": "Mapping", + "src": "2168:25:3" } - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1866, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6782:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 1811, - "id": 1867, - "nodeType": "Return", - "src": "6775:8:3" - } - ] - }, - "documentation": "@dev The function is called by validators with the calculation of the daily rewards\n@param _self Data pointer to storage\n@param _rewardsDay uint256 the rewards day\n@param _rewardsHash bytes32 hash of the rewards data\n@param _allValidators bool should the calculation be based on all the validators or just those which submitted", - "id": 1869, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "calculateValidatorRewards", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1808, - "nodeType": "ParameterList", - "parameters": [ - { + ], + "id": 440, + "name": "VariableDeclaration", + "src": "2168:36:3" + }, + { + "attributes": { "constant": false, - "id": 1801, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 1869, - "src": "5932:18:3", + "name": "validatorsList", + "scope": 450, "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 1800, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "5932:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, + "storageLocation": "default", + "type": "address[]", "value": null, "visibility": "internal" }, - { + "children": [ + { + "attributes": { + "length": null, + "type": "address[]" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 441, + "name": "ElementaryTypeName", + "src": "2214:7:3" + } + ], + "id": 442, + "name": "ArrayTypeName", + "src": "2214:9:3" + } + ], + "id": 443, + "name": "VariableDeclaration", + "src": "2214:24:3" + }, + { + "attributes": { "constant": false, - "id": 1803, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 1869, - "src": "5960:19:3", + "name": "confirmations", + "scope": 450, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1802, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5960:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + "type": "uint256", "value": null, "visibility": "internal" }, - { + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 444, + "name": "ElementaryTypeName", + "src": "2248:7:3" + } + ], + "id": 445, + "name": "VariableDeclaration", + "src": "2248:21:3" + }, + { + "attributes": { "constant": false, - "id": 1805, - "name": "_rewardsHash", - "nodeType": "VariableDeclaration", - "scope": 1869, - "src": "5989:20:3", + "name": "finalizedStatus", + "scope": 450, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1804, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5989:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, + "type": "uint256", "value": null, "visibility": "internal" }, - { + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 446, + "name": "ElementaryTypeName", + "src": "2279:7:3" + } + ], + "id": 447, + "name": "VariableDeclaration", + "src": "2279:23:3" + }, + { + "attributes": { "constant": false, - "id": 1807, - "name": "_allValidators", - "nodeType": "VariableDeclaration", - "scope": 1869, - "src": "6019:19:3", + "name": "isInitializedState", + "scope": 450, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1806, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6019:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, + "type": "bool", "value": null, "visibility": "internal" - } - ], - "src": "5922:122:3" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 448, + "name": "ElementaryTypeName", + "src": "2360:4:3" + } + ], + "id": 449, + "name": "VariableDeclaration", + "src": "2360:23:3" + } + ], + "id": 450, + "name": "StructDefinition", + "src": "2140:358:3" + }, + { + "attributes": { + "canonicalName": "PropsRewardsLib.Data", + "name": "Data", + "scope": 484, + "visibility": "public" }, - "payable": false, - "returnParameters": { - "id": 1811, - "nodeType": "ParameterList", - "parameters": [ - { + "children": [ + { + "attributes": { "constant": false, - "id": 1810, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1869, - "src": "6090:7:3", + "name": "applications", + "scope": 483, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1809, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6090:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + "type": "mapping(address => struct PropsRewardsLib.RewardedEntity)", "value": null, "visibility": "internal" - } - ], - "src": "6089:9:3" - }, - "scope": 3297, - "src": "5888:902:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2021, - "nodeType": "Block", - "src": "7734:1224:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ + }, + "children": [ + { + "attributes": { + "type": "mapping(address => struct PropsRewardsLib.RewardedEntity)" + }, + "children": [ { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1902, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "7789:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 1903, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1873, - "src": "7796:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1904, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1875, - "src": "7809:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1905, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7823:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1906, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1881, - "src": "7838:8:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "id": 1901, - "name": "_rewardsHashIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2847, - "src": "7769:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$_t_bytes32_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,uint256,bytes32,address[] memory,uint256[] memory) view returns (bool)" - } + "attributes": { + "name": "address", + "type": "address" }, - "id": 1907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7769:78:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "id": 451, + "name": "ElementaryTypeName", + "src": "2605:7:3" }, { - "argumentTypes": null, - "hexValue": "52657761726473204861736820697320696e76616c6964", - "id": 1908, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7865:25:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fbd0e4ab5a49bc769ff63e6ef1bdfdc2a8a4d8e0a7a84c65a7f213f4f18afabd", - "typeString": "literal_string \"Rewards Hash is invalid\"" + "attributes": { + "contractScope": null, + "name": "RewardedEntity", + "referencedDeclaration": 405, + "type": "struct PropsRewardsLib.RewardedEntity" }, - "value": "Rewards Hash is invalid" + "id": 452, + "name": "UserDefinedTypeName", + "src": "2616:14:3" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fbd0e4ab5a49bc769ff63e6ef1bdfdc2a8a4d8e0a7a84c65a7f213f4f18afabd", - "typeString": "literal_string \"Rewards Hash is invalid\"" - } - ], - "id": 1900, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "7744:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7744:156:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1910, - "nodeType": "ExpressionStatement", - "src": "7744:156:3" + "id": 453, + "name": "Mapping", + "src": "2596:35:3" + } + ], + "id": 454, + "name": "VariableDeclaration", + "src": "2596:48:3" + }, + { + "attributes": { + "constant": false, + "name": "applicationsList", + "scope": 483, + "stateVariable": false, + "storageLocation": "default", + "type": "address[]", + "value": null, + "visibility": "internal" }, - { - "condition": { - "argumentTypes": null, - "id": 1917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "7914:64:3", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1911, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "7915:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1912, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "7915:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1913, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "7915:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 1915, - "indexExpression": { - "argumentTypes": null, - "id": 1914, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1875, - "src": "7946:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } + "children": [ + { + "attributes": { + "length": null, + "type": "address[]" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7915:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 1916, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isInitializedState", - "nodeType": "MemberAccess", - "referencedDeclaration": 1578, - "src": "7915:63:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "id": 455, + "name": "ElementaryTypeName", + "src": "2654:7:3" } + ], + "id": 456, + "name": "ArrayTypeName", + "src": "2654:9:3" + } + ], + "id": 457, + "name": "VariableDeclaration", + "src": "2654:26:3" + }, + { + "attributes": { + "constant": false, + "name": "validators", + "scope": 483, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(address => struct PropsRewardsLib.RewardedEntity)", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => struct PropsRewardsLib.RewardedEntity)" }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1940, - "nodeType": "IfStatement", - "src": "7910:239:3", - "trueBody": { - "id": 1939, - "nodeType": "Block", - "src": "7980:169:3", - "statements": [ + "children": [ { - "expression": { - "argumentTypes": null, - "id": 1927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1918, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "7994:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1922, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "7994:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1923, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "7994:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 1924, - "indexExpression": { - "argumentTypes": null, - "id": 1921, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1875, - "src": "8025:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7994:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 1925, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isInitializedState", - "nodeType": "MemberAccess", - "referencedDeclaration": 1578, - "src": "7994:63:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1926, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8060:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "7994:70:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "attributes": { + "name": "address", + "type": "address" }, - "id": 1928, - "nodeType": "ExpressionStatement", - "src": "7994:70:3" + "id": 458, + "name": "ElementaryTypeName", + "src": "2726:7:3" }, { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1936, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1875, - "src": "8125:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1929, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "8078:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1933, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "8078:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1934, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submittedRewardsHashes", - "nodeType": "MemberAccess", - "referencedDeclaration": 1558, - "src": "8078:41:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[] storage ref" - } - }, - "id": 1935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8078:46:3", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$", - "typeString": "function (bytes32) returns (uint256)" - } - }, - "id": 1937, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8078:60:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "attributes": { + "contractScope": null, + "name": "RewardedEntity", + "referencedDeclaration": 405, + "type": "struct PropsRewardsLib.RewardedEntity" }, - "id": 1938, - "nodeType": "ExpressionStatement", - "src": "8078:60:3" + "id": 459, + "name": "UserDefinedTypeName", + "src": "2737:14:3" } - ] + ], + "id": 460, + "name": "Mapping", + "src": "2717:35:3" } + ], + "id": 461, + "name": "VariableDeclaration", + "src": "2717:46:3" + }, + { + "attributes": { + "constant": false, + "name": "validatorsList", + "scope": 483, + "stateVariable": false, + "storageLocation": "default", + "type": "address[]", + "value": null, + "visibility": "internal" }, - { - "expression": { - "argumentTypes": null, - "id": 1953, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1941, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "8158:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1945, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "8158:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1946, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "8158:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 1947, - "indexExpression": { - "argumentTypes": null, - "id": 1944, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1875, - "src": "8189:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8158:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 1948, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1569, - "src": "8158:55:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 1951, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1949, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "8214:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8214:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8158:67:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1952, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8228:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" + "children": [ + { + "attributes": { + "length": null, + "type": "address[]" }, - "src": "8158:74:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1954, - "nodeType": "ExpressionStatement", - "src": "8158:74:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + "children": [ { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1964, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "8307:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } + "attributes": { + "name": "address", + "type": "address" }, - "id": 1965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8307:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "id": 462, + "name": "ElementaryTypeName", + "src": "2773:7:3" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1955, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "8242:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1959, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "8242:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1960, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "8242:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 1961, - "indexExpression": { - "argumentTypes": null, - "id": 1958, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1875, - "src": "8273:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8242:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 1962, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validatorsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1572, - "src": "8242:59:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8242:64:3", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 1966, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8242:76:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1967, - "nodeType": "ExpressionStatement", - "src": "8242:76:3" + "id": 463, + "name": "ArrayTypeName", + "src": "2773:9:3" + } + ], + "id": 464, + "name": "VariableDeclaration", + "src": "2773:24:3" + }, + { + "attributes": { + "constant": false, + "name": "parameters", + "scope": 483, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(uint256 => struct PropsRewardsLib.Parameter)", + "value": null, + "visibility": "internal" }, - { - "expression": { - "argumentTypes": null, - "id": 1976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "8328:60:3", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1968, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "8328:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1972, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "8328:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1973, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "8328:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 1974, - "indexExpression": { - "argumentTypes": null, - "id": 1971, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1875, - "src": "8359:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } + "children": [ + { + "attributes": { + "type": "mapping(uint256 => struct PropsRewardsLib.Parameter)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8328:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } + "id": 465, + "name": "ElementaryTypeName", + "src": "2854:7:3" }, - "id": 1975, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "confirmations", - "nodeType": "MemberAccess", - "referencedDeclaration": 1574, - "src": "8328:58:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "attributes": { + "contractScope": null, + "name": "Parameter", + "referencedDeclaration": 394, + "type": "struct PropsRewardsLib.Parameter" + }, + "id": 466, + "name": "UserDefinedTypeName", + "src": "2865:9:3" } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1977, - "nodeType": "ExpressionStatement", - "src": "8328:60:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1988, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1978, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "8403:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1979, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "8403:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1980, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "8403:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 1982, - "indexExpression": { - "argumentTypes": null, - "id": 1981, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1875, - "src": "8434:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8403:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 1983, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "confirmations", - "nodeType": "MemberAccess", - "referencedDeclaration": 1574, - "src": "8403:58:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1985, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "8498:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 1986, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1873, - "src": "8505:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1984, - "name": "_requiredValidatorsForAppRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2937, - "src": "8465:32:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,uint256) view returns (uint256)" - } - }, - "id": 1987, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8465:52:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8403:114:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2018, - "nodeType": "IfStatement", - "src": "8399:535:3", - "trueBody": { - "id": 2017, - "nodeType": "Block", - "src": "8519:415:3", - "statements": [ - { - "assignments": [ - 1990 - ], - "declarations": [ - { - "constant": false, - "id": 1990, - "name": "sum", - "nodeType": "VariableDeclaration", - "scope": 2022, - "src": "8533:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8533:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1996, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1992, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "8570:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 1993, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "8577:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1994, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1881, - "src": "8592:8:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "id": 1991, - "name": "_validateSubmittedData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2733, - "src": "8547:22:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,address[] memory,uint256[] memory) view returns (uint256)" - } - }, - "id": 1995, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8547:54:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8533:68:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2004, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1998, - "name": "sum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1990, - "src": "8640:3:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2000, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "8676:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 2001, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1873, - "src": "8683:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2002, - "name": "_currentTotalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "8696:19:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1999, - "name": "_getMaxAppRewardsDailyAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2629, - "src": "8647:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,uint256,uint256) view returns (uint256)" - } - }, - "id": 2003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8647:69:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8640:76:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "52657761726473206461746120697320696e76616c6964202d20657863656564206461696c7920766172696174696f6e", - "id": 2005, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8734:50:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dbb752a6cd2330702ee7c8ed9aeb3e026eb59edc4c11de85fa11c9efd9a12c41", - "typeString": "literal_string \"Rewards data is invalid - exceed daily variation\"" - }, - "value": "Rewards data is invalid - exceed daily variation" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_dbb752a6cd2330702ee7c8ed9aeb3e026eb59edc4c11de85fa11c9efd9a12c41", - "typeString": "literal_string \"Rewards data is invalid - exceed daily variation\"" - } - ], - "id": 1997, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "8615:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8615:183:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2007, - "nodeType": "ExpressionStatement", - "src": "8615:183:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2009, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "8845:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 2010, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1873, - "src": "8852:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2011, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1875, - "src": "8865:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2012, - "name": "_currentTotalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "8879:19:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2008, - "name": "_finalizeDailyApplicationRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2069, - "src": "8812:32:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,uint256,bytes32,uint256)" - } - }, - "id": 2013, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8812:87:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2014, - "nodeType": "ExpressionStatement", - "src": "8812:87:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2015, - "name": "sum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1990, - "src": "8920:3:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1899, - "id": 2016, - "nodeType": "Return", - "src": "8913:10:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2019, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8950:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 1899, - "id": 2020, - "nodeType": "Return", - "src": "8943:8:3" - } - ] - }, - "documentation": "@dev The function is called by validators with the calculation of the daily rewards\n@param _self Data pointer to storage\n@param _rewardsDay uint256 the rewards day\n@param _rewardsHash bytes32 hash of the rewards data\n@param _applications address[] array of application addresses getting the daily reward\n@param _amounts uint256[] array of amounts each app should get\n@param _currentTotalSupply uint256 current total supply", - "id": 2022, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1886, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "7558:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 1887, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1873, - "src": "7565:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + ], + "id": 467, + "name": "Mapping", + "src": "2845:30:3" } ], - "id": 1888, - "modifierName": { - "argumentTypes": null, - "id": 1885, - "name": "onlyValidRewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1759, - "src": "7538:19:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$", - "typeString": "modifier (struct PropsRewardsLib.Data storage pointer,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7538:39:3" + "id": 468, + "name": "VariableDeclaration", + "src": "2845:41:3" }, { - "arguments": [ - { - "argumentTypes": null, - "id": 1890, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "7632:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, + "attributes": { + "constant": false, + "name": "selectedValidators", + "scope": 483, + "stateVariable": false, + "storageLocation": "default", + "type": "struct PropsRewardsLib.RewardedEntityList", + "value": null, + "visibility": "internal" + }, + "children": [ { - "argumentTypes": null, - "id": 1891, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1875, - "src": "7639:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } + "attributes": { + "contractScope": null, + "name": "RewardedEntityList", + "referencedDeclaration": 422, + "type": "struct PropsRewardsLib.RewardedEntityList" + }, + "id": 469, + "name": "UserDefinedTypeName", + "src": "2975:18:3" } ], - "id": 1892, - "modifierName": { - "argumentTypes": null, - "id": 1889, - "name": "onlyOneConfirmationPerValidatorPerRewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "7586:45:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_struct$_Data_$1612_storage_ptr_$_t_bytes32_$", - "typeString": "modifier (struct PropsRewardsLib.Data storage pointer,bytes32)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7586:66:3" + "id": 470, + "name": "VariableDeclaration", + "src": "2975:37:3" }, { - "arguments": [ - { - "argumentTypes": null, - "id": 1894, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "7684:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 1895, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1873, - "src": "7691:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 1896, - "modifierName": { - "argumentTypes": null, - "id": 1893, - "name": "onlySelectedValidators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1737, - "src": "7661:22:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$", - "typeString": "modifier (struct PropsRewardsLib.Data storage pointer,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7661:42:3" - } - ], - "name": "calculateAndFinalizeApplicationRewards", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1884, - "nodeType": "ParameterList", - "parameters": [ - { + "attributes": { "constant": false, - "id": 1871, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2022, - "src": "7333:18:3", + "name": "selectedApplications", + "scope": 483, "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 1870, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "7333:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, + "storageLocation": "default", + "type": "struct PropsRewardsLib.RewardedEntityList", "value": null, "visibility": "internal" }, - { + "children": [ + { + "attributes": { + "contractScope": null, + "name": "RewardedEntityList", + "referencedDeclaration": 422, + "type": "struct PropsRewardsLib.RewardedEntityList" + }, + "id": 471, + "name": "UserDefinedTypeName", + "src": "3064:18:3" + } + ], + "id": 472, + "name": "VariableDeclaration", + "src": "3064:39:3" + }, + { + "attributes": { "constant": false, - "id": 1873, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2022, - "src": "7361:19:3", + "name": "dailyRewards", + "scope": 483, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1872, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7361:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + "type": "struct PropsRewardsLib.DailyRewards", "value": null, "visibility": "internal" }, - { + "children": [ + { + "attributes": { + "contractScope": null, + "name": "DailyRewards", + "referencedDeclaration": 436, + "type": "struct PropsRewardsLib.DailyRewards" + }, + "id": 473, + "name": "UserDefinedTypeName", + "src": "3154:12:3" + } + ], + "id": 474, + "name": "VariableDeclaration", + "src": "3154:25:3" + }, + { + "attributes": { "constant": false, - "id": 1875, - "name": "_rewardsHash", - "nodeType": "VariableDeclaration", - "scope": 2022, - "src": "7390:20:3", + "name": "minSecondsBetweenDays", + "scope": 483, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1874, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7390:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, + "type": "uint256", "value": null, "visibility": "internal" }, - { + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 475, + "name": "ElementaryTypeName", + "src": "3189:7:3" + } + ], + "id": 476, + "name": "VariableDeclaration", + "src": "3189:29:3" + }, + { + "attributes": { "constant": false, - "id": 1878, - "name": "_applications", - "nodeType": "VariableDeclaration", - "scope": 2022, - "src": "7420:23:3", + "name": "rewardsStartTimestamp", + "scope": 483, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1876, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7420:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1877, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7420:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, + "type": "uint256", "value": null, "visibility": "internal" }, - { - "constant": false, - "id": 1881, - "name": "_amounts", - "nodeType": "VariableDeclaration", - "scope": 2022, - "src": "7453:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1879, + "children": [ + { + "attributes": { "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7453:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "type": "uint256" }, - "id": 1880, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7453:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { + "id": 477, + "name": "ElementaryTypeName", + "src": "3228:7:3" + } + ], + "id": 478, + "name": "VariableDeclaration", + "src": "3228:29:3" + }, + { + "attributes": { "constant": false, - "id": 1883, - "name": "_currentTotalSupply", - "nodeType": "VariableDeclaration", - "scope": 2022, - "src": "7481:27:3", + "name": "maxTotalSupply", + "scope": 483, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1882, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7481:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + "type": "uint256", "value": null, "visibility": "internal" - } - ], - "src": "7323:191:3" - }, - "payable": false, - "returnParameters": { - "id": 1899, - "nodeType": "ParameterList", - "parameters": [ - { + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 479, + "name": "ElementaryTypeName", + "src": "3267:7:3" + } + ], + "id": 480, + "name": "VariableDeclaration", + "src": "3267:22:3" + }, + { + "attributes": { "constant": false, - "id": 1898, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2022, - "src": "7721:7:3", + "name": "lastValidatorsRewardsDay", + "scope": 483, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1897, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7721:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + "type": "uint256", "value": null, "visibility": "internal" - } - ], - "src": "7720:9:3" - }, - "scope": 3297, - "src": "7276:1682:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2068, - "nodeType": "Block", - "src": "9438:280:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2033, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2024, - "src": "9448:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2036, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "9448:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 2037, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 1560, - "src": "9448:30:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2038, - "name": "_currentTotalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "9481:19:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9448:52:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2040, - "nodeType": "ExpressionStatement", - "src": "9448:52:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2041, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2024, - "src": "9510:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2044, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "9510:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 2045, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "lastConfirmedRewardsHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 1562, - "src": "9510:43:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2046, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "9556:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "9510:58:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 2048, - "nodeType": "ExpressionStatement", - "src": "9510:58:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2049, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2024, - "src": "9578:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2052, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "9578:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 2053, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "lastApplicationsRewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1564, - "src": "9578:45:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2054, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2026, - "src": "9626:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9578:59:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2056, - "nodeType": "ExpressionStatement", - "src": "9578:59:3" }, - { - "expression": { - "argumentTypes": null, - "id": 2066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2057, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2024, - "src": "9647:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2061, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "9647:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 2062, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "9647:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 2063, - "indexExpression": { - "argumentTypes": null, - "id": 2060, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "9678:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9647:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 2064, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "finalizedStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 1576, - "src": "9647:60:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 2065, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9710:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" }, - "src": "9647:64:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2067, - "nodeType": "ExpressionStatement", - "src": "9647:64:3" - } - ] - }, - "documentation": "@dev Finalizes the state, rewards Hash, total supply and block timestamp for the day\n@param _self Data pointer to storage\n@param _rewardsDay uint256 the rewards day\n@param _rewardsHash bytes32 the daily rewards hash\n@param _currentTotalSupply uint256 the current total supply", - "id": 2069, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_finalizeDailyApplicationRewards", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2031, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2024, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2069, - "src": "9327:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2023, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "9327:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2026, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2069, - "src": "9347:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2025, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9347:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2028, - "name": "_rewardsHash", - "nodeType": "VariableDeclaration", - "scope": 2069, - "src": "9368:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2027, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9368:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2030, - "name": "_currentTotalSupply", - "nodeType": "VariableDeclaration", - "scope": 2069, - "src": "9390:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2029, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9390:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9326:92:3" - }, - "payable": false, - "returnParameters": { - "id": 2032, - "nodeType": "ParameterList", - "parameters": [], - "src": "9438:0:3" - }, - "scope": 3297, - "src": "9285:433:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2108, - "nodeType": "Block", - "src": "10096:241:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2080, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2075, - "src": "10110:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2081, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2071, - "src": "10125:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2082, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "10125:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 2086, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2084, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2073, - "src": "10150:5:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 2083, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10142:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10142:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10125:32:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } - }, - "id": 2087, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "rewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1522, - "src": "10125:43:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10110:58:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2106, - "nodeType": "Block", - "src": "10253:78:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2098, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2071, - "src": "10274:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2099, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "10274:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 2103, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2101, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2073, - "src": "10299:5:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 2100, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10291:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10291:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10274:32:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } - }, - "id": 2104, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previousValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 1520, - "src": "10274:46:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2079, - "id": 2105, - "nodeType": "Return", - "src": "10267:53:3" - } - ] - }, - "id": 2107, - "nodeType": "IfStatement", - "src": "10106:225:3", - "trueBody": { - "id": 2097, - "nodeType": "Block", - "src": "10170:77:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2089, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2071, - "src": "10191:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2090, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "10191:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 2094, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2092, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2073, - "src": "10216:5:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 2091, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10208:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10208:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10191:32:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } - }, - "id": 2095, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 1518, - "src": "10191:45:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2079, - "id": 2096, - "nodeType": "Return", - "src": "10184:52:3" - } - ] - } - } - ] - }, - "documentation": "@dev Get parameter's value\n@param _self Data pointer to storage\n@param _name ParameterName name of the parameter\n@param _rewardsDay uint256 the rewards day", - "id": 2109, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getParameterValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2076, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2071, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2109, - "src": "9955:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2070, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "9955:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2073, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2109, - "src": "9983:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - "typeName": { - "contractScope": null, - "id": 2072, - "name": "ParameterName", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1513, - "src": "9983:13:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2075, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2109, - "src": "10012:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2074, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10012:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9945:92:3" - }, - "payable": false, - "returnParameters": { - "id": 2079, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2078, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2109, - "src": "10083:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2077, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10083:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10082:9:3" - }, - "scope": 3297, - "src": "9919:418:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2197, - "nodeType": "Block", - "src": "10843:491:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2124, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2117, - "src": "10857:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2125, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2111, - "src": "10872:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2126, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "10872:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 2130, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2128, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2113, - "src": "10897:5:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 2127, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10889:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10889:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10872:32:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } - }, - "id": 2131, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "rewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1522, - "src": "10872:43:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10857:58:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2195, - "nodeType": "Block", - "src": "11071:257:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2156, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2111, - "src": "11085:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2161, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "11085:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 2162, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2159, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2113, - "src": "11110:5:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 2158, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11102:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11102:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11085:32:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } - }, - "id": 2163, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "previousValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 1520, - "src": "11085:46:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2164, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2111, - "src": "11134:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "11134:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 2169, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2167, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2113, - "src": "11159:5:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 2166, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11151:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11151:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11134:32:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } - }, - "id": 2170, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 1518, - "src": "11134:45:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11085:94:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2172, - "nodeType": "ExpressionStatement", - "src": "11085:94:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2173, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2111, - "src": "11193:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2178, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "11193:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 2179, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2176, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2113, - "src": "11218:5:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 2175, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11210:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11210:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11193:32:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } - }, - "id": 2180, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "currentValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 1518, - "src": "11193:45:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2181, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2115, - "src": "11241:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11193:54:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2183, - "nodeType": "ExpressionStatement", - "src": "11193:54:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2184, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2111, - "src": "11260:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2189, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "11260:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 2190, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2187, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2113, - "src": "11285:5:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 2186, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11277:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11277:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11260:32:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } - }, - "id": 2191, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "rewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1522, - "src": "11260:43:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2192, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2117, - "src": "11306:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11260:57:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2194, - "nodeType": "ExpressionStatement", - "src": "11260:57:3" - } - ] - }, - "id": 2196, - "nodeType": "IfStatement", - "src": "10853:475:3", - "trueBody": { - "id": 2155, - "nodeType": "Block", - "src": "10917:148:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2133, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2111, - "src": "10930:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2138, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "10930:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 2139, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2136, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2113, - "src": "10955:5:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 2135, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10947:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10947:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10930:32:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } - }, - "id": 2140, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "currentValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 1518, - "src": "10930:45:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2141, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2115, - "src": "10978:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10930:54:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2143, - "nodeType": "ExpressionStatement", - "src": "10930:54:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2144, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2111, - "src": "10997:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2149, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "10997:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 2150, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2147, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2113, - "src": "11022:5:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 2146, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11014:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11014:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10997:32:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } - }, - "id": 2151, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "rewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1522, - "src": "10997:43:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2152, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2117, - "src": "11043:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10997:57:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2154, - "nodeType": "ExpressionStatement", - "src": "10997:57:3" - } - ] - } - } - ] - }, - "documentation": "@dev Allows the controller/owner to update rewards parameters\n@param _self Data pointer to storage\n@param _name ParameterName name of the parameter\n@param _value uint256 new value for the parameter\n@param _rewardsDay uint256 the rewards day", - "id": 2198, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2120, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2111, - "src": "10819:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 2121, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2117, - "src": "10826:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2122, - "modifierName": { - "argumentTypes": null, - "id": 2119, - "name": "onlyValidFutureRewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1776, - "src": "10793:25:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$", - "typeString": "modifier (struct PropsRewardsLib.Data storage pointer,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "10793:45:3" - } - ], - "name": "updateParameter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2118, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2111, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2198, - "src": "10663:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2110, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "10663:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2113, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2198, - "src": "10691:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - "typeName": { - "contractScope": null, - "id": 2112, - "name": "ParameterName", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1513, - "src": "10691:13:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2115, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 2198, - "src": "10720:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2114, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10720:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2117, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2198, - "src": "10744:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2116, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10744:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10653:116:3" - }, - "payable": false, - "returnParameters": { - "id": 2123, - "nodeType": "ParameterList", - "parameters": [], - "src": "10843:0:3" - }, - "scope": 3297, - "src": "10629:705:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2236, - "nodeType": "Block", - "src": "12016:255:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - }, - "id": 2218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2215, - "name": "_entityType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2202, - "src": "12030:11:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2216, - "name": "RewardedEntityType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1516, - "src": "12045:18:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_RewardedEntityType_$1516_$", - "typeString": "type(enum PropsRewardsLib.RewardedEntityType)" - } - }, - "id": 2217, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Application", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12045:30:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "src": "12030:45:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2234, - "nodeType": "Block", - "src": "12175:90:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2228, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2200, - "src": "12205:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 2229, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2204, - "src": "12212:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2230, - "name": "_rewardsAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2206, - "src": "12219:15:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2231, - "name": "_sidechainAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2208, - "src": "12236:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2227, - "name": "updateValidator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2413, - "src": "12189:15:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_bytes32_$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,bytes32,address,address) returns (uint256)" - } - }, - "id": 2232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12189:65:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2233, - "nodeType": "ExpressionStatement", - "src": "12189:65:3" - } - ] - }, - "id": 2235, - "nodeType": "IfStatement", - "src": "12026:239:3", - "trueBody": { - "id": 2226, - "nodeType": "Block", - "src": "12077:92:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2220, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2200, - "src": "12109:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 2221, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2204, - "src": "12116:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2222, - "name": "_rewardsAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2206, - "src": "12123:15:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2223, - "name": "_sidechainAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2208, - "src": "12140:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2219, - "name": "updateApplication", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2325, - "src": "12091:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_bytes32_$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,bytes32,address,address) returns (uint256)" - } - }, - "id": 2224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12091:67:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2225, - "nodeType": "ExpressionStatement", - "src": "12091:67:3" - } - ] - } - } - ] - }, - "documentation": "@dev Allows an application to add/update its details\n@param _self Data pointer to storage\n@param _entityType RewardedEntityType either application (0) or validator (1)\n@param _name bytes32 name of the app\n@param _rewardsAddress address an address for the app to receive the rewards\n@param _sidechainAddress address the address used for using the sidechain", - "id": 2237, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2211, - "name": "_rewardsAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2206, - "src": "11976:15:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2212, - "name": "_sidechainAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2208, - "src": "11993:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 2213, - "modifierName": { - "argumentTypes": null, - "id": 2210, - "name": "onlyValidAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1799, - "src": "11957:18:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_address_$", - "typeString": "modifier (address,address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "11957:54:3" - } - ], - "name": "updateEntity", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2209, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2200, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2237, - "src": "11778:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2199, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "11778:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2202, - "name": "_entityType", - "nodeType": "VariableDeclaration", - "scope": 2237, - "src": "11806:30:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - }, - "typeName": { - "contractScope": null, - "id": 2201, - "name": "RewardedEntityType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1516, - "src": "11806:18:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2204, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2237, - "src": "11846:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2203, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11846:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2206, - "name": "_rewardsAddress", - "nodeType": "VariableDeclaration", - "scope": 2237, - "src": "11869:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2205, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11869:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2208, - "name": "_sidechainAddress", - "nodeType": "VariableDeclaration", - "scope": 2237, - "src": "11902:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2207, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11902:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11768:165:3" - }, - "payable": false, - "returnParameters": { - "id": 2214, - "nodeType": "ParameterList", - "parameters": [], - "src": "12016:0:3" - }, - "scope": 3297, - "src": "11747:524:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2324, - "nodeType": "Block", - "src": "12797:553:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2250, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2239, - "src": "12807:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2254, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1583, - "src": "12807:18:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2255, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2252, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "12826:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12826:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12807:30:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2256, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1525, - "src": "12807:35:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2257, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2241, - "src": "12845:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "12807:43:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 2259, - "nodeType": "ExpressionStatement", - "src": "12807:43:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2268, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2260, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2239, - "src": "12860:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2264, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1583, - "src": "12860:18:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2265, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2262, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "12879:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12879:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12860:30:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2266, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "rewardsAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1527, - "src": "12860:45:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2267, - "name": "_rewardsAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2243, - "src": "12908:15:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12860:63:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2269, - "nodeType": "ExpressionStatement", - "src": "12860:63:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2270, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2239, - "src": "12933:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2274, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1583, - "src": "12933:18:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2275, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2272, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "12952:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12952:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12933:30:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2276, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "sidechainAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1529, - "src": "12933:47:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2277, - "name": "_sidechainAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2245, - "src": "12983:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12933:67:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2279, - "nodeType": "ExpressionStatement", - "src": "12933:67:3" - }, - { - "condition": { - "argumentTypes": null, - "id": 2286, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "13014:50:3", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2280, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2239, - "src": "13015:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2281, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1583, - "src": "13015:18:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2284, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2282, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "13034:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13034:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13015:30:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2285, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isInitializedState", - "nodeType": "MemberAccess", - "referencedDeclaration": 1531, - "src": "13015:49:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2318, - "nodeType": "IfStatement", - "src": "13010:278:3", - "trueBody": { - "id": 2317, - "nodeType": "Block", - "src": "13066:222:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2292, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "13108:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13108:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2287, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2239, - "src": "13080:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2290, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicationsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1586, - "src": "13080:22:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13080:27:3", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 2294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13080:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2295, - "nodeType": "ExpressionStatement", - "src": "13080:39:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2296, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2239, - "src": "13133:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2300, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1583, - "src": "13133:18:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2301, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2298, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "13152:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13152:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13133:30:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2302, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isInitializedState", - "nodeType": "MemberAccess", - "referencedDeclaration": 1531, - "src": "13133:49:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13185:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "13133:56:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2305, - "nodeType": "ExpressionStatement", - "src": "13133:56:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2306, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2239, - "src": "13203:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2310, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1583, - "src": "13203:18:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2311, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2308, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "13222:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13222:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13203:30:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2312, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "entityType", - "nodeType": "MemberAccess", - "referencedDeclaration": 1533, - "src": "13203:41:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2313, - "name": "RewardedEntityType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1516, - "src": "13247:18:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_RewardedEntityType_$1516_$", - "typeString": "type(enum PropsRewardsLib.RewardedEntityType)" - } - }, - "id": 2314, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Application", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13247:30:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "src": "13203:74:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "id": 2316, - "nodeType": "ExpressionStatement", - "src": "13203:74:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2320, - "name": "RewardedEntityType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1516, - "src": "13312:18:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_RewardedEntityType_$1516_$", - "typeString": "type(enum PropsRewardsLib.RewardedEntityType)" - } - }, - "id": 2321, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Application", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13312:30:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - ], - "id": 2319, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13304:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2322, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13304:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2249, - "id": 2323, - "nodeType": "Return", - "src": "13297:46:3" - } - ] - }, - "documentation": "@dev Allows an application to add/update its details\n@param _self Data pointer to storage\n@param _name bytes32 name of the app\n@param _rewardsAddress address an address for the app to receive the rewards\n@param _sidechainAddress address the address used for using the sidechain", - "id": 2325, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "updateApplication", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2246, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2239, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2325, - "src": "12636:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2238, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "12636:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2241, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2325, - "src": "12664:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2240, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "12664:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2243, - "name": "_rewardsAddress", - "nodeType": "VariableDeclaration", - "scope": 2325, - "src": "12687:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2242, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12687:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2245, - "name": "_sidechainAddress", - "nodeType": "VariableDeclaration", - "scope": 2325, - "src": "12720:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2244, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12720:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12626:125:3" - }, - "payable": false, - "returnParameters": { - "id": 2249, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2248, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2325, - "src": "12784:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2247, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12784:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12783:9:3" - }, - "scope": 3297, - "src": "12600:750:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2412, - "nodeType": "Block", - "src": "13883:535:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2338, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "13893:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2342, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1590, - "src": "13893:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2343, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2340, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "13910:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13910:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13893:28:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2344, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1525, - "src": "13893:33:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2345, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2329, - "src": "13929:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "13893:41:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 2347, - "nodeType": "ExpressionStatement", - "src": "13893:41:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2356, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2348, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "13944:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2352, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1590, - "src": "13944:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2353, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2350, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "13961:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13961:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13944:28:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2354, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "rewardsAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1527, - "src": "13944:43:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2355, - "name": "_rewardsAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2331, - "src": "13990:15:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "13944:61:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2357, - "nodeType": "ExpressionStatement", - "src": "13944:61:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2358, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "14015:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2362, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1590, - "src": "14015:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2363, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2360, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "14032:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14032:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14015:28:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2364, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "sidechainAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1529, - "src": "14015:45:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2365, - "name": "_sidechainAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "14063:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "14015:65:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2367, - "nodeType": "ExpressionStatement", - "src": "14015:65:3" - }, - { - "condition": { - "argumentTypes": null, - "id": 2374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "14094:48:3", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2368, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "14095:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2369, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1590, - "src": "14095:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2372, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2370, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "14112:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14112:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14095:28:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2373, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isInitializedState", - "nodeType": "MemberAccess", - "referencedDeclaration": 1531, - "src": "14095:47:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2406, - "nodeType": "IfStatement", - "src": "14090:268:3", - "trueBody": { - "id": 2405, - "nodeType": "Block", - "src": "14144:214:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2380, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "14184:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14184:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2375, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "14158:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2378, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validatorsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1593, - "src": "14158:20:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14158:25:3", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 2382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14158:37:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2383, - "nodeType": "ExpressionStatement", - "src": "14158:37:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2384, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "14209:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2388, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1590, - "src": "14209:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2389, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2386, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "14226:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14226:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14209:28:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2390, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isInitializedState", - "nodeType": "MemberAccess", - "referencedDeclaration": 1531, - "src": "14209:47:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2391, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14259:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "14209:54:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2393, - "nodeType": "ExpressionStatement", - "src": "14209:54:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2403, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2394, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "14277:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2398, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1590, - "src": "14277:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2399, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2396, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "14294:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14294:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14277:28:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2400, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "entityType", - "nodeType": "MemberAccess", - "referencedDeclaration": 1533, - "src": "14277:39:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2401, - "name": "RewardedEntityType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1516, - "src": "14319:18:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_RewardedEntityType_$1516_$", - "typeString": "type(enum PropsRewardsLib.RewardedEntityType)" - } - }, - "id": 2402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Validator", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14319:28:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "src": "14277:70:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "id": 2404, - "nodeType": "ExpressionStatement", - "src": "14277:70:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2408, - "name": "RewardedEntityType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1516, - "src": "14382:18:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_RewardedEntityType_$1516_$", - "typeString": "type(enum PropsRewardsLib.RewardedEntityType)" - } - }, - "id": 2409, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Validator", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14382:28:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - ], - "id": 2407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14374:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2410, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14374:37:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2337, - "id": 2411, - "nodeType": "Return", - "src": "14367:44:3" - } - ] - }, - "documentation": "@dev Allows a validator to add/update its details\n@param _self Data pointer to storage\n@param _name bytes32 name of the validator\n@param _rewardsAddress address an address for the validator to receive the rewards\n@param _sidechainAddress address the address used for using the sidechain", - "id": 2413, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "updateValidator", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2334, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2327, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2413, - "src": "13722:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2326, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "13722:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2329, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2413, - "src": "13750:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2328, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "13750:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2331, - "name": "_rewardsAddress", - "nodeType": "VariableDeclaration", - "scope": 2413, - "src": "13773:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2330, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13773:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2333, - "name": "_sidechainAddress", - "nodeType": "VariableDeclaration", - "scope": 2413, - "src": "13806:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13806:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13712:125:3" - }, - "payable": false, - "returnParameters": { - "id": 2337, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2336, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2413, - "src": "13870:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13870:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13869:9:3" - }, - "scope": 3297, - "src": "13688:730:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2463, - "nodeType": "Block", - "src": "14899:417:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2431, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2417, - "src": "15011:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2432, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2415, - "src": "15025:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2433, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "15025:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2434, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "rewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1550, - "src": "15025:35:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15011:49:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2436, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2415, - "src": "15064:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2437, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "15064:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2438, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "15064:36:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2439, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15064:43:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2440, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15110:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15064:47:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15011:100:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2448, - "nodeType": "IfStatement", - "src": "15007:169:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2444, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2415, - "src": "15151:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2445, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "15151:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - ], - "id": 2443, - "name": "_updatePreviousEntityList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3137, - "src": "15125:25:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_RewardedEntityList_$1551_storage_ptr_$returns$__$", - "typeString": "function (struct PropsRewardsLib.RewardedEntityList storage pointer)" - } - }, - "id": 2446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15125:51:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2447, - "nodeType": "ExpressionStatement", - "src": "15125:51:3" - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2450, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2415, - "src": "15212:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "15212:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - { - "argumentTypes": null, - "id": 2452, - "name": "_validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "15238:11:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - ], - "id": 2449, - "name": "_updateCurrentEntityList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3052, - "src": "15187:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_RewardedEntityList_$1551_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", - "typeString": "function (struct PropsRewardsLib.RewardedEntityList storage pointer,address[] memory)" - } - }, - "id": 2453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15187:63:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2454, - "nodeType": "ExpressionStatement", - "src": "15187:63:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2455, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2415, - "src": "15260:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2458, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "15260:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2459, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "rewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1550, - "src": "15260:35:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2460, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2417, - "src": "15298:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15260:49:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2462, - "nodeType": "ExpressionStatement", - "src": "15260:49:3" - } - ] - }, - "documentation": "@dev Set new validators list\n@param _self Data pointer to storage\n@param _rewardsDay uint256 the rewards day from which the list should be active\n@param _validators address[] array of validators", - "id": 2464, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2423, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2415, - "src": "14824:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 2424, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2417, - "src": "14831:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2425, - "modifierName": { - "argumentTypes": null, - "id": 2422, - "name": "onlyValidFutureRewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1776, - "src": "14798:25:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$", - "typeString": "modifier (struct PropsRewardsLib.Data storage pointer,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14798:45:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 2427, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2415, - "src": "14875:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 2428, - "name": "_validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "14882:11:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - } - ], - "id": 2429, - "modifierName": { - "argumentTypes": null, - "id": 2426, - "name": "onlyExistingValidators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1700, - "src": "14852:22:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_struct$_Data_$1612_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "modifier (struct PropsRewardsLib.Data storage pointer,address[] memory)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14852:42:3" - } - ], - "name": "setValidators", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2421, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2415, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2464, - "src": "14690:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2414, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "14690:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2417, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2464, - "src": "14718:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2416, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14718:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2420, - "name": "_validators", - "nodeType": "VariableDeclaration", - "scope": 2464, - "src": "14747:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14747:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2419, - "length": null, - "nodeType": "ArrayTypeName", - "src": "14747:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14680:94:3" - }, - "payable": false, - "returnParameters": { - "id": 2430, - "nodeType": "ParameterList", - "parameters": [], - "src": "14899:0:3" - }, - "scope": 3297, - "src": "14658:658:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2514, - "nodeType": "Block", - "src": "15810:335:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2482, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2468, - "src": "15825:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2483, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2466, - "src": "15839:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2484, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedApplications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1601, - "src": "15839:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2485, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "rewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1550, - "src": "15839:37:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15825:51:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2487, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2466, - "src": "15880:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2488, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedApplications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1601, - "src": "15880:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2489, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "15880:38:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2490, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15880:45:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2491, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15928:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15880:49:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15825:104:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2499, - "nodeType": "IfStatement", - "src": "15821:179:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2495, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2466, - "src": "15973:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2496, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedApplications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1601, - "src": "15973:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - ], - "id": 2494, - "name": "_updatePreviousEntityList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3137, - "src": "15947:25:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_RewardedEntityList_$1551_storage_ptr_$returns$__$", - "typeString": "function (struct PropsRewardsLib.RewardedEntityList storage pointer)" - } - }, - "id": 2497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15947:53:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2498, - "nodeType": "ExpressionStatement", - "src": "15947:53:3" - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2501, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2466, - "src": "16035:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2502, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedApplications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1601, - "src": "16035:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - { - "argumentTypes": null, - "id": 2503, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2471, - "src": "16063:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - ], - "id": 2500, - "name": "_updateCurrentEntityList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3052, - "src": "16010:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_RewardedEntityList_$1551_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", - "typeString": "function (struct PropsRewardsLib.RewardedEntityList storage pointer,address[] memory)" - } - }, - "id": 2504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16010:67:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2505, - "nodeType": "ExpressionStatement", - "src": "16010:67:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2506, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2466, - "src": "16087:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2509, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedApplications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1601, - "src": "16087:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2510, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "rewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1550, - "src": "16087:37:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2511, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2468, - "src": "16127:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16087:51:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2513, - "nodeType": "ExpressionStatement", - "src": "16087:51:3" - } - ] - }, - "documentation": "@dev Set new applications list\n@param _self Data pointer to storage\n@param _rewardsDay uint256 the rewards day from which the list should be active\n@param _applications address[] array of applications", - "id": 2515, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2474, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2466, - "src": "15731:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 2475, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2468, - "src": "15738:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2476, - "modifierName": { - "argumentTypes": null, - "id": 2473, - "name": "onlyValidFutureRewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1776, - "src": "15705:25:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$", - "typeString": "modifier (struct PropsRewardsLib.Data storage pointer,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "15705:45:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 2478, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2466, - "src": "15784:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 2479, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2471, - "src": "15791:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - } - ], - "id": 2480, - "modifierName": { - "argumentTypes": null, - "id": 2477, - "name": "onlyExistingApplications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1667, - "src": "15759:24:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_struct$_Data_$1612_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "modifier (struct PropsRewardsLib.Data storage pointer,address[] memory)" - } - }, - "nodeType": "ModifierInvocation", - "src": "15759:46:3" - } - ], - "name": "setApplications", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2472, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2466, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2515, - "src": "15595:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2465, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "15595:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2468, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2515, - "src": "15623:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2467, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15623:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2471, - "name": "_applications", - "nodeType": "VariableDeclaration", - "scope": 2515, - "src": "15652:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2469, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15652:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2470, - "length": null, - "nodeType": "ArrayTypeName", - "src": "15652:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15585:96:3" - }, - "payable": false, - "returnParameters": { - "id": 2481, - "nodeType": "ParameterList", - "parameters": [], - "src": "15810:0:3" - }, - "scope": 3297, - "src": "15561:584:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2568, - "nodeType": "Block", - "src": "16604:611:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - }, - "id": 2530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2527, - "name": "_entityType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2519, - "src": "16618:11:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2528, - "name": "RewardedEntityType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1516, - "src": "16633:18:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_RewardedEntityType_$1516_$", - "typeString": "type(enum PropsRewardsLib.RewardedEntityType)" - } - }, - "id": 2529, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Application", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16633:30:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "src": "16618:45:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2566, - "nodeType": "Block", - "src": "16943:266:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 2554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "16961:77:3", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2550, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2517, - "src": "17000:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2551, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "17000:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - { - "argumentTypes": null, - "id": 2552, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2521, - "src": "17026:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2549, - "name": "_usePreviousSelectedRewardsEntityList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2590, - "src": "16962:37:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_RewardedEntityList_$1551_memory_ptr_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (struct PropsRewardsLib.RewardedEntityList memory,uint256) pure returns (bool)" - } - }, - "id": 2553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16962:76:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2564, - "nodeType": "Block", - "src": "17122:77:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2560, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2517, - "src": "17147:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2561, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "17147:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2562, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previousList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1548, - "src": "17147:37:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 2526, - "id": 2563, - "nodeType": "Return", - "src": "17140:44:3" - } - ] - }, - "id": 2565, - "nodeType": "IfStatement", - "src": "16957:242:3", - "trueBody": { - "id": 2559, - "nodeType": "Block", - "src": "17040:76:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2555, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2517, - "src": "17065:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2556, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "17065:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2557, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "17065:36:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 2526, - "id": 2558, - "nodeType": "Return", - "src": "17058:43:3" - } - ] - } - } - ] - }, - "id": 2567, - "nodeType": "IfStatement", - "src": "16614:595:3", - "trueBody": { - "id": 2548, - "nodeType": "Block", - "src": "16665:272:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 2536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "16683:79:3", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2532, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2517, - "src": "16722:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2533, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedApplications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1601, - "src": "16722:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - { - "argumentTypes": null, - "id": 2534, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2521, - "src": "16750:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2531, - "name": "_usePreviousSelectedRewardsEntityList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2590, - "src": "16684:37:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_RewardedEntityList_$1551_memory_ptr_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (struct PropsRewardsLib.RewardedEntityList memory,uint256) pure returns (bool)" - } - }, - "id": 2535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16684:78:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2546, - "nodeType": "Block", - "src": "16848:79:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2542, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2517, - "src": "16873:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2543, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedApplications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1601, - "src": "16873:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2544, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previousList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1548, - "src": "16873:39:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 2526, - "id": 2545, - "nodeType": "Return", - "src": "16866:46:3" - } - ] - }, - "id": 2547, - "nodeType": "IfStatement", - "src": "16679:248:3", - "trueBody": { - "id": 2541, - "nodeType": "Block", - "src": "16764:78:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2537, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2517, - "src": "16789:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2538, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedApplications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1601, - "src": "16789:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2539, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "16789:38:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 2526, - "id": 2540, - "nodeType": "Return", - "src": "16782:45:3" - } - ] - } - } - ] - } - } - ] - }, - "documentation": "@dev Get applications or validators list\n@param _self Data pointer to storage\n@param _entityType RewardedEntityType either application (0) or validator (1)\n@param _rewardsDay uint256 the rewards day to determine which list to get", - "id": 2569, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getEntities", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2522, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2517, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2569, - "src": "16450:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2516, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "16450:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2519, - "name": "_entityType", - "nodeType": "VariableDeclaration", - "scope": 2569, - "src": "16478:30:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - }, - "typeName": { - "contractScope": null, - "id": 2518, - "name": "RewardedEntityType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1516, - "src": "16478:18:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2521, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2569, - "src": "16518:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2520, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16518:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16440:103:3" - }, - "payable": false, - "returnParameters": { - "id": 2526, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2525, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2569, - "src": "16589:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2523, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16589:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2524, - "length": null, - "nodeType": "ArrayTypeName", - "src": "16589:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16588:11:3" - }, - "scope": 3297, - "src": "16420:795:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2589, - "nodeType": "Block", - "src": "17635:146:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2578, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2573, - "src": "17649:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2579, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2571, - "src": "17664:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_memory_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList memory" - } - }, - "id": 2580, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "rewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1550, - "src": "17664:30:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17649:45:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2587, - "nodeType": "Block", - "src": "17739:36:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2585, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17760:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 2577, - "id": 2586, - "nodeType": "Return", - "src": "17753:11:3" - } - ] - }, - "id": 2588, - "nodeType": "IfStatement", - "src": "17645:130:3", - "trueBody": { - "id": 2584, - "nodeType": "Block", - "src": "17696:37:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2582, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17717:5:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 2577, - "id": 2583, - "nodeType": "Return", - "src": "17710:12:3" - } - ] - } - } - ] - }, - "documentation": "@dev Get which entity list to use. If true use previous if false use current\n@param _rewardedEntitylist RewardedEntityList pointer to storage\n@param _rewardsDay uint256 the rewards day to determine which list to get", - "id": 2590, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_usePreviousSelectedRewardsEntityList", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2574, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2571, - "name": "_rewardedEntitylist", - "nodeType": "VariableDeclaration", - "scope": 2590, - "src": "17517:38:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_memory_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList" - }, - "typeName": { - "contractScope": null, - "id": 2570, - "name": "RewardedEntityList", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1551, - "src": "17517:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2573, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2590, - "src": "17557:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2572, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17557:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17516:61:3" - }, - "payable": false, - "returnParameters": { - "id": 2577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2576, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2590, - "src": "17625:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2575, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17625:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17624:6:3" - }, - "scope": 3297, - "src": "17470:311:3", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2628, - "nodeType": "Block", - "src": "18217:281:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31653136", - "id": 2625, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18486:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000000000000000_by_1", - "typeString": "int_const 10000000000000000" - }, - "value": "1e16" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_10000000000000000_by_1", - "typeString": "int_const 10000000000000000" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2617, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2592, - "src": "18407:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2618, - "name": "ParameterName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1513, - "src": "18414:13:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ParameterName_$1513_$", - "typeString": "type(enum PropsRewardsLib.ParameterName)" - } - }, - "id": 2619, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "ApplicationRewardsMaxVariationPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "18414:51:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - { - "argumentTypes": null, - "id": 2620, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2594, - "src": "18467:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2616, - "name": "getParameterValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "18389:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_ParameterName_$1513_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.ParameterName,uint256) view returns (uint256)" - } - }, - "id": 2621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18389:90:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2609, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2592, - "src": "18314:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2610, - "name": "ParameterName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1513, - "src": "18321:13:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ParameterName_$1513_$", - "typeString": "type(enum PropsRewardsLib.ParameterName)" - } - }, - "id": 2611, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "ApplicationRewardsPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "18321:39:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - { - "argumentTypes": null, - "id": 2612, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2594, - "src": "18362:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2608, - "name": "getParameterValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "18296:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_ParameterName_$1513_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.ParameterName,uint256) view returns (uint256)" - } - }, - "id": 2613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18296:78:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2604, - "name": "_currentTotalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "18261:19:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2601, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2592, - "src": "18236:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2602, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "maxTotalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 1609, - "src": "18236:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3544, - "src": "18236:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2605, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18236:45:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2606, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "18235:47:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 3496, - "src": "18235:51:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18235:140:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 3496, - "src": "18235:144:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2622, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18235:245:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2623, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "18234:247:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 3520, - "src": "18234:251:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18234:257:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2600, - "id": 2627, - "nodeType": "Return", - "src": "18227:264:3" - } - ] - }, - "documentation": "@dev Checks how many validators are needed for app rewards\n@param _self Data pointer to storage\n@param _rewardsDay uint256 the rewards day\n@param _currentTotalSupply uint256 current total supply", - "id": 2629, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_getMaxAppRewardsDailyAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2597, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2592, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2629, - "src": "18068:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2591, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "18068:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2594, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2629, - "src": "18096:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2593, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18096:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2596, - "name": "_currentTotalSupply", - "nodeType": "VariableDeclaration", - "scope": 2629, - "src": "18125:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2595, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18125:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18058:100:3" - }, - "payable": false, - "returnParameters": { - "id": 2600, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2599, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2629, - "src": "18204:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2598, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18204:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18203:9:3" - }, - "scope": 3297, - "src": "18021:477:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2665, - "nodeType": "Block", - "src": "18944:208:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2662, - "name": "_numOfValidators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2635, - "src": "19128:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "316538", - "id": 2658, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19118:3:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - }, - "value": "1e8" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2650, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2631, - "src": "19053:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2651, - "name": "ParameterName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1513, - "src": "19060:13:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ParameterName_$1513_$", - "typeString": "type(enum PropsRewardsLib.ParameterName)" - } - }, - "id": 2652, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "ValidatorRewardsPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "19060:37:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - { - "argumentTypes": null, - "id": 2653, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2633, - "src": "19099:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2649, - "name": "getParameterValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "19035:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_ParameterName_$1513_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.ParameterName,uint256) view returns (uint256)" - } - }, - "id": 2654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19035:76:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2643, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2631, - "src": "18989:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2644, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "18989:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 2645, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 1560, - "src": "18989:30:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2640, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2631, - "src": "18964:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2641, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "maxTotalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 1609, - "src": "18964:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3544, - "src": "18964:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18964:56:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2647, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "18963:58:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 3496, - "src": "18963:62:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18963:149:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2656, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "18962:151:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2657, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 3520, - "src": "18962:155:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18962:160:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2660, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "18961:162:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 3520, - "src": "18961:166:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18961:184:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2639, - "id": 2664, - "nodeType": "Return", - "src": "18954:191:3" - } - ] - }, - "documentation": "@dev Checks how many validators are needed for app rewards\n@param _self Data pointer to storage\n@param _rewardsDay uint256 the rewards day\n@param _numOfValidators uint256 number of validators", - "id": 2666, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_getValidatorRewardsDailyAmountPerValidator", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2636, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2631, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2666, - "src": "18798:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2630, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "18798:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2633, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2666, - "src": "18826:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2632, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18826:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2635, - "name": "_numOfValidators", - "nodeType": "VariableDeclaration", - "scope": 2666, - "src": "18855:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2634, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18855:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18788:97:3" - }, - "payable": false, - "returnParameters": { - "id": 2639, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2638, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2666, - "src": "18931:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2637, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18931:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18930:9:3" - }, - "scope": 3297, - "src": "18736:416:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2732, - "nodeType": "Block", - "src": "19619:390:3", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 2680, - "name": "sum", - "nodeType": "VariableDeclaration", - "scope": 2733, - "src": "19629:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2679, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19629:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2681, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "19629:11:3" - }, - { - "assignments": [ - 2683 - ], - "declarations": [ - { - "constant": false, - "id": 2683, - "name": "valid", - "nodeType": "VariableDeclaration", - "scope": 2733, - "src": "19650:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2682, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19650:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2685, - "initialValue": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2684, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19663:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "nodeType": "VariableDeclarationStatement", - "src": "19650:17:3" - }, - { - "body": { - "id": 2719, - "nodeType": "Block", - "src": "19723:140:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2697, - "name": "sum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "19737:3:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2700, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2674, - "src": "19751:8:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2702, - "indexExpression": { - "argumentTypes": null, - "id": 2701, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2687, - "src": "19760:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19751:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2698, - "name": "sum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "19743:3:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3568, - "src": "19743:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19743:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19737:26:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2705, - "nodeType": "ExpressionStatement", - "src": "19737:26:3" - }, - { - "condition": { - "argumentTypes": null, - "id": 2713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "19781:56:3", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2706, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2668, - "src": "19782:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2707, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1583, - "src": "19782:18:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2711, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2708, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2671, - "src": "19801:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2710, - "indexExpression": { - "argumentTypes": null, - "id": 2709, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2687, - "src": "19815:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19801:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19782:36:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2712, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isInitializedState", - "nodeType": "MemberAccess", - "referencedDeclaration": 1531, - "src": "19782:55:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2718, - "nodeType": "IfStatement", - "src": "19777:75:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 2716, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2714, - "name": "valid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "19839:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2715, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19847:5:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "19839:13:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2717, - "nodeType": "ExpressionStatement", - "src": "19839:13:3" - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2690, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2687, - "src": "19697:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2691, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2674, - "src": "19701:8:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "19701:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19697:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2720, - "initializationExpression": { - "assignments": [ - 2687 - ], - "declarations": [ - { - "constant": false, - "id": 2687, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2733, - "src": "19682:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2686, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19682:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2689, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2688, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19694:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "19682:13:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "19718:3:3", - "subExpression": { - "argumentTypes": null, - "id": 2694, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2687, - "src": "19718:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2696, - "nodeType": "ExpressionStatement", - "src": "19718:3:3" - }, - "nodeType": "ForStatement", - "src": "19677:186:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2722, - "name": "sum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "19897:3:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2723, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19903:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "19897:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 2725, - "name": "valid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "19908:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "19897:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "53756d207a65726f206f72206e6f6e65206578697374696e6720617070207375626d6974746564", - "id": 2727, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19931:41:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c07a2c8fe18cd495fd11956af17e5bcd278103233303342dcc5ea89db1ab1dea", - "typeString": "literal_string \"Sum zero or none existing app submitted\"" - }, - "value": "Sum zero or none existing app submitted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c07a2c8fe18cd495fd11956af17e5bcd278103233303342dcc5ea89db1ab1dea", - "typeString": "literal_string \"Sum zero or none existing app submitted\"" - } - ], - "id": 2721, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "19872:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19872:110:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2729, - "nodeType": "ExpressionStatement", - "src": "19872:110:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2730, - "name": "sum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "19999:3:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2678, - "id": 2731, - "nodeType": "Return", - "src": "19992:10:3" - } - ] - }, - "documentation": "@dev Checks if app daily rewards amount is valid\n@param _self Data pointer to storage\n@param _applications address[] array of application addresses getting the daily rewards\n@param _amounts uint256[] array of amounts each app should get", - "id": 2733, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_validateSubmittedData", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2675, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2668, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2733, - "src": "19475:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2667, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "19475:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2671, - "name": "_applications", - "nodeType": "VariableDeclaration", - "scope": 2733, - "src": "19503:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2669, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19503:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2670, - "length": null, - "nodeType": "ArrayTypeName", - "src": "19503:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2674, - "name": "_amounts", - "nodeType": "VariableDeclaration", - "scope": 2733, - "src": "19536:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 2672, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19536:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2673, - "length": null, - "nodeType": "ArrayTypeName", - "src": "19536:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19465:95:3" - }, - "payable": false, - "returnParameters": { - "id": 2678, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2677, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2733, - "src": "19606:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2676, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19606:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19605:9:3" - }, - "scope": 3297, - "src": "19434:575:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2846, - "nodeType": "Block", - "src": "20596:900:3", - "statements": [ - { - "assignments": [ - 2751 - ], - "declarations": [ - { - "constant": false, - "id": 2751, - "name": "nonActiveApplication", - "nodeType": "VariableDeclaration", - "scope": 2847, - "src": "20606:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2750, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20606:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2753, - "initialValue": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2752, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20634:5:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "nodeType": "VariableDeclarationStatement", - "src": "20606:33:3" - }, - { - "condition": { - "argumentTypes": null, - "id": 2759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20653:79:3", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2755, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2735, - "src": "20692:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedApplications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1601, - "src": "20692:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - { - "argumentTypes": null, - "id": 2757, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2737, - "src": "20720:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2754, - "name": "_usePreviousSelectedRewardsEntityList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2590, - "src": "20654:37:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_RewardedEntityList_$1551_memory_ptr_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (struct PropsRewardsLib.RewardedEntityList memory,uint256) pure returns (bool)" - } - }, - "id": 2758, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20654:78:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2815, - "nodeType": "Block", - "src": "20974:235:3", - "statements": [ - { - "body": { - "id": 2813, - "nodeType": "Block", - "src": "21039:160:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 2806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "21061:54:3", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2799, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2735, - "src": "21062:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2800, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedApplications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1601, - "src": "21062:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2801, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previous", - "nodeType": "MemberAccess", - "referencedDeclaration": 1542, - "src": "21062:35:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2805, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2802, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "21098:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2804, - "indexExpression": { - "argumentTypes": null, - "id": 2803, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2789, - "src": "21112:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21098:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21062:53:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2812, - "nodeType": "IfStatement", - "src": "21057:128:3", - "trueBody": { - "id": 2811, - "nodeType": "Block", - "src": "21117:68:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2807, - "name": "nonActiveApplication", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2751, - "src": "21139:20:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2808, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21162:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "21139:27:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2810, - "nodeType": "ExpressionStatement", - "src": "21139:27:3" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2792, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2789, - "src": "21008:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2793, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "21012:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21012:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21008:24:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2814, - "initializationExpression": { - "assignments": [ - 2789 - ], - "declarations": [ - { - "constant": false, - "id": 2789, - "name": "j", - "nodeType": "VariableDeclaration", - "scope": 2847, - "src": "20993:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2788, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20993:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2791, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2790, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21005:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "20993:13:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "21034:3:3", - "subExpression": { - "argumentTypes": null, - "id": 2796, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2789, - "src": "21034:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2798, - "nodeType": "ExpressionStatement", - "src": "21034:3:3" - }, - "nodeType": "ForStatement", - "src": "20988:211:3" - } - ] - }, - "id": 2816, - "nodeType": "IfStatement", - "src": "20649:560:3", - "trueBody": { - "id": 2787, - "nodeType": "Block", - "src": "20734:234:3", - "statements": [ - { - "body": { - "id": 2785, - "nodeType": "Block", - "src": "20799:159:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 2778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20821:53:3", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2771, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2735, - "src": "20822:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2772, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedApplications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1601, - "src": "20822:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2773, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 1538, - "src": "20822:34:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2777, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2774, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "20857:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2776, - "indexExpression": { - "argumentTypes": null, - "id": 2775, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2761, - "src": "20871:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20857:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20822:52:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2784, - "nodeType": "IfStatement", - "src": "20817:127:3", - "trueBody": { - "id": 2783, - "nodeType": "Block", - "src": "20876:68:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2779, - "name": "nonActiveApplication", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2751, - "src": "20898:20:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2780, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20921:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "20898:27:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2782, - "nodeType": "ExpressionStatement", - "src": "20898:27:3" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2764, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2761, - "src": "20768:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2765, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "20772:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2766, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "20772:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20768:24:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2786, - "initializationExpression": { - "assignments": [ - 2761 - ], - "declarations": [ - { - "constant": false, - "id": 2761, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2847, - "src": "20753:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2760, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20753:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2763, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20765:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "20753:13:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "20794:3:3", - "subExpression": { - "argumentTypes": null, - "id": 2768, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2761, - "src": "20794:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2770, - "nodeType": "ExpressionStatement", - "src": "20794:3:3" - }, - "nodeType": "ForStatement", - "src": "20748:210:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2817, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "21237:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21237:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2819, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21260:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "21237:24:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2821, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "21277:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21277:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2823, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2745, - "src": "21301:8:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2824, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21301:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21277:39:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "21237:79:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 2828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "21332:21:3", - "subExpression": { - "argumentTypes": null, - "id": 2827, - "name": "nonActiveApplication", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2751, - "src": "21333:20:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "21237:116:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 2843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2833, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2737, - "src": "21396:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2834, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "21409:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21409:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2836, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2745, - "src": "21431:8:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2837, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21431:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2838, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "21448:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 2839, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2745, - "src": "21463:8:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 2831, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "21379:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2832, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21379:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 2840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21379:93:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2830, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "21369:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 2841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21369:104:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2842, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2739, - "src": "21477:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "21369:120:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "21237:252:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2749, - "id": 2845, - "nodeType": "Return", - "src": "21218:271:3" - } - ] - }, - "documentation": "@dev Checks if submitted data matches rewards hash\n@param _rewardsDay uint256 the rewards day\n@param _rewardsHash bytes32 hash of the rewards data\n@param _applications address[] array of application addresses getting the daily rewards\n@param _amounts uint256[] array of amounts each app should get", - "id": 2847, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_rewardsHashIsValid", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2735, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2847, - "src": "20396:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2734, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "20396:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2737, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2847, - "src": "20424:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2736, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20424:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2739, - "name": "_rewardsHash", - "nodeType": "VariableDeclaration", - "scope": 2847, - "src": "20453:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2738, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "20453:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2742, - "name": "_applications", - "nodeType": "VariableDeclaration", - "scope": 2847, - "src": "20483:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2740, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20483:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2741, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20483:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2745, - "name": "_amounts", - "nodeType": "VariableDeclaration", - "scope": 2847, - "src": "20516:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 2743, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20516:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2744, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20516:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20386:154:3" - }, - "payable": false, - "returnParameters": { - "id": 2749, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2748, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2847, - "src": "20586:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2747, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20586:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20585:6:3" - }, - "scope": 3297, - "src": "20358:1138:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2875, - "nodeType": "Block", - "src": "21822:256:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 2861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "21836:77:3", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2857, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2849, - "src": "21875:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "21875:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - { - "argumentTypes": null, - "id": 2859, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2851, - "src": "21901:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2856, - "name": "_usePreviousSelectedRewardsEntityList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2590, - "src": "21837:37:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_RewardedEntityList_$1551_memory_ptr_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (struct PropsRewardsLib.RewardedEntityList memory,uint256) pure returns (bool)" - } - }, - "id": 2860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21837:76:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2873, - "nodeType": "Block", - "src": "21996:76:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2868, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2849, - "src": "22017:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2869, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "22017:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2870, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previousList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1548, - "src": "22017:37:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2871, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "22017:44:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2855, - "id": 2872, - "nodeType": "Return", - "src": "22010:51:3" - } - ] - }, - "id": 2874, - "nodeType": "IfStatement", - "src": "21832:240:3", - "trueBody": { - "id": 2867, - "nodeType": "Block", - "src": "21915:75:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2862, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2849, - "src": "21936:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2863, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "21936:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "21936:36:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2865, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21936:43:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2855, - "id": 2866, - "nodeType": "Return", - "src": "21929:50:3" - } - ] - } - } - ] - }, - "documentation": "@dev Checks how many validators are needed for app rewards\n@param _self Data pointer to storage\n@param _rewardsDay uint256 the rewards day", - "id": 2876, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_requiredValidatorsForValidatorsRewards", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2852, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2849, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2876, - "src": "21723:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2848, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "21723:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2851, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2876, - "src": "21743:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2850, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21743:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21722:41:3" - }, - "payable": false, - "returnParameters": { - "id": 2855, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2854, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2876, - "src": "21809:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2853, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21809:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21808:9:3" - }, - "scope": 3297, - "src": "21674:404:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2936, - "nodeType": "Block", - "src": "22397:462:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 2890, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "22411:77:3", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2886, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2878, - "src": "22450:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2887, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "22450:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - { - "argumentTypes": null, - "id": 2888, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2880, - "src": "22476:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2885, - "name": "_usePreviousSelectedRewardsEntityList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2590, - "src": "22412:37:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_RewardedEntityList_$1551_memory_ptr_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (struct PropsRewardsLib.RewardedEntityList memory,uint256) pure returns (bool)" - } - }, - "id": 2889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22412:76:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2934, - "nodeType": "Block", - "src": "22674:179:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2931, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22840:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "316538", - "id": 2927, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22830:3:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - }, - "value": "1e8" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2919, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2878, - "src": "22764:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2920, - "name": "ParameterName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1513, - "src": "22771:13:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ParameterName_$1513_$", - "typeString": "type(enum PropsRewardsLib.ParameterName)" - } - }, - "id": 2921, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "ValidatorMajorityPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "22771:38:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - { - "argumentTypes": null, - "id": 2922, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2880, - "src": "22811:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2918, - "name": "getParameterValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "22746:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_ParameterName_$1513_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.ParameterName,uint256) view returns (uint256)" - } - }, - "id": 2923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22746:77:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2913, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2878, - "src": "22697:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2914, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "22697:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2915, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previousList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1548, - "src": "22697:37:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2916, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "22697:44:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 3496, - "src": "22697:48:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22697:127:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2925, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22696:129:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 3520, - "src": "22696:133:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22696:138:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2929, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22695:140:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3568, - "src": "22695:144:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22695:147:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2884, - "id": 2933, - "nodeType": "Return", - "src": "22688:154:3" - } - ] - }, - "id": 2935, - "nodeType": "IfStatement", - "src": "22407:446:3", - "trueBody": { - "id": 2912, - "nodeType": "Block", - "src": "22490:178:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2909, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22655:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "316538", - "id": 2905, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22645:3:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - }, - "value": "1e8" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2897, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2878, - "src": "22579:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2898, - "name": "ParameterName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1513, - "src": "22586:13:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ParameterName_$1513_$", - "typeString": "type(enum PropsRewardsLib.ParameterName)" - } - }, - "id": 2899, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "ValidatorMajorityPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "22586:38:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - { - "argumentTypes": null, - "id": 2900, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2880, - "src": "22626:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2896, - "name": "getParameterValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "22561:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_ParameterName_$1513_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.ParameterName,uint256) view returns (uint256)" - } - }, - "id": 2901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22561:77:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2891, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2878, - "src": "22513:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2892, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "22513:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2893, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "22513:36:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2894, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "22513:43:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 3496, - "src": "22513:47:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22513:126:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2903, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22512:128:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 3520, - "src": "22512:132:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22512:137:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2907, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22511:139:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3568, - "src": "22511:143:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22511:146:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2884, - "id": 2911, - "nodeType": "Return", - "src": "22504:153:3" - } - ] - } - } - ] - }, - "documentation": "@dev Checks how many validators are needed for app rewards\n@param _self Data pointer to storage\n@param _rewardsDay uint256 the rewards day", - "id": 2937, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_requiredValidatorsForAppRewards", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2881, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2878, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2937, - "src": "22298:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2877, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "22298:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2880, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2937, - "src": "22318:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2879, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22318:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22297:41:3" - }, - "payable": false, - "returnParameters": { - "id": 2884, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2883, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2937, - "src": "22384:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2882, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22384:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22383:9:3" - }, - "scope": 3297, - "src": "22256:603:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2968, - "nodeType": "Block", - "src": "23077:342:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2944, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2939, - "src": "23219:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2945, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "minSecondsBetweenDays", - "nodeType": "MemberAccess", - "referencedDeclaration": 1605, - "src": "23219:27:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2946, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23249:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "23219:31:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2966, - "nodeType": "Block", - "src": "23380:33:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2964, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23401:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 2943, - "id": 2965, - "nodeType": "Return", - "src": "23394:8:3" - } - ] - }, - "id": 2967, - "nodeType": "IfStatement", - "src": "23215:198:3", - "trueBody": { - "id": 2963, - "nodeType": "Block", - "src": "23252:122:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2960, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23361:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2956, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2939, - "src": "23328:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2957, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "minSecondsBetweenDays", - "nodeType": "MemberAccess", - "referencedDeclaration": 1605, - "src": "23328:27:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2951, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2939, - "src": "23294:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2952, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "rewardsStartTimestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": 1607, - "src": "23294:27:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2948, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4188, - "src": "23274:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 2949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23274:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3544, - "src": "23274:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2953, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23274:48:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2954, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23273:50:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 3520, - "src": "23273:54:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23273:83:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3568, - "src": "23273:87:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23273:90:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2943, - "id": 2962, - "nodeType": "Return", - "src": "23266:97:3" - } - ] - } - } - ] - }, - "documentation": "@dev Get rewards day from block.timestamp\n@param _self Data pointer to storage", - "id": 2969, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_currentRewardsDay", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2940, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2939, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2969, - "src": "22999:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2938, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "22999:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22998:20:3" - }, - "payable": false, - "returnParameters": { - "id": 2943, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2942, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2969, - "src": "23064:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2941, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23064:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23063:9:3" - }, - "scope": 3297, - "src": "22971:448:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3051, - "nodeType": "Block", - "src": "23939:621:3", - "statements": [ - { - "assignments": [ - 2978 - ], - "declarations": [ - { - "constant": false, - "id": 2978, - "name": "emptyCurrentList", - "nodeType": "VariableDeclaration", - "scope": 3052, - "src": "23949:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2977, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23949:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2984, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2983, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2979, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2971, - "src": "23973:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 2980, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "23973:31:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2981, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23973:38:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2982, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24015:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "23973:43:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23949:67:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "24030:17:3", - "subExpression": { - "argumentTypes": null, - "id": 2985, - "name": "emptyCurrentList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2978, - "src": "24031:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2987, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2971, - "src": "24051:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 2988, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "24051:31:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2989, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "24051:38:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2990, - "name": "_entities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2974, - "src": "24093:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "24093:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24051:58:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "24030:79:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3003, - "nodeType": "IfStatement", - "src": "24026:192:3", - "trueBody": { - "id": 3002, - "nodeType": "Block", - "src": "24111:107:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2995, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2971, - "src": "24150:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - ], - "id": 2994, - "name": "_deleteCurrentEntityList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3170, - "src": "24125:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_RewardedEntityList_$1551_storage_ptr_$returns$__$", - "typeString": "function (struct PropsRewardsLib.RewardedEntityList storage pointer)" - } - }, - "id": 2996, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24125:45:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2997, - "nodeType": "ExpressionStatement", - "src": "24125:45:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 3000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2998, - "name": "emptyCurrentList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2978, - "src": "24184:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2999, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24203:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "24184:23:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3001, - "nodeType": "ExpressionStatement", - "src": "24184:23:3" - } - ] - } - }, - { - "body": { - "id": 3049, - "nodeType": "Block", - "src": "24275:279:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 3015, - "name": "emptyCurrentList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2978, - "src": "24293:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3037, - "nodeType": "Block", - "src": "24400:82:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3027, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2971, - "src": "24418:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3030, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "24418:31:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3031, - "indexExpression": { - "argumentTypes": null, - "id": 3029, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "24450:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "24418:34:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3032, - "name": "_entities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2974, - "src": "24455:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3034, - "indexExpression": { - "argumentTypes": null, - "id": 3033, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "24465:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "24455:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "24418:49:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3036, - "nodeType": "ExpressionStatement", - "src": "24418:49:3" - } - ] - }, - "id": 3038, - "nodeType": "IfStatement", - "src": "24289:193:3", - "trueBody": { - "id": 3026, - "nodeType": "Block", - "src": "24311:83:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3021, - "name": "_entities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2974, - "src": "24366:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3023, - "indexExpression": { - "argumentTypes": null, - "id": 3022, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "24376:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "24366:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3016, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2971, - "src": "24329:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3019, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "24329:31:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3020, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "24329:36:3", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 3024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24329:50:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3025, - "nodeType": "ExpressionStatement", - "src": "24329:50:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3039, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2971, - "src": "24495:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3044, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 1538, - "src": "24495:27:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 3045, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3041, - "name": "_entities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2974, - "src": "24523:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3043, - "indexExpression": { - "argumentTypes": null, - "id": 3042, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "24533:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "24523:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "24495:41:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3046, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24539:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "24495:48:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3048, - "nodeType": "ExpressionStatement", - "src": "24495:48:3" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3011, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3008, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "24248:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3009, - "name": "_entities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2974, - "src": "24252:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3010, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "24252:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24248:20:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3050, - "initializationExpression": { - "assignments": [ - 3005 - ], - "declarations": [ - { - "constant": false, - "id": 3005, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 3052, - "src": "24233:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3004, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24233:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3007, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3006, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24245:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "24233:13:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3013, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "24270:3:3", - "subExpression": { - "argumentTypes": null, - "id": 3012, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "24270:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3014, - "nodeType": "ExpressionStatement", - "src": "24270:3:3" - }, - "nodeType": "ForStatement", - "src": "24228:326:3" - } - ] - }, - "documentation": "@dev Update current daily applications list.\nIf new, push.\nIf same size, replace\nIf different size, delete, and then push.\n@param _rewardedEntitylist RewardedEntityList pointer to storage\n@param _entities address[] array of entities", - "id": 3052, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_updateCurrentEntityList", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2975, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2971, - "name": "_rewardedEntitylist", - "nodeType": "VariableDeclaration", - "scope": 3052, - "src": "23836:46:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList" - }, - "typeName": { - "contractScope": null, - "id": 2970, - "name": "RewardedEntityList", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1551, - "src": "23836:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2974, - "name": "_entities", - "nodeType": "VariableDeclaration", - "scope": 3052, - "src": "23892:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2972, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23892:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2973, - "length": null, - "nodeType": "ArrayTypeName", - "src": "23892:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23826:91:3" - }, - "payable": false, - "returnParameters": { - "id": 2976, - "nodeType": "ParameterList", - "parameters": [], - "src": "23939:0:3" - }, - "scope": 3297, - "src": "23793:767:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3136, - "nodeType": "Block", - "src": "24794:774:3", - "statements": [ - { - "assignments": [ - 3058 - ], - "declarations": [ - { - "constant": false, - "id": 3058, - "name": "emptyPreviousList", - "nodeType": "VariableDeclaration", - "scope": 3137, - "src": "24804:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3057, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "24804:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3064, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3059, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "24829:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3060, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previousList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1548, - "src": "24829:32:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3061, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "24829:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3062, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24872:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "24829:44:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24804:69:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "24900:18:3", - "subExpression": { - "argumentTypes": null, - "id": 3065, - "name": "emptyPreviousList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3058, - "src": "24901:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3067, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "24934:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3068, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previousList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1548, - "src": "24934:32:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3069, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "24934:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3070, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "24977:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3071, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "24977:31:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3072, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "24977:38:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24934:81:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "24900:115:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3084, - "nodeType": "IfStatement", - "src": "24883:252:3", - "trueBody": { - "id": 3083, - "nodeType": "Block", - "src": "25026:109:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3076, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "25066:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - ], - "id": 3075, - "name": "_deletePreviousEntityList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3203, - "src": "25040:25:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_RewardedEntityList_$1551_storage_ptr_$returns$__$", - "typeString": "function (struct PropsRewardsLib.RewardedEntityList storage pointer)" - } - }, - "id": 3077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25040:46:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3078, - "nodeType": "ExpressionStatement", - "src": "25040:46:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 3081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3079, - "name": "emptyPreviousList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3058, - "src": "25100:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3080, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25120:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "25100:24:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3082, - "nodeType": "ExpressionStatement", - "src": "25100:24:3" - } - ] - } - }, - { - "body": { - "id": 3134, - "nodeType": "Block", - "src": "25213:349:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 3097, - "name": "emptyPreviousList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3058, - "src": "25231:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3121, - "nodeType": "Block", - "src": "25362:105:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3110, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "25380:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3113, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previousList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1548, - "src": "25380:32:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3114, - "indexExpression": { - "argumentTypes": null, - "id": 3112, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3086, - "src": "25413:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "25380:35:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3115, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "25418:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3116, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "25418:31:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3118, - "indexExpression": { - "argumentTypes": null, - "id": 3117, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3086, - "src": "25450:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25418:34:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "25380:72:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3120, - "nodeType": "ExpressionStatement", - "src": "25380:72:3" - } - ] - }, - "id": 3122, - "nodeType": "IfStatement", - "src": "25227:240:3", - "trueBody": { - "id": 3109, - "nodeType": "Block", - "src": "25250:106:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3103, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "25306:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3104, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "25306:31:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3106, - "indexExpression": { - "argumentTypes": null, - "id": 3105, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3086, - "src": "25338:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25306:34:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3098, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "25268:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3101, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previousList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1548, - "src": "25268:32:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "25268:37:3", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 3107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25268:73:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3108, - "nodeType": "ExpressionStatement", - "src": "25268:73:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3123, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "25480:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3129, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previous", - "nodeType": "MemberAccess", - "referencedDeclaration": 1542, - "src": "25480:28:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 3130, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3125, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "25509:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3126, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "25509:31:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3128, - "indexExpression": { - "argumentTypes": null, - "id": 3127, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3086, - "src": "25541:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25509:34:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "25480:64:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25547:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "25480:71:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3133, - "nodeType": "ExpressionStatement", - "src": "25480:71:3" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3089, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3086, - "src": "25164:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3090, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "25168:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3091, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "25168:31:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3092, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "25168:38:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25164:42:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3135, - "initializationExpression": { - "assignments": [ - 3086 - ], - "declarations": [ - { - "constant": false, - "id": 3086, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 3137, - "src": "25149:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3085, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25149:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3088, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3087, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25161:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "25149:13:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3095, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "25208:3:3", - "subExpression": { - "argumentTypes": null, - "id": 3094, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3086, - "src": "25208:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3096, - "nodeType": "ExpressionStatement", - "src": "25208:3:3" - }, - "nodeType": "ForStatement", - "src": "25144:418:3" - } - ] - }, - "documentation": "@dev Update previous daily list\n@param _rewardedEntitylist RewardedEntityList pointer to storage", - "id": 3137, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_updatePreviousEntityList", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3055, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3054, - "name": "_rewardedEntitylist", - "nodeType": "VariableDeclaration", - "scope": 3137, - "src": "24725:46:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList" - }, - "typeName": { - "contractScope": null, - "id": 3053, - "name": "RewardedEntityList", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1551, - "src": "24725:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24724:48:3" - }, - "payable": false, - "returnParameters": { - "id": 3056, - "nodeType": "ParameterList", - "parameters": [], - "src": "24794:0:3" - }, - "scope": 3297, - "src": "24690:878:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3169, - "nodeType": "Block", - "src": "25819:231:3", - "statements": [ - { - "body": { - "id": 3163, - "nodeType": "Block", - "src": "25899:96:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "25914:70:3", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3154, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3139, - "src": "25921:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3155, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 1538, - "src": "25921:27:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 3160, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3156, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3139, - "src": "25949:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3157, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "25949:31:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3159, - "indexExpression": { - "argumentTypes": null, - "id": 3158, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "25981:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25949:34:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "25921:63:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3162, - "nodeType": "ExpressionStatement", - "src": "25914:70:3" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3146, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "25849:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3147, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3139, - "src": "25853:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3148, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "25853:31:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3149, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "25853:38:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25849:42:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3164, - "initializationExpression": { - "assignments": [ - 3143 - ], - "declarations": [ - { - "constant": false, - "id": 3143, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 3170, - "src": "25834:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3142, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25834:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3145, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3144, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25846:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "25834:13:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "25894:3:3", - "subExpression": { - "argumentTypes": null, - "id": 3151, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "25894:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3153, - "nodeType": "ExpressionStatement", - "src": "25894:3:3" - }, - "nodeType": "ForStatement", - "src": "25829:166:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 3167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "26004:39:3", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3165, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3139, - "src": "26012:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3166, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "26012:31:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3168, - "nodeType": "ExpressionStatement", - "src": "26004:39:3" - } - ] - }, - "documentation": "@dev Delete existing values from the current list\n@param _rewardedEntitylist RewardedEntityList pointer to storage", - "id": 3170, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_deleteCurrentEntityList", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3140, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3139, - "name": "_rewardedEntitylist", - "nodeType": "VariableDeclaration", - "scope": 3170, - "src": "25750:46:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList" - }, - "typeName": { - "contractScope": null, - "id": 3138, - "name": "RewardedEntityList", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1551, - "src": "25750:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "25749:48:3" - }, - "payable": false, - "returnParameters": { - "id": 3141, - "nodeType": "ParameterList", - "parameters": [], - "src": "25819:0:3" - }, - "scope": 3297, - "src": "25716:334:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3202, - "nodeType": "Block", - "src": "26316:233:3", - "statements": [ - { - "body": { - "id": 3196, - "nodeType": "Block", - "src": "26397:97:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "26411:72:3", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3187, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3172, - "src": "26418:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3188, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previous", - "nodeType": "MemberAccess", - "referencedDeclaration": 1542, - "src": "26418:28:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 3193, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3189, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3172, - "src": "26447:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3190, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previousList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1548, - "src": "26447:32:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3192, - "indexExpression": { - "argumentTypes": null, - "id": 3191, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3176, - "src": "26480:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26447:35:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "26418:65:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3195, - "nodeType": "ExpressionStatement", - "src": "26411:72:3" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3183, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3179, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3176, - "src": "26346:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3180, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3172, - "src": "26350:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3181, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previousList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1548, - "src": "26350:32:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3182, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26350:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26346:43:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3197, - "initializationExpression": { - "assignments": [ - 3176 - ], - "declarations": [ - { - "constant": false, - "id": 3176, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 3203, - "src": "26331:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3175, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26331:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3178, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3177, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26343:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "26331:13:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "26392:3:3", - "subExpression": { - "argumentTypes": null, - "id": 3184, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3176, - "src": "26392:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3186, - "nodeType": "ExpressionStatement", - "src": "26392:3:3" - }, - "nodeType": "ForStatement", - "src": "26326:168:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 3200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "26503:39:3", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3198, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3172, - "src": "26510:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3199, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "previousList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1548, - "src": "26510:32:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3201, - "nodeType": "ExpressionStatement", - "src": "26503:39:3" - } - ] - }, - "documentation": "@dev Delete existing values from the previous applications list\n@param _rewardedEntitylist RewardedEntityList pointer to storage", - "id": 3203, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_deletePreviousEntityList", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3172, - "name": "_rewardedEntitylist", - "nodeType": "VariableDeclaration", - "scope": 3203, - "src": "26247:46:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList" - }, - "typeName": { - "contractScope": null, - "id": 3171, - "name": "RewardedEntityList", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1551, - "src": "26247:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26246:48:3" - }, - "payable": false, - "returnParameters": { - "id": 3174, - "nodeType": "ParameterList", - "parameters": [], - "src": "26316:0:3" - }, - "scope": 3297, - "src": "26212:337:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3295, - "nodeType": "Block", - "src": "26817:703:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3210, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3205, - "src": "26828:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 3212, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "lastValidatorsRewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1611, - "src": "26828:30:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3213, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3205, - "src": "26861:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 3214, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "26861:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 3215, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "lastApplicationsRewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1564, - "src": "26861:45:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26828:78:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3217, - "nodeType": "ExpressionStatement", - "src": "26828:78:3" - }, - { - "body": { - "id": 3252, - "nodeType": "Block", - "src": "27013:182:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "27027:157:3", - "subExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3234, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3205, - "src": "27051:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 3235, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "27051:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 3236, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "27051:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 3238, - "indexExpression": { - "argumentTypes": null, - "id": 3237, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3207, - "src": "27082:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27051:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 3239, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1569, - "src": "27051:55:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 3248, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3240, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3205, - "src": "27107:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 3241, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "27107:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 3242, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "27107:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 3244, - "indexExpression": { - "argumentTypes": null, - "id": 3243, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3207, - "src": "27138:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27107:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 3245, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validatorsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1572, - "src": "27107:59:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3247, - "indexExpression": { - "argumentTypes": null, - "id": 3246, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3219, - "src": "27167:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27107:62:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "27051:119:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 3249, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "27033:151:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3251, - "nodeType": "ExpressionStatement", - "src": "27027:157:3" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3222, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3219, - "src": "26936:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3223, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3205, - "src": "26940:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 3224, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "26940:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 3225, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "26940:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 3227, - "indexExpression": { - "argumentTypes": null, - "id": 3226, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3207, - "src": "26971:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26940:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 3228, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validatorsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1572, - "src": "26940:59:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3229, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26940:66:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26936:70:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3253, - "initializationExpression": { - "assignments": [ - 3219 - ], - "declarations": [ - { - "constant": false, - "id": 3219, - "name": "j", - "nodeType": "VariableDeclaration", - "scope": 3296, - "src": "26921:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3218, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26921:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3221, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3220, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26933:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "26921:13:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "27008:3:3", - "subExpression": { - "argumentTypes": null, - "id": 3231, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3219, - "src": "27008:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3233, - "nodeType": "ExpressionStatement", - "src": "27008:3:3" - }, - "nodeType": "ForStatement", - "src": "26916:279:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 3260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "27208:66:3", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3254, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3205, - "src": "27215:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 3255, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "27215:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 3256, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "27215:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 3258, - "indexExpression": { - "argumentTypes": null, - "id": 3257, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3207, - "src": "27246:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27215:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 3259, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "validatorsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1572, - "src": "27215:59:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3261, - "nodeType": "ExpressionStatement", - "src": "27208:66:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 3271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3262, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3205, - "src": "27288:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 3266, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "27288:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 3267, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "27288:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 3268, - "indexExpression": { - "argumentTypes": null, - "id": 3265, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3207, - "src": "27319:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27288:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 3269, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "confirmations", - "nodeType": "MemberAccess", - "referencedDeclaration": 1574, - "src": "27288:58:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 3270, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27349:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "27288:62:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3272, - "nodeType": "ExpressionStatement", - "src": "27288:62:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 3282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3273, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3205, - "src": "27364:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 3277, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "27364:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 3278, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "27364:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 3279, - "indexExpression": { - "argumentTypes": null, - "id": 3276, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3207, - "src": "27395:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27364:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 3280, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "finalizedStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 1576, - "src": "27364:60:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 3281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27427:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "27364:64:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3283, - "nodeType": "ExpressionStatement", - "src": "27364:64:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 3293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3284, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3205, - "src": "27442:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 3288, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "27442:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 3289, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "27442:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 3290, - "indexExpression": { - "argumentTypes": null, - "id": 3287, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3207, - "src": "27473:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27442:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 3291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isInitializedState", - "nodeType": "MemberAccess", - "referencedDeclaration": 1578, - "src": "27442:63:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 3292, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27508:5:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "27442:71:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3294, - "nodeType": "ExpressionStatement", - "src": "27442:71:3" - } - ] - }, - "documentation": "@dev Deletes rewards day submission data\n@param _self Data pointer to storage\n@param _rewardsHash bytes32 rewardsHash", - "id": 3296, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_resetDailyRewards", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3208, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3205, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 3296, - "src": "26743:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 3204, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "26743:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3207, - "name": "_rewardsHash", - "nodeType": "VariableDeclaration", - "scope": 3296, - "src": "26771:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3206, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "26771:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26733:64:3" - }, - "payable": false, - "returnParameters": { - "id": 3209, - "nodeType": "ParameterList", - "parameters": [], - "src": "26817:0:3" - }, - "scope": 3297, - "src": "26706:814:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3298, - "src": "191:27331:3" - } - ], - "src": "0:27522:3" - }, - "legacyAST": { - "absolutePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsRewardsLib.sol", - "exportedSymbols": { - "PropsRewardsLib": [ - 3297 - ] - }, - "id": 3298, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1504, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:3" - }, - { - "absolutePath": "openzeppelin-eth/contracts/math/SafeMath.sol", - "file": "openzeppelin-eth/contracts/math/SafeMath.sol", - "id": 1505, - "nodeType": "ImportDirective", - "scope": 3298, - "sourceUnit": 3590, - "src": "26:54:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Props Rewards Library\n@dev Library to manage application and validators and parameters*", - "fullyImplemented": true, - "id": 3297, - "linearizedBaseContracts": [ - 3297 - ], - "name": "PropsRewardsLib", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 1508, - "libraryName": { - "contractScope": null, - "id": 1506, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3589, - "src": "227:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$3589", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "221:27:3", - "typeName": { - "id": 1507, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "240:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "PropsRewardsLib.ParameterName", - "id": 1513, - "members": [ - { - "id": 1509, - "name": "ApplicationRewardsPercent", - "nodeType": "EnumValue", - "src": "384:25:3" - }, - { - "id": 1510, - "name": "ApplicationRewardsMaxVariationPercent", - "nodeType": "EnumValue", - "src": "411:37:3" - }, - { - "id": 1511, - "name": "ValidatorMajorityPercent", - "nodeType": "EnumValue", - "src": "450:24:3" - }, - { - "id": 1512, - "name": "ValidatorRewardsPercent", - "nodeType": "EnumValue", - "src": "476:23:3" - } - ], - "name": "ParameterName", - "nodeType": "EnumDefinition", - "src": "363:137:3" - }, - { - "canonicalName": "PropsRewardsLib.RewardedEntityType", - "id": 1516, - "members": [ - { - "id": 1514, - "name": "Application", - "nodeType": "EnumValue", - "src": "531:11:3" - }, - { - "id": 1515, - "name": "Validator", - "nodeType": "EnumValue", - "src": "544:9:3" - } - ], - "name": "RewardedEntityType", - "nodeType": "EnumDefinition", - "src": "505:50:3" - }, - { - "canonicalName": "PropsRewardsLib.Parameter", - "id": 1523, - "members": [ - { - "constant": false, - "id": 1518, - "name": "currentValue", - "nodeType": "VariableDeclaration", - "scope": 1523, - "src": "655:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1517, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "655:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1520, - "name": "previousValue", - "nodeType": "VariableDeclaration", - "scope": 1523, - "src": "750:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1519, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "750:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1522, - "name": "rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 1523, - "src": "849:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1521, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "849:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Parameter", - "nodeType": "StructDefinition", - "scope": 3297, - "src": "628:309:3", - "visibility": "public" - }, - { - "canonicalName": "PropsRewardsLib.RewardedEntity", - "id": 1534, - "members": [ - { - "constant": false, - "id": 1525, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 1534, - "src": "1012:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1524, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1012:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1527, - "name": "rewardsAddress", - "nodeType": "VariableDeclaration", - "scope": 1534, - "src": "1080:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1526, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1080:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1529, - "name": "sidechainAddress", - "nodeType": "VariableDeclaration", - "scope": 1534, - "src": "1171:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1528, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1171:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1531, - "name": "isInitializedState", - "nodeType": "VariableDeclaration", - "scope": 1534, - "src": "1252:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1530, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1252:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1533, - "name": "entityType", - "nodeType": "VariableDeclaration", - "scope": 1534, - "src": "1394:29:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - }, - "typeName": { - "contractScope": null, - "id": 1532, - "name": "RewardedEntityType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1516, - "src": "1394:18:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "RewardedEntity", - "nodeType": "StructDefinition", - "scope": 3297, - "src": "980:486:3", - "visibility": "public" - }, - { - "canonicalName": "PropsRewardsLib.RewardedEntityList", - "id": 1551, - "members": [ - { - "constant": false, - "id": 1538, - "name": "current", - "nodeType": "VariableDeclaration", - "scope": 1551, - "src": "1564:33:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 1537, - "keyType": { - "id": 1535, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1573:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1564:25:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 1536, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1584:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1542, - "name": "previous", - "nodeType": "VariableDeclaration", - "scope": 1551, - "src": "1607:34:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 1541, - "keyType": { - "id": 1539, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1616:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1607:25:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 1540, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1627:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1545, - "name": "currentList", - "nodeType": "VariableDeclaration", - "scope": 1551, - "src": "1651:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1651:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1544, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1651:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1548, - "name": "previousList", - "nodeType": "VariableDeclaration", - "scope": 1551, - "src": "1682:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1546, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1682:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1547, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1682:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1550, - "name": "rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 1551, - "src": "1714:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1549, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1714:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "RewardedEntityList", - "nodeType": "StructDefinition", - "scope": 3297, - "src": "1528:211:3", - "visibility": "public" - }, - { - "canonicalName": "PropsRewardsLib.DailyRewards", - "id": 1565, - "members": [ - { - "constant": false, - "id": 1555, - "name": "submissions", - "nodeType": "VariableDeclaration", - "scope": 1565, - "src": "1837:43:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission)" - }, - "typeName": { - "id": 1554, - "keyType": { - "id": 1552, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1846:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1837:31:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission)" - }, - "valueType": { - "contractScope": null, - "id": 1553, - "name": "Submission", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1579, - "src": "1857:10:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage_ptr", - "typeString": "struct PropsRewardsLib.Submission" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1558, - "name": "submittedRewardsHashes", - "nodeType": "VariableDeclaration", - "scope": 1565, - "src": "1890:32:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 1556, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1890:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 1557, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1890:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1560, - "name": "totalSupply", - "nodeType": "VariableDeclaration", - "scope": 1565, - "src": "1932:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1559, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1932:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1562, - "name": "lastConfirmedRewardsHash", - "nodeType": "VariableDeclaration", - "scope": 1565, - "src": "1961:32:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1561, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1961:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1564, - "name": "lastApplicationsRewardsDay", - "nodeType": "VariableDeclaration", - "scope": 1565, - "src": "2003:34:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1563, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2003:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "DailyRewards", - "nodeType": "StructDefinition", - "scope": 3297, - "src": "1807:237:3", - "visibility": "public" - }, - { - "canonicalName": "PropsRewardsLib.Submission", - "id": 1579, - "members": [ - { - "constant": false, - "id": 1569, - "name": "validators", - "nodeType": "VariableDeclaration", - "scope": 1579, - "src": "2078:36:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 1568, - "keyType": { - "id": 1566, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2087:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2078:25:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 1567, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2098:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1572, - "name": "validatorsList", - "nodeType": "VariableDeclaration", - "scope": 1579, - "src": "2124:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1570, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2124:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1571, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2124:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1574, - "name": "confirmations", - "nodeType": "VariableDeclaration", - "scope": 1579, - "src": "2158:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1573, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2158:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1576, - "name": "finalizedStatus", - "nodeType": "VariableDeclaration", - "scope": 1579, - "src": "2189:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1575, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2189:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1578, - "name": "isInitializedState", - "nodeType": "VariableDeclaration", - "scope": 1579, - "src": "2270:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1577, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2270:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Submission", - "nodeType": "StructDefinition", - "scope": 3297, - "src": "2050:358:3", - "visibility": "public" - }, - { - "canonicalName": "PropsRewardsLib.Data", - "id": 1612, - "members": [ - { - "constant": false, - "id": 1583, - "name": "applications", - "nodeType": "VariableDeclaration", - "scope": 1612, - "src": "2506:48:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity)" - }, - "typeName": { - "id": 1582, - "keyType": { - "id": 1580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2515:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2506:35:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity)" - }, - "valueType": { - "contractScope": null, - "id": 1581, - "name": "RewardedEntity", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1534, - "src": "2526:14:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntity" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1586, - "name": "applicationsList", - "nodeType": "VariableDeclaration", - "scope": 1612, - "src": "2564:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2564:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1585, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2564:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1590, - "name": "validators", - "nodeType": "VariableDeclaration", - "scope": 1612, - "src": "2627:46:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity)" - }, - "typeName": { - "id": 1589, - "keyType": { - "id": 1587, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2636:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2627:35:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity)" - }, - "valueType": { - "contractScope": null, - "id": 1588, - "name": "RewardedEntity", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1534, - "src": "2647:14:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntity" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1593, - "name": "validatorsList", - "nodeType": "VariableDeclaration", - "scope": 1612, - "src": "2683:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1591, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2683:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1592, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2683:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1597, - "name": "parameters", - "nodeType": "VariableDeclaration", - "scope": 1612, - "src": "2755:41:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter)" - }, - "typeName": { - "id": 1596, - "keyType": { - "id": 1594, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2764:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "2755:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter)" - }, - "valueType": { - "contractScope": null, - "id": 1595, - "name": "Parameter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1523, - "src": "2775:9:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage_ptr", - "typeString": "struct PropsRewardsLib.Parameter" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1599, - "name": "selectedValidators", - "nodeType": "VariableDeclaration", - "scope": 1612, - "src": "2885:37:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList" - }, - "typeName": { - "contractScope": null, - "id": 1598, - "name": "RewardedEntityList", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1551, - "src": "2885:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1601, - "name": "selectedApplications", - "nodeType": "VariableDeclaration", - "scope": 1612, - "src": "2974:39:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList" - }, - "typeName": { - "contractScope": null, - "id": 1600, - "name": "RewardedEntityList", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1551, - "src": "2974:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1603, - "name": "dailyRewards", - "nodeType": "VariableDeclaration", - "scope": 1612, - "src": "3064:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage_ptr", - "typeString": "struct PropsRewardsLib.DailyRewards" - }, - "typeName": { - "contractScope": null, - "id": 1602, - "name": "DailyRewards", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1565, - "src": "3064:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage_ptr", - "typeString": "struct PropsRewardsLib.DailyRewards" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1605, - "name": "minSecondsBetweenDays", - "nodeType": "VariableDeclaration", - "scope": 1612, - "src": "3099:29:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1604, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3099:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1607, - "name": "rewardsStartTimestamp", - "nodeType": "VariableDeclaration", - "scope": 1612, - "src": "3138:29:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1606, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3138:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1609, - "name": "maxTotalSupply", - "nodeType": "VariableDeclaration", - "scope": 1612, - "src": "3177:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1608, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3177:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1611, - "name": "lastValidatorsRewardsDay", - "nodeType": "VariableDeclaration", - "scope": 1612, - "src": "3209:32:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1610, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3209:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Data", - "nodeType": "StructDefinition", - "scope": 3297, - "src": "2455:793:3", - "visibility": "public" - }, - { - "body": { - "id": 1633, - "nodeType": "Block", - "src": "3381:180:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "3412:68:3", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1619, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1614, - "src": "3413:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1620, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "3413:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1621, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "3413:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 1623, - "indexExpression": { - "argumentTypes": null, - "id": 1622, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1616, - "src": "3444:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3413:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 1624, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1569, - "src": "3413:55:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 1627, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1625, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "3469:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3469:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3413:67:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d757374206265206f6e65207375626d697373696f6e207065722076616c696461746f72", - "id": 1629, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3494:38:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_995d3cc26ab8d9cd5aaa6c38fe306e0a7f361278803558761087c8c295ab0274", - "typeString": "literal_string \"Must be one submission per validator\"" - }, - "value": "Must be one submission per validator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_995d3cc26ab8d9cd5aaa6c38fe306e0a7f361278803558761087c8c295ab0274", - "typeString": "literal_string \"Must be one submission per validator\"" - } - ], - "id": 1618, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "3391:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3391:151:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1631, - "nodeType": "ExpressionStatement", - "src": "3391:151:3" - }, - { - "id": 1632, - "nodeType": "PlaceholderStatement", - "src": "3553:1:3" - } - ] - }, - "documentation": null, - "id": 1634, - "name": "onlyOneConfirmationPerValidatorPerRewardsHash", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1617, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1614, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 1634, - "src": "3339:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 1613, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "3339:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1616, - "name": "_rewardsHash", - "nodeType": "VariableDeclaration", - "scope": 1634, - "src": "3359:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1615, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3359:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3338:42:3" - }, - "src": "3284:277:3", - "visibility": "internal" - }, - { - "body": { - "id": 1666, - "nodeType": "Block", - "src": "3642:231:3", - "statements": [ - { - "body": { - "id": 1663, - "nodeType": "Block", - "src": "3699:157:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1653, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1636, - "src": "3738:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1654, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1583, - "src": "3738:18:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 1658, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1655, - "name": "_entities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1639, - "src": "3757:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1657, - "indexExpression": { - "argumentTypes": null, - "id": 1656, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1642, - "src": "3767:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3757:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3738:32:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 1659, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isInitializedState", - "nodeType": "MemberAccess", - "referencedDeclaration": 1531, - "src": "3738:51:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4170706c69636174696f6e206d757374206578697374", - "id": 1660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3807:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8c0957eab980bb2899afb66a4949c6d6570f9cad158fc6bacaf11f991ecbf4a2", - "typeString": "literal_string \"Application must exist\"" - }, - "value": "Application must exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8c0957eab980bb2899afb66a4949c6d6570f9cad158fc6bacaf11f991ecbf4a2", - "typeString": "literal_string \"Application must exist\"" - } - ], - "id": 1652, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "3713:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3713:132:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1662, - "nodeType": "ExpressionStatement", - "src": "3713:132:3" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1645, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1642, - "src": "3672:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1646, - "name": "_entities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1639, - "src": "3676:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3676:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3672:20:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1664, - "initializationExpression": { - "assignments": [ - 1642 - ], - "declarations": [ - { - "constant": false, - "id": 1642, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1667, - "src": "3657:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3657:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1644, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3669:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "3657:13:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3694:3:3", - "subExpression": { - "argumentTypes": null, - "id": 1649, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1642, - "src": "3694:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1651, - "nodeType": "ExpressionStatement", - "src": "3694:3:3" - }, - "nodeType": "ForStatement", - "src": "3652:204:3" - }, - { - "id": 1665, - "nodeType": "PlaceholderStatement", - "src": "3865:1:3" - } - ] - }, - "documentation": null, - "id": 1667, - "name": "onlyExistingApplications", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1640, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1636, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 1667, - "src": "3601:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 1635, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "3601:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1639, - "name": "_entities", - "nodeType": "VariableDeclaration", - "scope": 1667, - "src": "3621:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3621:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1638, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3621:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3600:41:3" - }, - "src": "3567:306:3", - "visibility": "internal" - }, - { - "body": { - "id": 1699, - "nodeType": "Block", - "src": "3952:227:3", - "statements": [ - { - "body": { - "id": 1696, - "nodeType": "Block", - "src": "4009:153:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1686, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1669, - "src": "4048:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1687, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1590, - "src": "4048:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 1691, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1688, - "name": "_entities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1672, - "src": "4065:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1690, - "indexExpression": { - "argumentTypes": null, - "id": 1689, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1675, - "src": "4075:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4065:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4048:30:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 1692, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isInitializedState", - "nodeType": "MemberAccess", - "referencedDeclaration": 1531, - "src": "4048:49:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "56616c696461746f72206d757374206578697374", - "id": 1693, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4115:22:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_977a81c2c1880fc5a4465b2c5e9aeb328408095dbb21e74ad7b74e35ca8ce729", - "typeString": "literal_string \"Validator must exist\"" - }, - "value": "Validator must exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_977a81c2c1880fc5a4465b2c5e9aeb328408095dbb21e74ad7b74e35ca8ce729", - "typeString": "literal_string \"Validator must exist\"" - } - ], - "id": 1685, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "4023:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4023:128:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1695, - "nodeType": "ExpressionStatement", - "src": "4023:128:3" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1678, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1675, - "src": "3982:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1679, - "name": "_entities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1672, - "src": "3986:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 1680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3986:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3982:20:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1697, - "initializationExpression": { - "assignments": [ - 1675 - ], - "declarations": [ - { - "constant": false, - "id": 1675, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1700, - "src": "3967:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1674, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3967:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1677, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1676, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3979:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "3967:13:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4004:3:3", - "subExpression": { - "argumentTypes": null, - "id": 1682, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1675, - "src": "4004:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1684, - "nodeType": "ExpressionStatement", - "src": "4004:3:3" - }, - "nodeType": "ForStatement", - "src": "3962:200:3" - }, - { - "id": 1698, - "nodeType": "PlaceholderStatement", - "src": "4171:1:3" - } - ] - }, - "documentation": null, - "id": 1700, - "name": "onlyExistingValidators", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1673, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1669, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 1700, - "src": "3911:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 1668, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "3911:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1672, - "name": "_entities", - "nodeType": "VariableDeclaration", - "scope": 1700, - "src": "3931:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1670, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3931:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1671, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3931:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3910:41:3" - }, - "src": "3879:300:3", - "visibility": "internal" - }, - { - "body": { - "id": 1736, - "nodeType": "Block", - "src": "4258:448:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 1711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4272:77:3", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1707, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1702, - "src": "4311:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1708, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "4311:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - { - "argumentTypes": null, - "id": 1709, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1704, - "src": "4337:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1706, - "name": "_usePreviousSelectedRewardsEntityList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2590, - "src": "4273:37:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_RewardedEntityList_$1551_memory_ptr_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (struct PropsRewardsLib.RewardedEntityList memory,uint256) pure returns (bool)" - } - }, - "id": 1710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4273:76:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1733, - "nodeType": "Block", - "src": "4522:167:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1724, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1702, - "src": "4562:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1725, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "4562:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 1726, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previous", - "nodeType": "MemberAccess", - "referencedDeclaration": 1542, - "src": "4562:33:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 1729, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1727, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "4596:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4596:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4562:45:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d75737420626520612070726576696f75732073656c65637465642076616c696461746f72", - "id": 1730, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4625:39:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a06d2666d1f362bae6dafa26bf3b7bf5f762c98da6944f208f164447b8c688cf", - "typeString": "literal_string \"Must be a previous selected validator\"" - }, - "value": "Must be a previous selected validator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a06d2666d1f362bae6dafa26bf3b7bf5f762c98da6944f208f164447b8c688cf", - "typeString": "literal_string \"Must be a previous selected validator\"" - } - ], - "id": 1723, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "4536:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4536:142:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1732, - "nodeType": "ExpressionStatement", - "src": "4536:142:3" - } - ] - }, - "id": 1734, - "nodeType": "IfStatement", - "src": "4268:421:3", - "trueBody": { - "id": 1722, - "nodeType": "Block", - "src": "4351:165:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1713, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1702, - "src": "4391:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1714, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "4391:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 1715, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 1538, - "src": "4391:32:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 1718, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1716, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "4424:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4424:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4391:44:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d75737420626520612063757272656e742073656c65637465642076616c696461746f72", - "id": 1719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4453:38:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d4e1a0ad076530535b11fd52213d35ece3e526b4f44c0862b5f90dbb88ae8157", - "typeString": "literal_string \"Must be a current selected validator\"" - }, - "value": "Must be a current selected validator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d4e1a0ad076530535b11fd52213d35ece3e526b4f44c0862b5f90dbb88ae8157", - "typeString": "literal_string \"Must be a current selected validator\"" - } - ], - "id": 1712, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "4365:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1720, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4365:140:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1721, - "nodeType": "ExpressionStatement", - "src": "4365:140:3" - } - ] - } - }, - { - "id": 1735, - "nodeType": "PlaceholderStatement", - "src": "4698:1:3" - } - ] - }, - "documentation": null, - "id": 1737, - "name": "onlySelectedValidators", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1705, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1702, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 1737, - "src": "4217:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 1701, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "4217:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1704, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 1737, - "src": "4237:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1703, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4237:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4216:41:3" - }, - "src": "4185:521:3", - "visibility": "internal" - }, - { - "body": { - "id": 1758, - "nodeType": "Block", - "src": "4782:220:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1753, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1745, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1739, - "src": "4832:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - ], - "id": 1744, - "name": "_currentRewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2969, - "src": "4813:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer) view returns (uint256)" - } - }, - "id": 1746, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4813:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 1747, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1741, - "src": "4841:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4813:39:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1749, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1741, - "src": "4856:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1750, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1739, - "src": "4870:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1751, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "lastValidatorsRewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1611, - "src": "4870:30:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4856:44:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4813:87:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d75737420626520666f7220612070726576696f7573206461792062757420616674657220746865206c617374207265776172647320646179", - "id": 1754, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4914:59:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_935e38251f4ca9fb7808464038c51ee97e3f8ce00b581607c362c19becfdbe50", - "typeString": "literal_string \"Must be for a previous day but after the last rewards day\"" - }, - "value": "Must be for a previous day but after the last rewards day" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_935e38251f4ca9fb7808464038c51ee97e3f8ce00b581607c362c19becfdbe50", - "typeString": "literal_string \"Must be for a previous day but after the last rewards day\"" - } - ], - "id": 1743, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "4792:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4792:191:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1756, - "nodeType": "ExpressionStatement", - "src": "4792:191:3" - }, - { - "id": 1757, - "nodeType": "PlaceholderStatement", - "src": "4994:1:3" - } - ] - }, - "documentation": null, - "id": 1759, - "name": "onlyValidRewardsDay", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1742, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1739, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 1759, - "src": "4741:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 1738, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "4741:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1741, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 1759, - "src": "4761:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1740, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4761:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4740:41:3" - }, - "src": "4712:290:3", - "visibility": "internal" - }, - { - "body": { - "id": 1775, - "nodeType": "Block", - "src": "5084:141:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1766, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1763, - "src": "5115:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1768, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1761, - "src": "5149:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - ], - "id": 1767, - "name": "_currentRewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2969, - "src": "5130:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer) view returns (uint256)" - } - }, - "id": 1769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5130:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5115:40:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d757374206265206675747572652072657761726473446179", - "id": 1771, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5169:27:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8e5254c566a1283978962bf9a02d12f911de42b73186f37a08ccd0ed89fa2924", - "typeString": "literal_string \"Must be future rewardsDay\"" - }, - "value": "Must be future rewardsDay" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8e5254c566a1283978962bf9a02d12f911de42b73186f37a08ccd0ed89fa2924", - "typeString": "literal_string \"Must be future rewardsDay\"" - } - ], - "id": 1765, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "5094:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5094:112:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1773, - "nodeType": "ExpressionStatement", - "src": "5094:112:3" - }, - { - "id": 1774, - "nodeType": "PlaceholderStatement", - "src": "5217:1:3" - } - ] - }, - "documentation": null, - "id": 1776, - "name": "onlyValidFutureRewardsDay", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1764, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1761, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 1776, - "src": "5043:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 1760, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "5043:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1763, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 1776, - "src": "5063:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1762, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5063:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5042:41:3" - }, - "src": "5008:217:3", - "visibility": "internal" - }, - { - "body": { - "id": 1798, - "nodeType": "Block", - "src": "5311:198:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1783, - "name": "_rewardsAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1778, - "src": "5342:15:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1785, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5369:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1784, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5361:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1786, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5361:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5342:29:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1788, - "name": "_sidechainAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1780, - "src": "5387:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1790, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5416:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1789, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5408:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1791, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5408:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5387:31:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "5342:76:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d75737420686176652076616c6964207265776172647320616e642073696465636861696e20616464726573736573", - "id": 1794, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5432:49:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_157d64c9316e4c345938379f92a3d2b3b8837925f0957400681a430557b75841", - "typeString": "literal_string \"Must have valid rewards and sidechain addresses\"" - }, - "value": "Must have valid rewards and sidechain addresses" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_157d64c9316e4c345938379f92a3d2b3b8837925f0957400681a430557b75841", - "typeString": "literal_string \"Must have valid rewards and sidechain addresses\"" - } - ], - "id": 1782, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "5321:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5321:170:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1796, - "nodeType": "ExpressionStatement", - "src": "5321:170:3" - }, - { - "id": 1797, - "nodeType": "PlaceholderStatement", - "src": "5501:1:3" - } - ] - }, - "documentation": null, - "id": 1799, - "name": "onlyValidAddresses", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1781, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1778, - "name": "_rewardsAddress", - "nodeType": "VariableDeclaration", - "scope": 1799, - "src": "5259:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1777, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5259:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1780, - "name": "_sidechainAddress", - "nodeType": "VariableDeclaration", - "scope": 1799, - "src": "5284:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1779, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5284:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5258:52:3" - }, - "src": "5231:278:3", - "visibility": "internal" - }, - { - "body": { - "id": 1868, - "nodeType": "Block", - "src": "6103:687:3", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 1813, - "name": "numOfValidators", - "nodeType": "VariableDeclaration", - "scope": 1869, - "src": "6113:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6113:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1814, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "6113:23:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1815, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1801, - "src": "6150:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1816, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "6150:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1817, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "6150:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 1819, - "indexExpression": { - "argumentTypes": null, - "id": 1818, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "6181:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6150:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 1820, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "finalizedStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 1576, - "src": "6150:60:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1821, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6214:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6150:65:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1865, - "nodeType": "IfStatement", - "src": "6146:620:3", - "trueBody": { - "id": 1864, - "nodeType": "Block", - "src": "6225:541:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 1823, - "name": "_allValidators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1807, - "src": "6243:14:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1852, - "nodeType": "Block", - "src": "6483:109:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1850, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1843, - "name": "numOfValidators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "6501:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1844, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1801, - "src": "6519:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1845, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "6519:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1846, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "6519:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 1848, - "indexExpression": { - "argumentTypes": null, - "id": 1847, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "6550:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6519:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 1849, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "confirmations", - "nodeType": "MemberAccess", - "referencedDeclaration": 1574, - "src": "6519:58:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6501:76:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1851, - "nodeType": "ExpressionStatement", - "src": "6501:76:3" - } - ] - }, - "id": 1853, - "nodeType": "IfStatement", - "src": "6239:353:3", - "trueBody": { - "id": 1842, - "nodeType": "Block", - "src": "6259:218:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1824, - "name": "numOfValidators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "6277:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1826, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1801, - "src": "6335:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 1827, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1803, - "src": "6342:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1825, - "name": "_requiredValidatorsForValidatorsRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2876, - "src": "6295:39:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,uint256) view returns (uint256)" - } - }, - "id": 1828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6295:59:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6277:77:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1830, - "nodeType": "ExpressionStatement", - "src": "6277:77:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1831, - "name": "numOfValidators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "6376:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1832, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1801, - "src": "6394:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1833, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "6394:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1834, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "6394:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 1836, - "indexExpression": { - "argumentTypes": null, - "id": 1835, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "6425:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6394:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 1837, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "confirmations", - "nodeType": "MemberAccess", - "referencedDeclaration": 1574, - "src": "6394:58:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6376:76:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1841, - "nodeType": "IfStatement", - "src": "6372:90:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6461:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 1811, - "id": 1840, - "nodeType": "Return", - "src": "6454:8:3" - } - } - ] - } - }, - { - "assignments": [ - 1855 - ], - "declarations": [ - { - "constant": false, - "id": 1855, - "name": "rewardsPerValidator", - "nodeType": "VariableDeclaration", - "scope": 1869, - "src": "6605:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1854, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6605:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1861, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1857, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1801, - "src": "6679:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 1858, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1803, - "src": "6686:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1859, - "name": "numOfValidators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "6699:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1856, - "name": "_getValidatorRewardsDailyAmountPerValidator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2666, - "src": "6635:43:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,uint256,uint256) view returns (uint256)" - } - }, - "id": 1860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6635:80:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6605:110:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1862, - "name": "rewardsPerValidator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1855, - "src": "6736:19:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1811, - "id": 1863, - "nodeType": "Return", - "src": "6729:26:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1866, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6782:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 1811, - "id": 1867, - "nodeType": "Return", - "src": "6775:8:3" - } - ] - }, - "documentation": "@dev The function is called by validators with the calculation of the daily rewards\n@param _self Data pointer to storage\n@param _rewardsDay uint256 the rewards day\n@param _rewardsHash bytes32 hash of the rewards data\n@param _allValidators bool should the calculation be based on all the validators or just those which submitted", - "id": 1869, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "calculateValidatorRewards", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1808, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1801, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 1869, - "src": "5932:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 1800, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "5932:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1803, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 1869, - "src": "5960:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1802, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5960:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1805, - "name": "_rewardsHash", - "nodeType": "VariableDeclaration", - "scope": 1869, - "src": "5989:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1804, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5989:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1807, - "name": "_allValidators", - "nodeType": "VariableDeclaration", - "scope": 1869, - "src": "6019:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1806, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6019:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5922:122:3" - }, - "payable": false, - "returnParameters": { - "id": 1811, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1810, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1869, - "src": "6090:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1809, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6090:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6089:9:3" - }, - "scope": 3297, - "src": "5888:902:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2021, - "nodeType": "Block", - "src": "7734:1224:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1902, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "7789:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 1903, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1873, - "src": "7796:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1904, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1875, - "src": "7809:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1905, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "7823:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1906, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1881, - "src": "7838:8:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "id": 1901, - "name": "_rewardsHashIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2847, - "src": "7769:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$_t_bytes32_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,uint256,bytes32,address[] memory,uint256[] memory) view returns (bool)" - } - }, - "id": 1907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7769:78:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "52657761726473204861736820697320696e76616c6964", - "id": 1908, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7865:25:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fbd0e4ab5a49bc769ff63e6ef1bdfdc2a8a4d8e0a7a84c65a7f213f4f18afabd", - "typeString": "literal_string \"Rewards Hash is invalid\"" - }, - "value": "Rewards Hash is invalid" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fbd0e4ab5a49bc769ff63e6ef1bdfdc2a8a4d8e0a7a84c65a7f213f4f18afabd", - "typeString": "literal_string \"Rewards Hash is invalid\"" - } - ], - "id": 1900, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "7744:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7744:156:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1910, - "nodeType": "ExpressionStatement", - "src": "7744:156:3" - }, - { - "condition": { - "argumentTypes": null, - "id": 1917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "7914:64:3", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1911, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "7915:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1912, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "7915:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1913, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "7915:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 1915, - "indexExpression": { - "argumentTypes": null, - "id": 1914, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1875, - "src": "7946:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7915:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 1916, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isInitializedState", - "nodeType": "MemberAccess", - "referencedDeclaration": 1578, - "src": "7915:63:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1940, - "nodeType": "IfStatement", - "src": "7910:239:3", - "trueBody": { - "id": 1939, - "nodeType": "Block", - "src": "7980:169:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1918, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "7994:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1922, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "7994:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1923, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "7994:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 1924, - "indexExpression": { - "argumentTypes": null, - "id": 1921, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1875, - "src": "8025:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7994:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 1925, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isInitializedState", - "nodeType": "MemberAccess", - "referencedDeclaration": 1578, - "src": "7994:63:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1926, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8060:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "7994:70:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1928, - "nodeType": "ExpressionStatement", - "src": "7994:70:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1936, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1875, - "src": "8125:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1929, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "8078:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1933, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "8078:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1934, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submittedRewardsHashes", - "nodeType": "MemberAccess", - "referencedDeclaration": 1558, - "src": "8078:41:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", - "typeString": "bytes32[] storage ref" - } - }, - "id": 1935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8078:46:3", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$", - "typeString": "function (bytes32) returns (uint256)" - } - }, - "id": 1937, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8078:60:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1938, - "nodeType": "ExpressionStatement", - "src": "8078:60:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 1953, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1941, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "8158:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1945, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "8158:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1946, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "8158:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 1947, - "indexExpression": { - "argumentTypes": null, - "id": 1944, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1875, - "src": "8189:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8158:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 1948, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1569, - "src": "8158:55:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 1951, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1949, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "8214:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8214:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8158:67:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1952, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8228:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "8158:74:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1954, - "nodeType": "ExpressionStatement", - "src": "8158:74:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1964, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "8307:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8307:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1955, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "8242:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1959, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "8242:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1960, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "8242:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 1961, - "indexExpression": { - "argumentTypes": null, - "id": 1958, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1875, - "src": "8273:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8242:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 1962, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validatorsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1572, - "src": "8242:59:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8242:64:3", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 1966, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8242:76:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1967, - "nodeType": "ExpressionStatement", - "src": "8242:76:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "8328:60:3", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1968, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "8328:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1972, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "8328:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1973, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "8328:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 1974, - "indexExpression": { - "argumentTypes": null, - "id": 1971, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1875, - "src": "8359:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8328:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 1975, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "confirmations", - "nodeType": "MemberAccess", - "referencedDeclaration": 1574, - "src": "8328:58:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1977, - "nodeType": "ExpressionStatement", - "src": "8328:60:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1988, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1978, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "8403:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 1979, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "8403:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 1980, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "8403:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 1982, - "indexExpression": { - "argumentTypes": null, - "id": 1981, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1875, - "src": "8434:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8403:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 1983, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "confirmations", - "nodeType": "MemberAccess", - "referencedDeclaration": 1574, - "src": "8403:58:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1985, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "8498:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 1986, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1873, - "src": "8505:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1984, - "name": "_requiredValidatorsForAppRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2937, - "src": "8465:32:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,uint256) view returns (uint256)" - } - }, - "id": 1987, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8465:52:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8403:114:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2018, - "nodeType": "IfStatement", - "src": "8399:535:3", - "trueBody": { - "id": 2017, - "nodeType": "Block", - "src": "8519:415:3", - "statements": [ - { - "assignments": [ - 1990 - ], - "declarations": [ - { - "constant": false, - "id": 1990, - "name": "sum", - "nodeType": "VariableDeclaration", - "scope": 2022, - "src": "8533:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8533:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1996, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1992, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "8570:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 1993, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1878, - "src": "8577:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1994, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1881, - "src": "8592:8:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "id": 1991, - "name": "_validateSubmittedData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2733, - "src": "8547:22:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,address[] memory,uint256[] memory) view returns (uint256)" - } - }, - "id": 1995, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8547:54:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8533:68:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2004, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1998, - "name": "sum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1990, - "src": "8640:3:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2000, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "8676:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 2001, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1873, - "src": "8683:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2002, - "name": "_currentTotalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "8696:19:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1999, - "name": "_getMaxAppRewardsDailyAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2629, - "src": "8647:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,uint256,uint256) view returns (uint256)" - } - }, - "id": 2003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8647:69:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8640:76:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "52657761726473206461746120697320696e76616c6964202d20657863656564206461696c7920766172696174696f6e", - "id": 2005, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8734:50:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dbb752a6cd2330702ee7c8ed9aeb3e026eb59edc4c11de85fa11c9efd9a12c41", - "typeString": "literal_string \"Rewards data is invalid - exceed daily variation\"" - }, - "value": "Rewards data is invalid - exceed daily variation" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_dbb752a6cd2330702ee7c8ed9aeb3e026eb59edc4c11de85fa11c9efd9a12c41", - "typeString": "literal_string \"Rewards data is invalid - exceed daily variation\"" - } - ], - "id": 1997, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "8615:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8615:183:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2007, - "nodeType": "ExpressionStatement", - "src": "8615:183:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2009, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "8845:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 2010, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1873, - "src": "8852:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2011, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1875, - "src": "8865:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2012, - "name": "_currentTotalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1883, - "src": "8879:19:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2008, - "name": "_finalizeDailyApplicationRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2069, - "src": "8812:32:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$_t_bytes32_$_t_uint256_$returns$__$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,uint256,bytes32,uint256)" - } - }, - "id": 2013, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8812:87:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2014, - "nodeType": "ExpressionStatement", - "src": "8812:87:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2015, - "name": "sum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1990, - "src": "8920:3:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1899, - "id": 2016, - "nodeType": "Return", - "src": "8913:10:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2019, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8950:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 1899, - "id": 2020, - "nodeType": "Return", - "src": "8943:8:3" - } - ] - }, - "documentation": "@dev The function is called by validators with the calculation of the daily rewards\n@param _self Data pointer to storage\n@param _rewardsDay uint256 the rewards day\n@param _rewardsHash bytes32 hash of the rewards data\n@param _applications address[] array of application addresses getting the daily reward\n@param _amounts uint256[] array of amounts each app should get\n@param _currentTotalSupply uint256 current total supply", - "id": 2022, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1886, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "7558:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 1887, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1873, - "src": "7565:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 1888, - "modifierName": { - "argumentTypes": null, - "id": 1885, - "name": "onlyValidRewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1759, - "src": "7538:19:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$", - "typeString": "modifier (struct PropsRewardsLib.Data storage pointer,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7538:39:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 1890, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "7632:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 1891, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1875, - "src": "7639:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "id": 1892, - "modifierName": { - "argumentTypes": null, - "id": 1889, - "name": "onlyOneConfirmationPerValidatorPerRewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "7586:45:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_struct$_Data_$1612_storage_ptr_$_t_bytes32_$", - "typeString": "modifier (struct PropsRewardsLib.Data storage pointer,bytes32)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7586:66:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 1894, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1871, - "src": "7684:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 1895, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1873, - "src": "7691:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 1896, - "modifierName": { - "argumentTypes": null, - "id": 1893, - "name": "onlySelectedValidators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1737, - "src": "7661:22:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$", - "typeString": "modifier (struct PropsRewardsLib.Data storage pointer,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7661:42:3" - } - ], - "name": "calculateAndFinalizeApplicationRewards", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1884, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1871, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2022, - "src": "7333:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 1870, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "7333:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1873, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2022, - "src": "7361:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1872, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7361:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1875, - "name": "_rewardsHash", - "nodeType": "VariableDeclaration", - "scope": 2022, - "src": "7390:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1874, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7390:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1878, - "name": "_applications", - "nodeType": "VariableDeclaration", - "scope": 2022, - "src": "7420:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1876, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7420:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1877, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7420:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1881, - "name": "_amounts", - "nodeType": "VariableDeclaration", - "scope": 2022, - "src": "7453:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1879, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7453:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1880, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7453:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1883, - "name": "_currentTotalSupply", - "nodeType": "VariableDeclaration", - "scope": 2022, - "src": "7481:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1882, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7481:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7323:191:3" - }, - "payable": false, - "returnParameters": { - "id": 1899, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1898, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2022, - "src": "7721:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1897, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7721:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7720:9:3" - }, - "scope": 3297, - "src": "7276:1682:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2068, - "nodeType": "Block", - "src": "9438:280:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2033, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2024, - "src": "9448:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2036, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "9448:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 2037, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 1560, - "src": "9448:30:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2038, - "name": "_currentTotalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "9481:19:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9448:52:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2040, - "nodeType": "ExpressionStatement", - "src": "9448:52:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2041, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2024, - "src": "9510:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2044, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "9510:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 2045, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "lastConfirmedRewardsHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 1562, - "src": "9510:43:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2046, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "9556:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "9510:58:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 2048, - "nodeType": "ExpressionStatement", - "src": "9510:58:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2049, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2024, - "src": "9578:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2052, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "9578:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 2053, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "lastApplicationsRewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1564, - "src": "9578:45:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2054, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2026, - "src": "9626:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9578:59:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2056, - "nodeType": "ExpressionStatement", - "src": "9578:59:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2057, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2024, - "src": "9647:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2061, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "9647:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 2062, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "9647:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 2063, - "indexExpression": { - "argumentTypes": null, - "id": 2060, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "9678:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9647:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 2064, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "finalizedStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 1576, - "src": "9647:60:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 2065, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9710:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9647:64:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2067, - "nodeType": "ExpressionStatement", - "src": "9647:64:3" - } - ] - }, - "documentation": "@dev Finalizes the state, rewards Hash, total supply and block timestamp for the day\n@param _self Data pointer to storage\n@param _rewardsDay uint256 the rewards day\n@param _rewardsHash bytes32 the daily rewards hash\n@param _currentTotalSupply uint256 the current total supply", - "id": 2069, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_finalizeDailyApplicationRewards", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2031, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2024, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2069, - "src": "9327:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2023, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "9327:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2026, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2069, - "src": "9347:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2025, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9347:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2028, - "name": "_rewardsHash", - "nodeType": "VariableDeclaration", - "scope": 2069, - "src": "9368:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2027, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9368:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2030, - "name": "_currentTotalSupply", - "nodeType": "VariableDeclaration", - "scope": 2069, - "src": "9390:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2029, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9390:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9326:92:3" - }, - "payable": false, - "returnParameters": { - "id": 2032, - "nodeType": "ParameterList", - "parameters": [], - "src": "9438:0:3" - }, - "scope": 3297, - "src": "9285:433:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2108, - "nodeType": "Block", - "src": "10096:241:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2080, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2075, - "src": "10110:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2081, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2071, - "src": "10125:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2082, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "10125:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 2086, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2084, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2073, - "src": "10150:5:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 2083, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10142:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10142:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10125:32:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } - }, - "id": 2087, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "rewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1522, - "src": "10125:43:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10110:58:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2106, - "nodeType": "Block", - "src": "10253:78:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2098, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2071, - "src": "10274:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2099, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "10274:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 2103, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2101, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2073, - "src": "10299:5:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 2100, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10291:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10291:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10274:32:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } - }, - "id": 2104, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previousValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 1520, - "src": "10274:46:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2079, - "id": 2105, - "nodeType": "Return", - "src": "10267:53:3" - } - ] - }, - "id": 2107, - "nodeType": "IfStatement", - "src": "10106:225:3", - "trueBody": { - "id": 2097, - "nodeType": "Block", - "src": "10170:77:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2089, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2071, - "src": "10191:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2090, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "10191:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 2094, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2092, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2073, - "src": "10216:5:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 2091, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10208:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10208:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10191:32:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } - }, - "id": 2095, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 1518, - "src": "10191:45:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2079, - "id": 2096, - "nodeType": "Return", - "src": "10184:52:3" - } - ] - } - } - ] - }, - "documentation": "@dev Get parameter's value\n@param _self Data pointer to storage\n@param _name ParameterName name of the parameter\n@param _rewardsDay uint256 the rewards day", - "id": 2109, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getParameterValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2076, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2071, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2109, - "src": "9955:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2070, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "9955:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2073, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2109, - "src": "9983:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - "typeName": { - "contractScope": null, - "id": 2072, - "name": "ParameterName", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1513, - "src": "9983:13:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2075, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2109, - "src": "10012:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2074, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10012:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9945:92:3" - }, - "payable": false, - "returnParameters": { - "id": 2079, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2078, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2109, - "src": "10083:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2077, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10083:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10082:9:3" - }, - "scope": 3297, - "src": "9919:418:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2197, - "nodeType": "Block", - "src": "10843:491:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2124, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2117, - "src": "10857:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2125, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2111, - "src": "10872:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2126, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "10872:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 2130, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2128, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2113, - "src": "10897:5:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 2127, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10889:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10889:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10872:32:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } - }, - "id": 2131, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "rewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1522, - "src": "10872:43:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10857:58:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2195, - "nodeType": "Block", - "src": "11071:257:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2156, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2111, - "src": "11085:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2161, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "11085:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 2162, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2159, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2113, - "src": "11110:5:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 2158, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11102:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11102:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11085:32:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } - }, - "id": 2163, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "previousValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 1520, - "src": "11085:46:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2164, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2111, - "src": "11134:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2165, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "11134:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 2169, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2167, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2113, - "src": "11159:5:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 2166, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11151:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11151:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11134:32:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } - }, - "id": 2170, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 1518, - "src": "11134:45:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11085:94:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2172, - "nodeType": "ExpressionStatement", - "src": "11085:94:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2173, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2111, - "src": "11193:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2178, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "11193:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 2179, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2176, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2113, - "src": "11218:5:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 2175, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11210:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11210:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11193:32:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } - }, - "id": 2180, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "currentValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 1518, - "src": "11193:45:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2181, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2115, - "src": "11241:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11193:54:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2183, - "nodeType": "ExpressionStatement", - "src": "11193:54:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2184, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2111, - "src": "11260:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2189, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "11260:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 2190, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2187, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2113, - "src": "11285:5:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 2186, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11277:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11277:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11260:32:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } - }, - "id": 2191, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "rewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1522, - "src": "11260:43:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2192, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2117, - "src": "11306:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11260:57:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2194, - "nodeType": "ExpressionStatement", - "src": "11260:57:3" - } - ] - }, - "id": 2196, - "nodeType": "IfStatement", - "src": "10853:475:3", - "trueBody": { - "id": 2155, - "nodeType": "Block", - "src": "10917:148:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2133, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2111, - "src": "10930:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2138, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "10930:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 2139, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2136, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2113, - "src": "10955:5:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 2135, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10947:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10947:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10930:32:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } - }, - "id": 2140, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "currentValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 1518, - "src": "10930:45:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2141, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2115, - "src": "10978:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10930:54:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2143, - "nodeType": "ExpressionStatement", - "src": "10930:54:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2144, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2111, - "src": "10997:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2149, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "parameters", - "nodeType": "MemberAccess", - "referencedDeclaration": 1597, - "src": "10997:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Parameter_$1523_storage_$", - "typeString": "mapping(uint256 => struct PropsRewardsLib.Parameter storage ref)" - } - }, - "id": 2150, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2147, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2113, - "src": "11022:5:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - ], - "id": 2146, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11014:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11014:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10997:32:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Parameter_$1523_storage", - "typeString": "struct PropsRewardsLib.Parameter storage ref" - } - }, - "id": 2151, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "rewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1522, - "src": "10997:43:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2152, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2117, - "src": "11043:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10997:57:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2154, - "nodeType": "ExpressionStatement", - "src": "10997:57:3" - } - ] - } - } - ] - }, - "documentation": "@dev Allows the controller/owner to update rewards parameters\n@param _self Data pointer to storage\n@param _name ParameterName name of the parameter\n@param _value uint256 new value for the parameter\n@param _rewardsDay uint256 the rewards day", - "id": 2198, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2120, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2111, - "src": "10819:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 2121, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2117, - "src": "10826:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2122, - "modifierName": { - "argumentTypes": null, - "id": 2119, - "name": "onlyValidFutureRewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1776, - "src": "10793:25:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$", - "typeString": "modifier (struct PropsRewardsLib.Data storage pointer,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "10793:45:3" - } - ], - "name": "updateParameter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2118, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2111, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2198, - "src": "10663:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2110, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "10663:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2113, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2198, - "src": "10691:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - "typeName": { - "contractScope": null, - "id": 2112, - "name": "ParameterName", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1513, - "src": "10691:13:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2115, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 2198, - "src": "10720:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2114, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10720:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2117, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2198, - "src": "10744:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2116, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10744:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10653:116:3" - }, - "payable": false, - "returnParameters": { - "id": 2123, - "nodeType": "ParameterList", - "parameters": [], - "src": "10843:0:3" - }, - "scope": 3297, - "src": "10629:705:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2236, - "nodeType": "Block", - "src": "12016:255:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - }, - "id": 2218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2215, - "name": "_entityType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2202, - "src": "12030:11:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2216, - "name": "RewardedEntityType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1516, - "src": "12045:18:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_RewardedEntityType_$1516_$", - "typeString": "type(enum PropsRewardsLib.RewardedEntityType)" - } - }, - "id": 2217, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Application", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12045:30:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "src": "12030:45:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2234, - "nodeType": "Block", - "src": "12175:90:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2228, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2200, - "src": "12205:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 2229, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2204, - "src": "12212:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2230, - "name": "_rewardsAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2206, - "src": "12219:15:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2231, - "name": "_sidechainAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2208, - "src": "12236:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2227, - "name": "updateValidator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2413, - "src": "12189:15:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_bytes32_$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,bytes32,address,address) returns (uint256)" - } - }, - "id": 2232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12189:65:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2233, - "nodeType": "ExpressionStatement", - "src": "12189:65:3" - } - ] - }, - "id": 2235, - "nodeType": "IfStatement", - "src": "12026:239:3", - "trueBody": { - "id": 2226, - "nodeType": "Block", - "src": "12077:92:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2220, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2200, - "src": "12109:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 2221, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2204, - "src": "12116:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2222, - "name": "_rewardsAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2206, - "src": "12123:15:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2223, - "name": "_sidechainAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2208, - "src": "12140:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2219, - "name": "updateApplication", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2325, - "src": "12091:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$1612_storage_ptr_$_t_bytes32_$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,bytes32,address,address) returns (uint256)" - } - }, - "id": 2224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12091:67:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2225, - "nodeType": "ExpressionStatement", - "src": "12091:67:3" - } - ] - } - } - ] - }, - "documentation": "@dev Allows an application to add/update its details\n@param _self Data pointer to storage\n@param _entityType RewardedEntityType either application (0) or validator (1)\n@param _name bytes32 name of the app\n@param _rewardsAddress address an address for the app to receive the rewards\n@param _sidechainAddress address the address used for using the sidechain", - "id": 2237, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2211, - "name": "_rewardsAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2206, - "src": "11976:15:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2212, - "name": "_sidechainAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2208, - "src": "11993:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 2213, - "modifierName": { - "argumentTypes": null, - "id": 2210, - "name": "onlyValidAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1799, - "src": "11957:18:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_address_$", - "typeString": "modifier (address,address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "11957:54:3" - } - ], - "name": "updateEntity", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2209, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2200, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2237, - "src": "11778:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2199, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "11778:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2202, - "name": "_entityType", - "nodeType": "VariableDeclaration", - "scope": 2237, - "src": "11806:30:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - }, - "typeName": { - "contractScope": null, - "id": 2201, - "name": "RewardedEntityType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1516, - "src": "11806:18:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2204, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2237, - "src": "11846:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2203, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11846:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2206, - "name": "_rewardsAddress", - "nodeType": "VariableDeclaration", - "scope": 2237, - "src": "11869:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2205, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11869:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2208, - "name": "_sidechainAddress", - "nodeType": "VariableDeclaration", - "scope": 2237, - "src": "11902:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2207, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11902:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11768:165:3" - }, - "payable": false, - "returnParameters": { - "id": 2214, - "nodeType": "ParameterList", - "parameters": [], - "src": "12016:0:3" - }, - "scope": 3297, - "src": "11747:524:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2324, - "nodeType": "Block", - "src": "12797:553:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2250, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2239, - "src": "12807:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2254, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1583, - "src": "12807:18:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2255, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2252, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "12826:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12826:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12807:30:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2256, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1525, - "src": "12807:35:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2257, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2241, - "src": "12845:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "12807:43:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 2259, - "nodeType": "ExpressionStatement", - "src": "12807:43:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2268, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2260, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2239, - "src": "12860:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2264, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1583, - "src": "12860:18:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2265, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2262, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "12879:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12879:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12860:30:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2266, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "rewardsAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1527, - "src": "12860:45:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2267, - "name": "_rewardsAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2243, - "src": "12908:15:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12860:63:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2269, - "nodeType": "ExpressionStatement", - "src": "12860:63:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2270, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2239, - "src": "12933:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2274, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1583, - "src": "12933:18:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2275, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2272, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "12952:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12952:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12933:30:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2276, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "sidechainAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1529, - "src": "12933:47:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2277, - "name": "_sidechainAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2245, - "src": "12983:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12933:67:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2279, - "nodeType": "ExpressionStatement", - "src": "12933:67:3" - }, - { - "condition": { - "argumentTypes": null, - "id": 2286, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "13014:50:3", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2280, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2239, - "src": "13015:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2281, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1583, - "src": "13015:18:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2284, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2282, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "13034:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13034:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13015:30:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2285, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isInitializedState", - "nodeType": "MemberAccess", - "referencedDeclaration": 1531, - "src": "13015:49:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2318, - "nodeType": "IfStatement", - "src": "13010:278:3", - "trueBody": { - "id": 2317, - "nodeType": "Block", - "src": "13066:222:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2292, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "13108:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13108:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2287, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2239, - "src": "13080:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2290, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicationsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1586, - "src": "13080:22:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13080:27:3", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 2294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13080:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2295, - "nodeType": "ExpressionStatement", - "src": "13080:39:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2296, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2239, - "src": "13133:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2300, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1583, - "src": "13133:18:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2301, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2298, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "13152:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13152:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13133:30:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2302, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isInitializedState", - "nodeType": "MemberAccess", - "referencedDeclaration": 1531, - "src": "13133:49:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13185:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "13133:56:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2305, - "nodeType": "ExpressionStatement", - "src": "13133:56:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2306, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2239, - "src": "13203:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2310, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1583, - "src": "13203:18:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2311, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2308, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "13222:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13222:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13203:30:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2312, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "entityType", - "nodeType": "MemberAccess", - "referencedDeclaration": 1533, - "src": "13203:41:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2313, - "name": "RewardedEntityType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1516, - "src": "13247:18:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_RewardedEntityType_$1516_$", - "typeString": "type(enum PropsRewardsLib.RewardedEntityType)" - } - }, - "id": 2314, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Application", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13247:30:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "src": "13203:74:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "id": 2316, - "nodeType": "ExpressionStatement", - "src": "13203:74:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2320, - "name": "RewardedEntityType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1516, - "src": "13312:18:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_RewardedEntityType_$1516_$", - "typeString": "type(enum PropsRewardsLib.RewardedEntityType)" - } - }, - "id": 2321, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Application", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13312:30:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - ], - "id": 2319, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13304:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2322, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13304:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2249, - "id": 2323, - "nodeType": "Return", - "src": "13297:46:3" - } - ] - }, - "documentation": "@dev Allows an application to add/update its details\n@param _self Data pointer to storage\n@param _name bytes32 name of the app\n@param _rewardsAddress address an address for the app to receive the rewards\n@param _sidechainAddress address the address used for using the sidechain", - "id": 2325, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "updateApplication", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2246, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2239, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2325, - "src": "12636:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2238, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "12636:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2241, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2325, - "src": "12664:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2240, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "12664:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2243, - "name": "_rewardsAddress", - "nodeType": "VariableDeclaration", - "scope": 2325, - "src": "12687:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2242, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12687:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2245, - "name": "_sidechainAddress", - "nodeType": "VariableDeclaration", - "scope": 2325, - "src": "12720:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2244, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12720:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12626:125:3" - }, - "payable": false, - "returnParameters": { - "id": 2249, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2248, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2325, - "src": "12784:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2247, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12784:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12783:9:3" - }, - "scope": 3297, - "src": "12600:750:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2412, - "nodeType": "Block", - "src": "13883:535:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2338, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "13893:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2342, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1590, - "src": "13893:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2343, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2340, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "13910:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13910:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13893:28:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2344, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "name", - "nodeType": "MemberAccess", - "referencedDeclaration": 1525, - "src": "13893:33:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2345, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2329, - "src": "13929:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "13893:41:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 2347, - "nodeType": "ExpressionStatement", - "src": "13893:41:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2356, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2348, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "13944:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2352, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1590, - "src": "13944:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2353, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2350, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "13961:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13961:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13944:28:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2354, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "rewardsAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1527, - "src": "13944:43:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2355, - "name": "_rewardsAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2331, - "src": "13990:15:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "13944:61:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2357, - "nodeType": "ExpressionStatement", - "src": "13944:61:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2358, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "14015:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2362, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1590, - "src": "14015:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2363, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2360, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "14032:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14032:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14015:28:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2364, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "sidechainAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1529, - "src": "14015:45:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2365, - "name": "_sidechainAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "14063:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "14015:65:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2367, - "nodeType": "ExpressionStatement", - "src": "14015:65:3" - }, - { - "condition": { - "argumentTypes": null, - "id": 2374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "14094:48:3", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2368, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "14095:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2369, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1590, - "src": "14095:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2372, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2370, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "14112:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14112:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14095:28:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2373, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isInitializedState", - "nodeType": "MemberAccess", - "referencedDeclaration": 1531, - "src": "14095:47:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2406, - "nodeType": "IfStatement", - "src": "14090:268:3", - "trueBody": { - "id": 2405, - "nodeType": "Block", - "src": "14144:214:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2380, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "14184:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14184:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2375, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "14158:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2378, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validatorsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1593, - "src": "14158:20:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14158:25:3", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 2382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14158:37:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2383, - "nodeType": "ExpressionStatement", - "src": "14158:37:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2384, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "14209:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2388, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1590, - "src": "14209:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2389, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2386, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "14226:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14226:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14209:28:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2390, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isInitializedState", - "nodeType": "MemberAccess", - "referencedDeclaration": 1531, - "src": "14209:47:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2391, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14259:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "14209:54:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2393, - "nodeType": "ExpressionStatement", - "src": "14209:54:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2403, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2394, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "14277:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2398, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1590, - "src": "14277:16:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2399, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2396, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4198, - "src": "14294:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14294:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14277:28:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2400, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "entityType", - "nodeType": "MemberAccess", - "referencedDeclaration": 1533, - "src": "14277:39:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2401, - "name": "RewardedEntityType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1516, - "src": "14319:18:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_RewardedEntityType_$1516_$", - "typeString": "type(enum PropsRewardsLib.RewardedEntityType)" - } - }, - "id": 2402, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Validator", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14319:28:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "src": "14277:70:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "id": 2404, - "nodeType": "ExpressionStatement", - "src": "14277:70:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2408, - "name": "RewardedEntityType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1516, - "src": "14382:18:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_RewardedEntityType_$1516_$", - "typeString": "type(enum PropsRewardsLib.RewardedEntityType)" - } - }, - "id": 2409, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Validator", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14382:28:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - ], - "id": 2407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14374:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2410, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14374:37:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2337, - "id": 2411, - "nodeType": "Return", - "src": "14367:44:3" - } - ] - }, - "documentation": "@dev Allows a validator to add/update its details\n@param _self Data pointer to storage\n@param _name bytes32 name of the validator\n@param _rewardsAddress address an address for the validator to receive the rewards\n@param _sidechainAddress address the address used for using the sidechain", - "id": 2413, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "updateValidator", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2334, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2327, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2413, - "src": "13722:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2326, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "13722:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2329, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2413, - "src": "13750:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2328, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "13750:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2331, - "name": "_rewardsAddress", - "nodeType": "VariableDeclaration", - "scope": 2413, - "src": "13773:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2330, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13773:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2333, - "name": "_sidechainAddress", - "nodeType": "VariableDeclaration", - "scope": 2413, - "src": "13806:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13806:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13712:125:3" - }, - "payable": false, - "returnParameters": { - "id": 2337, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2336, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2413, - "src": "13870:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13870:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13869:9:3" - }, - "scope": 3297, - "src": "13688:730:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2463, - "nodeType": "Block", - "src": "14899:417:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2431, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2417, - "src": "15011:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2432, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2415, - "src": "15025:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2433, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "15025:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2434, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "rewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1550, - "src": "15025:35:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15011:49:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2436, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2415, - "src": "15064:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2437, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "15064:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2438, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "15064:36:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2439, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15064:43:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2440, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15110:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15064:47:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15011:100:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2448, - "nodeType": "IfStatement", - "src": "15007:169:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2444, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2415, - "src": "15151:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2445, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "15151:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - ], - "id": 2443, - "name": "_updatePreviousEntityList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3137, - "src": "15125:25:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_RewardedEntityList_$1551_storage_ptr_$returns$__$", - "typeString": "function (struct PropsRewardsLib.RewardedEntityList storage pointer)" - } - }, - "id": 2446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15125:51:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2447, - "nodeType": "ExpressionStatement", - "src": "15125:51:3" - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2450, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2415, - "src": "15212:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2451, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "15212:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - { - "argumentTypes": null, - "id": 2452, - "name": "_validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "15238:11:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - ], - "id": 2449, - "name": "_updateCurrentEntityList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3052, - "src": "15187:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_RewardedEntityList_$1551_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", - "typeString": "function (struct PropsRewardsLib.RewardedEntityList storage pointer,address[] memory)" - } - }, - "id": 2453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15187:63:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2454, - "nodeType": "ExpressionStatement", - "src": "15187:63:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2455, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2415, - "src": "15260:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2458, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "15260:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2459, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "rewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1550, - "src": "15260:35:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2460, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2417, - "src": "15298:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15260:49:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2462, - "nodeType": "ExpressionStatement", - "src": "15260:49:3" - } - ] - }, - "documentation": "@dev Set new validators list\n@param _self Data pointer to storage\n@param _rewardsDay uint256 the rewards day from which the list should be active\n@param _validators address[] array of validators", - "id": 2464, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2423, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2415, - "src": "14824:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 2424, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2417, - "src": "14831:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2425, - "modifierName": { - "argumentTypes": null, - "id": 2422, - "name": "onlyValidFutureRewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1776, - "src": "14798:25:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$", - "typeString": "modifier (struct PropsRewardsLib.Data storage pointer,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14798:45:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 2427, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2415, - "src": "14875:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 2428, - "name": "_validators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "14882:11:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - } - ], - "id": 2429, - "modifierName": { - "argumentTypes": null, - "id": 2426, - "name": "onlyExistingValidators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1700, - "src": "14852:22:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_struct$_Data_$1612_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "modifier (struct PropsRewardsLib.Data storage pointer,address[] memory)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14852:42:3" - } - ], - "name": "setValidators", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2421, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2415, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2464, - "src": "14690:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2414, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "14690:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2417, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2464, - "src": "14718:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2416, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14718:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2420, - "name": "_validators", - "nodeType": "VariableDeclaration", - "scope": 2464, - "src": "14747:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2418, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14747:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2419, - "length": null, - "nodeType": "ArrayTypeName", - "src": "14747:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14680:94:3" - }, - "payable": false, - "returnParameters": { - "id": 2430, - "nodeType": "ParameterList", - "parameters": [], - "src": "14899:0:3" - }, - "scope": 3297, - "src": "14658:658:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2514, - "nodeType": "Block", - "src": "15810:335:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2482, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2468, - "src": "15825:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2483, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2466, - "src": "15839:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2484, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedApplications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1601, - "src": "15839:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2485, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "rewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1550, - "src": "15839:37:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15825:51:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2487, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2466, - "src": "15880:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2488, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedApplications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1601, - "src": "15880:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2489, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "15880:38:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2490, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15880:45:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2491, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15928:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15880:49:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15825:104:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2499, - "nodeType": "IfStatement", - "src": "15821:179:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2495, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2466, - "src": "15973:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2496, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedApplications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1601, - "src": "15973:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - ], - "id": 2494, - "name": "_updatePreviousEntityList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3137, - "src": "15947:25:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_RewardedEntityList_$1551_storage_ptr_$returns$__$", - "typeString": "function (struct PropsRewardsLib.RewardedEntityList storage pointer)" - } - }, - "id": 2497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15947:53:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2498, - "nodeType": "ExpressionStatement", - "src": "15947:53:3" - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2501, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2466, - "src": "16035:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2502, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedApplications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1601, - "src": "16035:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - { - "argumentTypes": null, - "id": 2503, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2471, - "src": "16063:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - ], - "id": 2500, - "name": "_updateCurrentEntityList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3052, - "src": "16010:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_RewardedEntityList_$1551_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", - "typeString": "function (struct PropsRewardsLib.RewardedEntityList storage pointer,address[] memory)" - } - }, - "id": 2504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16010:67:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2505, - "nodeType": "ExpressionStatement", - "src": "16010:67:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2506, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2466, - "src": "16087:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2509, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedApplications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1601, - "src": "16087:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2510, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "rewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1550, - "src": "16087:37:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2511, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2468, - "src": "16127:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16087:51:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2513, - "nodeType": "ExpressionStatement", - "src": "16087:51:3" - } - ] - }, - "documentation": "@dev Set new applications list\n@param _self Data pointer to storage\n@param _rewardsDay uint256 the rewards day from which the list should be active\n@param _applications address[] array of applications", - "id": 2515, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2474, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2466, - "src": "15731:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 2475, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2468, - "src": "15738:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2476, - "modifierName": { - "argumentTypes": null, - "id": 2473, - "name": "onlyValidFutureRewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1776, - "src": "15705:25:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_struct$_Data_$1612_storage_ptr_$_t_uint256_$", - "typeString": "modifier (struct PropsRewardsLib.Data storage pointer,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "15705:45:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 2478, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2466, - "src": "15784:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "id": 2479, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2471, - "src": "15791:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - } - ], - "id": 2480, - "modifierName": { - "argumentTypes": null, - "id": 2477, - "name": "onlyExistingApplications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1667, - "src": "15759:24:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_struct$_Data_$1612_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "modifier (struct PropsRewardsLib.Data storage pointer,address[] memory)" - } - }, - "nodeType": "ModifierInvocation", - "src": "15759:46:3" - } - ], - "name": "setApplications", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2472, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2466, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2515, - "src": "15595:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2465, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "15595:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2468, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2515, - "src": "15623:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2467, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15623:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2471, - "name": "_applications", - "nodeType": "VariableDeclaration", - "scope": 2515, - "src": "15652:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2469, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15652:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2470, - "length": null, - "nodeType": "ArrayTypeName", - "src": "15652:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15585:96:3" - }, - "payable": false, - "returnParameters": { - "id": 2481, - "nodeType": "ParameterList", - "parameters": [], - "src": "15810:0:3" - }, - "scope": 3297, - "src": "15561:584:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2568, - "nodeType": "Block", - "src": "16604:611:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - }, - "id": 2530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2527, - "name": "_entityType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2519, - "src": "16618:11:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2528, - "name": "RewardedEntityType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1516, - "src": "16633:18:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_RewardedEntityType_$1516_$", - "typeString": "type(enum PropsRewardsLib.RewardedEntityType)" - } - }, - "id": 2529, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Application", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16633:30:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "src": "16618:45:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2566, - "nodeType": "Block", - "src": "16943:266:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 2554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "16961:77:3", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2550, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2517, - "src": "17000:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2551, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "17000:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - { - "argumentTypes": null, - "id": 2552, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2521, - "src": "17026:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2549, - "name": "_usePreviousSelectedRewardsEntityList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2590, - "src": "16962:37:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_RewardedEntityList_$1551_memory_ptr_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (struct PropsRewardsLib.RewardedEntityList memory,uint256) pure returns (bool)" - } - }, - "id": 2553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16962:76:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2564, - "nodeType": "Block", - "src": "17122:77:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2560, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2517, - "src": "17147:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2561, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "17147:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2562, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previousList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1548, - "src": "17147:37:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 2526, - "id": 2563, - "nodeType": "Return", - "src": "17140:44:3" - } - ] - }, - "id": 2565, - "nodeType": "IfStatement", - "src": "16957:242:3", - "trueBody": { - "id": 2559, - "nodeType": "Block", - "src": "17040:76:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2555, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2517, - "src": "17065:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2556, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "17065:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2557, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "17065:36:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 2526, - "id": 2558, - "nodeType": "Return", - "src": "17058:43:3" - } - ] - } - } - ] - }, - "id": 2567, - "nodeType": "IfStatement", - "src": "16614:595:3", - "trueBody": { - "id": 2548, - "nodeType": "Block", - "src": "16665:272:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 2536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "16683:79:3", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2532, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2517, - "src": "16722:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2533, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedApplications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1601, - "src": "16722:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - { - "argumentTypes": null, - "id": 2534, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2521, - "src": "16750:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2531, - "name": "_usePreviousSelectedRewardsEntityList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2590, - "src": "16684:37:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_RewardedEntityList_$1551_memory_ptr_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (struct PropsRewardsLib.RewardedEntityList memory,uint256) pure returns (bool)" - } - }, - "id": 2535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16684:78:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2546, - "nodeType": "Block", - "src": "16848:79:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2542, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2517, - "src": "16873:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2543, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedApplications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1601, - "src": "16873:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2544, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previousList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1548, - "src": "16873:39:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 2526, - "id": 2545, - "nodeType": "Return", - "src": "16866:46:3" - } - ] - }, - "id": 2547, - "nodeType": "IfStatement", - "src": "16679:248:3", - "trueBody": { - "id": 2541, - "nodeType": "Block", - "src": "16764:78:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2537, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2517, - "src": "16789:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2538, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedApplications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1601, - "src": "16789:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2539, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "16789:38:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 2526, - "id": 2540, - "nodeType": "Return", - "src": "16782:45:3" - } - ] - } - } - ] - } - } - ] - }, - "documentation": "@dev Get applications or validators list\n@param _self Data pointer to storage\n@param _entityType RewardedEntityType either application (0) or validator (1)\n@param _rewardsDay uint256 the rewards day to determine which list to get", - "id": 2569, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getEntities", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2522, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2517, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2569, - "src": "16450:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2516, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "16450:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2519, - "name": "_entityType", - "nodeType": "VariableDeclaration", - "scope": 2569, - "src": "16478:30:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - }, - "typeName": { - "contractScope": null, - "id": 2518, - "name": "RewardedEntityType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1516, - "src": "16478:18:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RewardedEntityType_$1516", - "typeString": "enum PropsRewardsLib.RewardedEntityType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2521, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2569, - "src": "16518:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2520, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16518:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16440:103:3" - }, - "payable": false, - "returnParameters": { - "id": 2526, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2525, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2569, - "src": "16589:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2523, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16589:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2524, - "length": null, - "nodeType": "ArrayTypeName", - "src": "16589:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16588:11:3" - }, - "scope": 3297, - "src": "16420:795:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2589, - "nodeType": "Block", - "src": "17635:146:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2578, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2573, - "src": "17649:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2579, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2571, - "src": "17664:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_memory_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList memory" - } - }, - "id": 2580, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "rewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1550, - "src": "17664:30:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17649:45:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2587, - "nodeType": "Block", - "src": "17739:36:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2585, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17760:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 2577, - "id": 2586, - "nodeType": "Return", - "src": "17753:11:3" - } - ] - }, - "id": 2588, - "nodeType": "IfStatement", - "src": "17645:130:3", - "trueBody": { - "id": 2584, - "nodeType": "Block", - "src": "17696:37:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2582, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17717:5:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 2577, - "id": 2583, - "nodeType": "Return", - "src": "17710:12:3" - } - ] - } - } - ] - }, - "documentation": "@dev Get which entity list to use. If true use previous if false use current\n@param _rewardedEntitylist RewardedEntityList pointer to storage\n@param _rewardsDay uint256 the rewards day to determine which list to get", - "id": 2590, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_usePreviousSelectedRewardsEntityList", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2574, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2571, - "name": "_rewardedEntitylist", - "nodeType": "VariableDeclaration", - "scope": 2590, - "src": "17517:38:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_memory_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList" - }, - "typeName": { - "contractScope": null, - "id": 2570, - "name": "RewardedEntityList", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1551, - "src": "17517:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2573, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2590, - "src": "17557:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2572, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17557:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17516:61:3" - }, - "payable": false, - "returnParameters": { - "id": 2577, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2576, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2590, - "src": "17625:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2575, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17625:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17624:6:3" - }, - "scope": 3297, - "src": "17470:311:3", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 2628, - "nodeType": "Block", - "src": "18217:281:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31653136", - "id": 2625, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18486:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000000000000000_by_1", - "typeString": "int_const 10000000000000000" - }, - "value": "1e16" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_10000000000000000_by_1", - "typeString": "int_const 10000000000000000" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2617, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2592, - "src": "18407:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2618, - "name": "ParameterName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1513, - "src": "18414:13:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ParameterName_$1513_$", - "typeString": "type(enum PropsRewardsLib.ParameterName)" - } - }, - "id": 2619, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "ApplicationRewardsMaxVariationPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "18414:51:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - { - "argumentTypes": null, - "id": 2620, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2594, - "src": "18467:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2616, - "name": "getParameterValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "18389:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_ParameterName_$1513_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.ParameterName,uint256) view returns (uint256)" - } - }, - "id": 2621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18389:90:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2609, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2592, - "src": "18314:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2610, - "name": "ParameterName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1513, - "src": "18321:13:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ParameterName_$1513_$", - "typeString": "type(enum PropsRewardsLib.ParameterName)" - } - }, - "id": 2611, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "ApplicationRewardsPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "18321:39:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - { - "argumentTypes": null, - "id": 2612, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2594, - "src": "18362:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2608, - "name": "getParameterValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "18296:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_ParameterName_$1513_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.ParameterName,uint256) view returns (uint256)" - } - }, - "id": 2613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18296:78:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2604, - "name": "_currentTotalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "18261:19:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2601, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2592, - "src": "18236:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2602, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "maxTotalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 1609, - "src": "18236:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3544, - "src": "18236:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2605, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18236:45:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2606, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "18235:47:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 3496, - "src": "18235:51:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2614, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18235:140:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 3496, - "src": "18235:144:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2622, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18235:245:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2623, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "18234:247:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 3520, - "src": "18234:251:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18234:257:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2600, - "id": 2627, - "nodeType": "Return", - "src": "18227:264:3" - } - ] - }, - "documentation": "@dev Checks how many validators are needed for app rewards\n@param _self Data pointer to storage\n@param _rewardsDay uint256 the rewards day\n@param _currentTotalSupply uint256 current total supply", - "id": 2629, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_getMaxAppRewardsDailyAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2597, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2592, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2629, - "src": "18068:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2591, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "18068:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2594, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2629, - "src": "18096:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2593, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18096:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2596, - "name": "_currentTotalSupply", - "nodeType": "VariableDeclaration", - "scope": 2629, - "src": "18125:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2595, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18125:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18058:100:3" - }, - "payable": false, - "returnParameters": { - "id": 2600, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2599, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2629, - "src": "18204:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2598, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18204:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18203:9:3" - }, - "scope": 3297, - "src": "18021:477:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2665, - "nodeType": "Block", - "src": "18944:208:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2662, - "name": "_numOfValidators", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2635, - "src": "19128:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "316538", - "id": 2658, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19118:3:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - }, - "value": "1e8" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2650, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2631, - "src": "19053:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2651, - "name": "ParameterName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1513, - "src": "19060:13:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ParameterName_$1513_$", - "typeString": "type(enum PropsRewardsLib.ParameterName)" - } - }, - "id": 2652, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "ValidatorRewardsPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "19060:37:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - { - "argumentTypes": null, - "id": 2653, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2633, - "src": "19099:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2649, - "name": "getParameterValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "19035:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_ParameterName_$1513_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.ParameterName,uint256) view returns (uint256)" - } - }, - "id": 2654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19035:76:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2643, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2631, - "src": "18989:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2644, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "18989:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 2645, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "totalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 1560, - "src": "18989:30:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2640, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2631, - "src": "18964:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2641, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "maxTotalSupply", - "nodeType": "MemberAccess", - "referencedDeclaration": 1609, - "src": "18964:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3544, - "src": "18964:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18964:56:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2647, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "18963:58:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 3496, - "src": "18963:62:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18963:149:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2656, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "18962:151:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2657, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 3520, - "src": "18962:155:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18962:160:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2660, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "18961:162:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 3520, - "src": "18961:166:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18961:184:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2639, - "id": 2664, - "nodeType": "Return", - "src": "18954:191:3" - } - ] - }, - "documentation": "@dev Checks how many validators are needed for app rewards\n@param _self Data pointer to storage\n@param _rewardsDay uint256 the rewards day\n@param _numOfValidators uint256 number of validators", - "id": 2666, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_getValidatorRewardsDailyAmountPerValidator", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2636, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2631, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2666, - "src": "18798:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2630, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "18798:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2633, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2666, - "src": "18826:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2632, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18826:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2635, - "name": "_numOfValidators", - "nodeType": "VariableDeclaration", - "scope": 2666, - "src": "18855:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2634, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18855:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18788:97:3" - }, - "payable": false, - "returnParameters": { - "id": 2639, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2638, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2666, - "src": "18931:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2637, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18931:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18930:9:3" - }, - "scope": 3297, - "src": "18736:416:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2732, - "nodeType": "Block", - "src": "19619:390:3", - "statements": [ - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 2680, - "name": "sum", - "nodeType": "VariableDeclaration", - "scope": 2733, - "src": "19629:11:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2679, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19629:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2681, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "19629:11:3" - }, - { - "assignments": [ - 2683 - ], - "declarations": [ - { - "constant": false, - "id": 2683, - "name": "valid", - "nodeType": "VariableDeclaration", - "scope": 2733, - "src": "19650:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2682, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19650:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2685, - "initialValue": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2684, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19663:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "nodeType": "VariableDeclarationStatement", - "src": "19650:17:3" - }, - { - "body": { - "id": 2719, - "nodeType": "Block", - "src": "19723:140:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2697, - "name": "sum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "19737:3:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2700, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2674, - "src": "19751:8:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2702, - "indexExpression": { - "argumentTypes": null, - "id": 2701, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2687, - "src": "19760:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19751:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2698, - "name": "sum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "19743:3:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3568, - "src": "19743:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19743:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19737:26:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2705, - "nodeType": "ExpressionStatement", - "src": "19737:26:3" - }, - { - "condition": { - "argumentTypes": null, - "id": 2713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "19781:56:3", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2706, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2668, - "src": "19782:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2707, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1583, - "src": "19782:18:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_RewardedEntity_$1534_storage_$", - "typeString": "mapping(address => struct PropsRewardsLib.RewardedEntity storage ref)" - } - }, - "id": 2711, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2708, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2671, - "src": "19801:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2710, - "indexExpression": { - "argumentTypes": null, - "id": 2709, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2687, - "src": "19815:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19801:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19782:36:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntity_$1534_storage", - "typeString": "struct PropsRewardsLib.RewardedEntity storage ref" - } - }, - "id": 2712, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isInitializedState", - "nodeType": "MemberAccess", - "referencedDeclaration": 1531, - "src": "19782:55:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2718, - "nodeType": "IfStatement", - "src": "19777:75:3", - "trueBody": { - "expression": { - "argumentTypes": null, - "id": 2716, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2714, - "name": "valid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "19839:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2715, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19847:5:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "19839:13:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2717, - "nodeType": "ExpressionStatement", - "src": "19839:13:3" - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2690, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2687, - "src": "19697:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2691, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2674, - "src": "19701:8:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "19701:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19697:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2720, - "initializationExpression": { - "assignments": [ - 2687 - ], - "declarations": [ - { - "constant": false, - "id": 2687, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2733, - "src": "19682:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2686, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19682:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2689, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2688, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19694:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "19682:13:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "19718:3:3", - "subExpression": { - "argumentTypes": null, - "id": 2694, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2687, - "src": "19718:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2696, - "nodeType": "ExpressionStatement", - "src": "19718:3:3" - }, - "nodeType": "ForStatement", - "src": "19677:186:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2722, - "name": "sum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "19897:3:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2723, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19903:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "19897:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 2725, - "name": "valid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "19908:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "19897:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "53756d207a65726f206f72206e6f6e65206578697374696e6720617070207375626d6974746564", - "id": 2727, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19931:41:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c07a2c8fe18cd495fd11956af17e5bcd278103233303342dcc5ea89db1ab1dea", - "typeString": "literal_string \"Sum zero or none existing app submitted\"" - }, - "value": "Sum zero or none existing app submitted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c07a2c8fe18cd495fd11956af17e5bcd278103233303342dcc5ea89db1ab1dea", - "typeString": "literal_string \"Sum zero or none existing app submitted\"" - } - ], - "id": 2721, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4202, - "src": "19872:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19872:110:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2729, - "nodeType": "ExpressionStatement", - "src": "19872:110:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2730, - "name": "sum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "19999:3:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2678, - "id": 2731, - "nodeType": "Return", - "src": "19992:10:3" - } - ] - }, - "documentation": "@dev Checks if app daily rewards amount is valid\n@param _self Data pointer to storage\n@param _applications address[] array of application addresses getting the daily rewards\n@param _amounts uint256[] array of amounts each app should get", - "id": 2733, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_validateSubmittedData", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2675, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2668, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2733, - "src": "19475:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2667, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "19475:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2671, - "name": "_applications", - "nodeType": "VariableDeclaration", - "scope": 2733, - "src": "19503:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2669, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19503:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2670, - "length": null, - "nodeType": "ArrayTypeName", - "src": "19503:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2674, - "name": "_amounts", - "nodeType": "VariableDeclaration", - "scope": 2733, - "src": "19536:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 2672, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19536:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2673, - "length": null, - "nodeType": "ArrayTypeName", - "src": "19536:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19465:95:3" - }, - "payable": false, - "returnParameters": { - "id": 2678, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2677, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2733, - "src": "19606:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2676, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19606:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19605:9:3" - }, - "scope": 3297, - "src": "19434:575:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2846, - "nodeType": "Block", - "src": "20596:900:3", - "statements": [ - { - "assignments": [ - 2751 - ], - "declarations": [ - { - "constant": false, - "id": 2751, - "name": "nonActiveApplication", - "nodeType": "VariableDeclaration", - "scope": 2847, - "src": "20606:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2750, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20606:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2753, - "initialValue": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2752, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20634:5:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "nodeType": "VariableDeclarationStatement", - "src": "20606:33:3" - }, - { - "condition": { - "argumentTypes": null, - "id": 2759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20653:79:3", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2755, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2735, - "src": "20692:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedApplications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1601, - "src": "20692:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - { - "argumentTypes": null, - "id": 2757, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2737, - "src": "20720:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2754, - "name": "_usePreviousSelectedRewardsEntityList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2590, - "src": "20654:37:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_RewardedEntityList_$1551_memory_ptr_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (struct PropsRewardsLib.RewardedEntityList memory,uint256) pure returns (bool)" - } - }, - "id": 2758, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20654:78:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2815, - "nodeType": "Block", - "src": "20974:235:3", - "statements": [ - { - "body": { - "id": 2813, - "nodeType": "Block", - "src": "21039:160:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 2806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "21061:54:3", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2799, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2735, - "src": "21062:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2800, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedApplications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1601, - "src": "21062:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2801, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previous", - "nodeType": "MemberAccess", - "referencedDeclaration": 1542, - "src": "21062:35:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2805, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2802, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "21098:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2804, - "indexExpression": { - "argumentTypes": null, - "id": 2803, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2789, - "src": "21112:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21098:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21062:53:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2812, - "nodeType": "IfStatement", - "src": "21057:128:3", - "trueBody": { - "id": 2811, - "nodeType": "Block", - "src": "21117:68:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2807, - "name": "nonActiveApplication", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2751, - "src": "21139:20:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2808, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21162:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "21139:27:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2810, - "nodeType": "ExpressionStatement", - "src": "21139:27:3" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2792, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2789, - "src": "21008:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2793, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "21012:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21012:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21008:24:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2814, - "initializationExpression": { - "assignments": [ - 2789 - ], - "declarations": [ - { - "constant": false, - "id": 2789, - "name": "j", - "nodeType": "VariableDeclaration", - "scope": 2847, - "src": "20993:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2788, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20993:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2791, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2790, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21005:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "20993:13:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "21034:3:3", - "subExpression": { - "argumentTypes": null, - "id": 2796, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2789, - "src": "21034:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2798, - "nodeType": "ExpressionStatement", - "src": "21034:3:3" - }, - "nodeType": "ForStatement", - "src": "20988:211:3" - } - ] - }, - "id": 2816, - "nodeType": "IfStatement", - "src": "20649:560:3", - "trueBody": { - "id": 2787, - "nodeType": "Block", - "src": "20734:234:3", - "statements": [ - { - "body": { - "id": 2785, - "nodeType": "Block", - "src": "20799:159:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 2778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20821:53:3", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2771, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2735, - "src": "20822:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2772, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedApplications", - "nodeType": "MemberAccess", - "referencedDeclaration": 1601, - "src": "20822:26:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2773, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 1538, - "src": "20822:34:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 2777, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2774, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "20857:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2776, - "indexExpression": { - "argumentTypes": null, - "id": 2775, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2761, - "src": "20871:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20857:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20822:52:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2784, - "nodeType": "IfStatement", - "src": "20817:127:3", - "trueBody": { - "id": 2783, - "nodeType": "Block", - "src": "20876:68:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2779, - "name": "nonActiveApplication", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2751, - "src": "20898:20:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2780, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20921:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "20898:27:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2782, - "nodeType": "ExpressionStatement", - "src": "20898:27:3" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2764, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2761, - "src": "20768:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2765, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "20772:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2766, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "20772:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20768:24:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2786, - "initializationExpression": { - "assignments": [ - 2761 - ], - "declarations": [ - { - "constant": false, - "id": 2761, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 2847, - "src": "20753:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2760, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20753:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2763, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20765:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "20753:13:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 2769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "20794:3:3", - "subExpression": { - "argumentTypes": null, - "id": 2768, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2761, - "src": "20794:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2770, - "nodeType": "ExpressionStatement", - "src": "20794:3:3" - }, - "nodeType": "ForStatement", - "src": "20748:210:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2817, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "21237:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21237:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2819, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21260:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "21237:24:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2821, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "21277:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21277:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2823, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2745, - "src": "21301:8:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2824, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21301:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21277:39:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "21237:79:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 2828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "21332:21:3", - "subExpression": { - "argumentTypes": null, - "id": 2827, - "name": "nonActiveApplication", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2751, - "src": "21333:20:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "21237:116:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 2843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2833, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2737, - "src": "21396:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2834, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "21409:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21409:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2836, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2745, - "src": "21431:8:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 2837, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21431:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2838, - "name": "_applications", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2742, - "src": "21448:13:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 2839, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2745, - "src": "21463:8:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 2831, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4185, - "src": "21379:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2832, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21379:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 2840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21379:93:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2830, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4192, - "src": "21369:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 2841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21369:104:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2842, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2739, - "src": "21477:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "21369:120:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "21237:252:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2749, - "id": 2845, - "nodeType": "Return", - "src": "21218:271:3" - } - ] - }, - "documentation": "@dev Checks if submitted data matches rewards hash\n@param _rewardsDay uint256 the rewards day\n@param _rewardsHash bytes32 hash of the rewards data\n@param _applications address[] array of application addresses getting the daily rewards\n@param _amounts uint256[] array of amounts each app should get", - "id": 2847, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_rewardsHashIsValid", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2735, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2847, - "src": "20396:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2734, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "20396:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2737, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2847, - "src": "20424:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2736, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20424:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2739, - "name": "_rewardsHash", - "nodeType": "VariableDeclaration", - "scope": 2847, - "src": "20453:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2738, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "20453:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2742, - "name": "_applications", - "nodeType": "VariableDeclaration", - "scope": 2847, - "src": "20483:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2740, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20483:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2741, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20483:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2745, - "name": "_amounts", - "nodeType": "VariableDeclaration", - "scope": 2847, - "src": "20516:18:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 2743, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20516:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2744, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20516:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20386:154:3" - }, - "payable": false, - "returnParameters": { - "id": 2749, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2748, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2847, - "src": "20586:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2747, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20586:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20585:6:3" - }, - "scope": 3297, - "src": "20358:1138:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2875, - "nodeType": "Block", - "src": "21822:256:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 2861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "21836:77:3", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2857, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2849, - "src": "21875:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "21875:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - { - "argumentTypes": null, - "id": 2859, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2851, - "src": "21901:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2856, - "name": "_usePreviousSelectedRewardsEntityList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2590, - "src": "21837:37:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_RewardedEntityList_$1551_memory_ptr_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (struct PropsRewardsLib.RewardedEntityList memory,uint256) pure returns (bool)" - } - }, - "id": 2860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21837:76:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2873, - "nodeType": "Block", - "src": "21996:76:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2868, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2849, - "src": "22017:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2869, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "22017:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2870, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previousList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1548, - "src": "22017:37:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2871, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "22017:44:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2855, - "id": 2872, - "nodeType": "Return", - "src": "22010:51:3" - } - ] - }, - "id": 2874, - "nodeType": "IfStatement", - "src": "21832:240:3", - "trueBody": { - "id": 2867, - "nodeType": "Block", - "src": "21915:75:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2862, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2849, - "src": "21936:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2863, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "21936:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2864, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "21936:36:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2865, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21936:43:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2855, - "id": 2866, - "nodeType": "Return", - "src": "21929:50:3" - } - ] - } - } - ] - }, - "documentation": "@dev Checks how many validators are needed for app rewards\n@param _self Data pointer to storage\n@param _rewardsDay uint256 the rewards day", - "id": 2876, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_requiredValidatorsForValidatorsRewards", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2852, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2849, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2876, - "src": "21723:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2848, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "21723:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2851, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2876, - "src": "21743:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2850, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21743:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21722:41:3" - }, - "payable": false, - "returnParameters": { - "id": 2855, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2854, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2876, - "src": "21809:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2853, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21809:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21808:9:3" - }, - "scope": 3297, - "src": "21674:404:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2936, - "nodeType": "Block", - "src": "22397:462:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 2890, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "22411:77:3", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2886, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2878, - "src": "22450:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2887, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "22450:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - { - "argumentTypes": null, - "id": 2888, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2880, - "src": "22476:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2885, - "name": "_usePreviousSelectedRewardsEntityList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2590, - "src": "22412:37:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_RewardedEntityList_$1551_memory_ptr_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (struct PropsRewardsLib.RewardedEntityList memory,uint256) pure returns (bool)" - } - }, - "id": 2889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22412:76:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2934, - "nodeType": "Block", - "src": "22674:179:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2931, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22840:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "316538", - "id": 2927, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22830:3:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - }, - "value": "1e8" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2919, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2878, - "src": "22764:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2920, - "name": "ParameterName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1513, - "src": "22771:13:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ParameterName_$1513_$", - "typeString": "type(enum PropsRewardsLib.ParameterName)" - } - }, - "id": 2921, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "ValidatorMajorityPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "22771:38:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - { - "argumentTypes": null, - "id": 2922, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2880, - "src": "22811:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2918, - "name": "getParameterValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "22746:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_ParameterName_$1513_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.ParameterName,uint256) view returns (uint256)" - } - }, - "id": 2923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22746:77:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2913, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2878, - "src": "22697:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2914, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "22697:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2915, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previousList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1548, - "src": "22697:37:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2916, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "22697:44:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 3496, - "src": "22697:48:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22697:127:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2925, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22696:129:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 3520, - "src": "22696:133:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22696:138:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2929, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22695:140:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3568, - "src": "22695:144:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22695:147:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2884, - "id": 2933, - "nodeType": "Return", - "src": "22688:154:3" - } - ] - }, - "id": 2935, - "nodeType": "IfStatement", - "src": "22407:446:3", - "trueBody": { - "id": 2912, - "nodeType": "Block", - "src": "22490:178:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2909, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22655:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "316538", - "id": 2905, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22645:3:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - }, - "value": "1e8" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_100000000_by_1", - "typeString": "int_const 100000000" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2897, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2878, - "src": "22579:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2898, - "name": "ParameterName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1513, - "src": "22586:13:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ParameterName_$1513_$", - "typeString": "type(enum PropsRewardsLib.ParameterName)" - } - }, - "id": 2899, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "ValidatorMajorityPercent", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "22586:38:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - } - }, - { - "argumentTypes": null, - "id": 2900, - "name": "_rewardsDay", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2880, - "src": "22626:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - }, - { - "typeIdentifier": "t_enum$_ParameterName_$1513", - "typeString": "enum PropsRewardsLib.ParameterName" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2896, - "name": "getParameterValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "22561:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1612_storage_ptr_$_t_enum$_ParameterName_$1513_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (struct PropsRewardsLib.Data storage pointer,enum PropsRewardsLib.ParameterName,uint256) view returns (uint256)" - } - }, - "id": 2901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22561:77:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2891, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2878, - "src": "22513:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2892, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "selectedValidators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1599, - "src": "22513:24:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage ref" - } - }, - "id": 2893, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "22513:36:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2894, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "22513:43:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 3496, - "src": "22513:47:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22513:126:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2903, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22512:128:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 3520, - "src": "22512:132:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22512:137:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2907, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "22511:139:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3568, - "src": "22511:143:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22511:146:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2884, - "id": 2911, - "nodeType": "Return", - "src": "22504:153:3" - } - ] - } - } - ] - }, - "documentation": "@dev Checks how many validators are needed for app rewards\n@param _self Data pointer to storage\n@param _rewardsDay uint256 the rewards day", - "id": 2937, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_requiredValidatorsForAppRewards", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2881, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2878, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2937, - "src": "22298:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2877, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "22298:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2880, - "name": "_rewardsDay", - "nodeType": "VariableDeclaration", - "scope": 2937, - "src": "22318:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2879, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22318:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22297:41:3" - }, - "payable": false, - "returnParameters": { - "id": 2884, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2883, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2937, - "src": "22384:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2882, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "22384:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22383:9:3" - }, - "scope": 3297, - "src": "22256:603:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2968, - "nodeType": "Block", - "src": "23077:342:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2944, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2939, - "src": "23219:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2945, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "minSecondsBetweenDays", - "nodeType": "MemberAccess", - "referencedDeclaration": 1605, - "src": "23219:27:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2946, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23249:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "23219:31:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2966, - "nodeType": "Block", - "src": "23380:33:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2964, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23401:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 2943, - "id": 2965, - "nodeType": "Return", - "src": "23394:8:3" - } - ] - }, - "id": 2967, - "nodeType": "IfStatement", - "src": "23215:198:3", - "trueBody": { - "id": 2963, - "nodeType": "Block", - "src": "23252:122:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2960, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23361:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2956, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2939, - "src": "23328:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2957, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "minSecondsBetweenDays", - "nodeType": "MemberAccess", - "referencedDeclaration": 1605, - "src": "23328:27:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2951, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2939, - "src": "23294:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 2952, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "rewardsStartTimestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": 1607, - "src": "23294:27:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2948, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4188, - "src": "23274:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 2949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23274:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 3544, - "src": "23274:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2953, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23274:48:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2954, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "23273:50:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 3520, - "src": "23273:54:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23273:83:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 3568, - "src": "23273:87:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23273:90:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2943, - "id": 2962, - "nodeType": "Return", - "src": "23266:97:3" - } - ] - } - } - ] - }, - "documentation": "@dev Get rewards day from block.timestamp\n@param _self Data pointer to storage", - "id": 2969, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "_currentRewardsDay", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2940, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2939, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 2969, - "src": "22999:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 2938, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "22999:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "22998:20:3" - }, - "payable": false, - "returnParameters": { - "id": 2943, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2942, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2969, - "src": "23064:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2941, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23064:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23063:9:3" - }, - "scope": 3297, - "src": "22971:448:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3051, - "nodeType": "Block", - "src": "23939:621:3", - "statements": [ - { - "assignments": [ - 2978 - ], - "declarations": [ - { - "constant": false, - "id": 2978, - "name": "emptyCurrentList", - "nodeType": "VariableDeclaration", - "scope": 3052, - "src": "23949:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2977, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23949:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2984, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2983, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2979, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2971, - "src": "23973:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 2980, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "23973:31:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2981, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23973:38:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2982, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24015:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "23973:43:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23949:67:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "24030:17:3", - "subExpression": { - "argumentTypes": null, - "id": 2985, - "name": "emptyCurrentList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2978, - "src": "24031:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2987, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2971, - "src": "24051:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 2988, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "24051:31:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2989, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "24051:38:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2990, - "name": "_entities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2974, - "src": "24093:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "24093:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24051:58:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "24030:79:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3003, - "nodeType": "IfStatement", - "src": "24026:192:3", - "trueBody": { - "id": 3002, - "nodeType": "Block", - "src": "24111:107:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2995, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2971, - "src": "24150:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - ], - "id": 2994, - "name": "_deleteCurrentEntityList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3170, - "src": "24125:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_RewardedEntityList_$1551_storage_ptr_$returns$__$", - "typeString": "function (struct PropsRewardsLib.RewardedEntityList storage pointer)" - } - }, - "id": 2996, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24125:45:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2997, - "nodeType": "ExpressionStatement", - "src": "24125:45:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 3000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2998, - "name": "emptyCurrentList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2978, - "src": "24184:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2999, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24203:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "24184:23:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3001, - "nodeType": "ExpressionStatement", - "src": "24184:23:3" - } - ] - } - }, - { - "body": { - "id": 3049, - "nodeType": "Block", - "src": "24275:279:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 3015, - "name": "emptyCurrentList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2978, - "src": "24293:16:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3037, - "nodeType": "Block", - "src": "24400:82:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3027, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2971, - "src": "24418:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3030, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "24418:31:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3031, - "indexExpression": { - "argumentTypes": null, - "id": 3029, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "24450:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "24418:34:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3032, - "name": "_entities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2974, - "src": "24455:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3034, - "indexExpression": { - "argumentTypes": null, - "id": 3033, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "24465:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "24455:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "24418:49:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3036, - "nodeType": "ExpressionStatement", - "src": "24418:49:3" - } - ] - }, - "id": 3038, - "nodeType": "IfStatement", - "src": "24289:193:3", - "trueBody": { - "id": 3026, - "nodeType": "Block", - "src": "24311:83:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3021, - "name": "_entities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2974, - "src": "24366:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3023, - "indexExpression": { - "argumentTypes": null, - "id": 3022, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "24376:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "24366:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3016, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2971, - "src": "24329:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3019, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "24329:31:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3020, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "24329:36:3", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 3024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24329:50:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3025, - "nodeType": "ExpressionStatement", - "src": "24329:50:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3039, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2971, - "src": "24495:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3044, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 1538, - "src": "24495:27:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 3045, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3041, - "name": "_entities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2974, - "src": "24523:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3043, - "indexExpression": { - "argumentTypes": null, - "id": 3042, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "24533:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "24523:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "24495:41:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3046, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24539:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "24495:48:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3048, - "nodeType": "ExpressionStatement", - "src": "24495:48:3" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3011, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3008, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "24248:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3009, - "name": "_entities", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2974, - "src": "24252:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3010, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "24252:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24248:20:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3050, - "initializationExpression": { - "assignments": [ - 3005 - ], - "declarations": [ - { - "constant": false, - "id": 3005, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 3052, - "src": "24233:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3004, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24233:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3007, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3006, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24245:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "24233:13:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3013, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "24270:3:3", - "subExpression": { - "argumentTypes": null, - "id": 3012, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "24270:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3014, - "nodeType": "ExpressionStatement", - "src": "24270:3:3" - }, - "nodeType": "ForStatement", - "src": "24228:326:3" - } - ] - }, - "documentation": "@dev Update current daily applications list.\nIf new, push.\nIf same size, replace\nIf different size, delete, and then push.\n@param _rewardedEntitylist RewardedEntityList pointer to storage\n@param _entities address[] array of entities", - "id": 3052, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_updateCurrentEntityList", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2975, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2971, - "name": "_rewardedEntitylist", - "nodeType": "VariableDeclaration", - "scope": 3052, - "src": "23836:46:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList" - }, - "typeName": { - "contractScope": null, - "id": 2970, - "name": "RewardedEntityList", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1551, - "src": "23836:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2974, - "name": "_entities", - "nodeType": "VariableDeclaration", - "scope": 3052, - "src": "23892:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2972, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23892:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2973, - "length": null, - "nodeType": "ArrayTypeName", - "src": "23892:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23826:91:3" - }, - "payable": false, - "returnParameters": { - "id": 2976, - "nodeType": "ParameterList", - "parameters": [], - "src": "23939:0:3" - }, - "scope": 3297, - "src": "23793:767:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3136, - "nodeType": "Block", - "src": "24794:774:3", - "statements": [ - { - "assignments": [ - 3058 - ], - "declarations": [ - { - "constant": false, - "id": 3058, - "name": "emptyPreviousList", - "nodeType": "VariableDeclaration", - "scope": 3137, - "src": "24804:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3057, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "24804:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3064, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3059, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "24829:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3060, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previousList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1548, - "src": "24829:32:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3061, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "24829:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3062, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "24872:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "24829:44:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24804:69:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "24900:18:3", - "subExpression": { - "argumentTypes": null, - "id": 3065, - "name": "emptyPreviousList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3058, - "src": "24901:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3067, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "24934:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3068, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previousList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1548, - "src": "24934:32:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3069, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "24934:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3070, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "24977:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3071, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "24977:31:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3072, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "24977:38:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24934:81:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "24900:115:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3084, - "nodeType": "IfStatement", - "src": "24883:252:3", - "trueBody": { - "id": 3083, - "nodeType": "Block", - "src": "25026:109:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3076, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "25066:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - ], - "id": 3075, - "name": "_deletePreviousEntityList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3203, - "src": "25040:25:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_RewardedEntityList_$1551_storage_ptr_$returns$__$", - "typeString": "function (struct PropsRewardsLib.RewardedEntityList storage pointer)" - } - }, - "id": 3077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25040:46:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3078, - "nodeType": "ExpressionStatement", - "src": "25040:46:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 3081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3079, - "name": "emptyPreviousList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3058, - "src": "25100:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3080, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25120:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "25100:24:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3082, - "nodeType": "ExpressionStatement", - "src": "25100:24:3" - } - ] - } - }, - { - "body": { - "id": 3134, - "nodeType": "Block", - "src": "25213:349:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 3097, - "name": "emptyPreviousList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3058, - "src": "25231:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3121, - "nodeType": "Block", - "src": "25362:105:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3110, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "25380:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3113, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previousList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1548, - "src": "25380:32:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3114, - "indexExpression": { - "argumentTypes": null, - "id": 3112, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3086, - "src": "25413:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "25380:35:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3115, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "25418:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3116, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "25418:31:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3118, - "indexExpression": { - "argumentTypes": null, - "id": 3117, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3086, - "src": "25450:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25418:34:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "25380:72:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3120, - "nodeType": "ExpressionStatement", - "src": "25380:72:3" - } - ] - }, - "id": 3122, - "nodeType": "IfStatement", - "src": "25227:240:3", - "trueBody": { - "id": 3109, - "nodeType": "Block", - "src": "25250:106:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3103, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "25306:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3104, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "25306:31:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3106, - "indexExpression": { - "argumentTypes": null, - "id": 3105, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3086, - "src": "25338:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25306:34:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3098, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "25268:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3101, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previousList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1548, - "src": "25268:32:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "25268:37:3", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 3107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25268:73:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3108, - "nodeType": "ExpressionStatement", - "src": "25268:73:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3123, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "25480:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3129, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previous", - "nodeType": "MemberAccess", - "referencedDeclaration": 1542, - "src": "25480:28:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 3130, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3125, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "25509:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3126, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "25509:31:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3128, - "indexExpression": { - "argumentTypes": null, - "id": 3127, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3086, - "src": "25541:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25509:34:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "25480:64:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25547:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "25480:71:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3133, - "nodeType": "ExpressionStatement", - "src": "25480:71:3" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3089, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3086, - "src": "25164:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3090, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3054, - "src": "25168:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3091, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "25168:31:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3092, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "25168:38:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25164:42:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3135, - "initializationExpression": { - "assignments": [ - 3086 - ], - "declarations": [ - { - "constant": false, - "id": 3086, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 3137, - "src": "25149:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3085, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25149:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3088, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3087, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25161:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "25149:13:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3095, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "25208:3:3", - "subExpression": { - "argumentTypes": null, - "id": 3094, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3086, - "src": "25208:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3096, - "nodeType": "ExpressionStatement", - "src": "25208:3:3" - }, - "nodeType": "ForStatement", - "src": "25144:418:3" - } - ] - }, - "documentation": "@dev Update previous daily list\n@param _rewardedEntitylist RewardedEntityList pointer to storage", - "id": 3137, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_updatePreviousEntityList", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3055, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3054, - "name": "_rewardedEntitylist", - "nodeType": "VariableDeclaration", - "scope": 3137, - "src": "24725:46:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList" - }, - "typeName": { - "contractScope": null, - "id": 3053, - "name": "RewardedEntityList", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1551, - "src": "24725:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24724:48:3" - }, - "payable": false, - "returnParameters": { - "id": 3056, - "nodeType": "ParameterList", - "parameters": [], - "src": "24794:0:3" - }, - "scope": 3297, - "src": "24690:878:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3169, - "nodeType": "Block", - "src": "25819:231:3", - "statements": [ - { - "body": { - "id": 3163, - "nodeType": "Block", - "src": "25899:96:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "25914:70:3", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3154, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3139, - "src": "25921:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3155, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "current", - "nodeType": "MemberAccess", - "referencedDeclaration": 1538, - "src": "25921:27:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 3160, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3156, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3139, - "src": "25949:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3157, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "25949:31:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3159, - "indexExpression": { - "argumentTypes": null, - "id": 3158, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "25981:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25949:34:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "25921:63:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3162, - "nodeType": "ExpressionStatement", - "src": "25914:70:3" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3146, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "25849:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3147, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3139, - "src": "25853:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3148, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "25853:31:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3149, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "25853:38:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25849:42:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3164, - "initializationExpression": { - "assignments": [ - 3143 - ], - "declarations": [ - { - "constant": false, - "id": 3143, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 3170, - "src": "25834:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3142, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25834:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3145, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3144, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25846:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "25834:13:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "25894:3:3", - "subExpression": { - "argumentTypes": null, - "id": 3151, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3143, - "src": "25894:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3153, - "nodeType": "ExpressionStatement", - "src": "25894:3:3" - }, - "nodeType": "ForStatement", - "src": "25829:166:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 3167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "26004:39:3", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3165, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3139, - "src": "26012:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3166, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "currentList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1545, - "src": "26012:31:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3168, - "nodeType": "ExpressionStatement", - "src": "26004:39:3" - } - ] - }, - "documentation": "@dev Delete existing values from the current list\n@param _rewardedEntitylist RewardedEntityList pointer to storage", - "id": 3170, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_deleteCurrentEntityList", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3140, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3139, - "name": "_rewardedEntitylist", - "nodeType": "VariableDeclaration", - "scope": 3170, - "src": "25750:46:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList" - }, - "typeName": { - "contractScope": null, - "id": 3138, - "name": "RewardedEntityList", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1551, - "src": "25750:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "25749:48:3" - }, - "payable": false, - "returnParameters": { - "id": 3141, - "nodeType": "ParameterList", - "parameters": [], - "src": "25819:0:3" - }, - "scope": 3297, - "src": "25716:334:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3202, - "nodeType": "Block", - "src": "26316:233:3", - "statements": [ - { - "body": { - "id": 3196, - "nodeType": "Block", - "src": "26397:97:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "26411:72:3", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3187, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3172, - "src": "26418:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3188, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previous", - "nodeType": "MemberAccess", - "referencedDeclaration": 1542, - "src": "26418:28:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 3193, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3189, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3172, - "src": "26447:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3190, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previousList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1548, - "src": "26447:32:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3192, - "indexExpression": { - "argumentTypes": null, - "id": 3191, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3176, - "src": "26480:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26447:35:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "26418:65:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3195, - "nodeType": "ExpressionStatement", - "src": "26411:72:3" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3183, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3179, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3176, - "src": "26346:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3180, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3172, - "src": "26350:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3181, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "previousList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1548, - "src": "26350:32:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3182, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26350:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26346:43:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3197, - "initializationExpression": { - "assignments": [ - 3176 - ], - "declarations": [ - { - "constant": false, - "id": 3176, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 3203, - "src": "26331:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3175, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26331:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3178, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3177, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26343:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "26331:13:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "26392:3:3", - "subExpression": { - "argumentTypes": null, - "id": 3184, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3176, - "src": "26392:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3186, - "nodeType": "ExpressionStatement", - "src": "26392:3:3" - }, - "nodeType": "ForStatement", - "src": "26326:168:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 3200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "26503:39:3", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3198, - "name": "_rewardedEntitylist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3172, - "src": "26510:19:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList storage pointer" - } - }, - "id": 3199, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "previousList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1548, - "src": "26510:32:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3201, - "nodeType": "ExpressionStatement", - "src": "26503:39:3" - } - ] - }, - "documentation": "@dev Delete existing values from the previous applications list\n@param _rewardedEntitylist RewardedEntityList pointer to storage", - "id": 3203, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_deletePreviousEntityList", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3172, - "name": "_rewardedEntitylist", - "nodeType": "VariableDeclaration", - "scope": 3203, - "src": "26247:46:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList" - }, - "typeName": { - "contractScope": null, - "id": 3171, - "name": "RewardedEntityList", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1551, - "src": "26247:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_RewardedEntityList_$1551_storage_ptr", - "typeString": "struct PropsRewardsLib.RewardedEntityList" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26246:48:3" - }, - "payable": false, - "returnParameters": { - "id": 3174, - "nodeType": "ParameterList", - "parameters": [], - "src": "26316:0:3" - }, - "scope": 3297, - "src": "26212:337:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3295, - "nodeType": "Block", - "src": "26817:703:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3210, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3205, - "src": "26828:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 3212, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "lastValidatorsRewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1611, - "src": "26828:30:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3213, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3205, - "src": "26861:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 3214, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "26861:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 3215, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "lastApplicationsRewardsDay", - "nodeType": "MemberAccess", - "referencedDeclaration": 1564, - "src": "26861:45:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26828:78:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3217, - "nodeType": "ExpressionStatement", - "src": "26828:78:3" - }, - { - "body": { - "id": 3252, - "nodeType": "Block", - "src": "27013:182:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "27027:157:3", - "subExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3234, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3205, - "src": "27051:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 3235, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "27051:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 3236, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "27051:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 3238, - "indexExpression": { - "argumentTypes": null, - "id": 3237, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3207, - "src": "27082:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27051:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 3239, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validators", - "nodeType": "MemberAccess", - "referencedDeclaration": 1569, - "src": "27051:55:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 3248, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3240, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3205, - "src": "27107:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 3241, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "27107:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 3242, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "27107:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 3244, - "indexExpression": { - "argumentTypes": null, - "id": 3243, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3207, - "src": "27138:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27107:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 3245, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validatorsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1572, - "src": "27107:59:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3247, - "indexExpression": { - "argumentTypes": null, - "id": 3246, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3219, - "src": "27167:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27107:62:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "27051:119:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 3249, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "27033:151:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3251, - "nodeType": "ExpressionStatement", - "src": "27027:157:3" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3222, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3219, - "src": "26936:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3223, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3205, - "src": "26940:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 3224, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "26940:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 3225, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "26940:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 3227, - "indexExpression": { - "argumentTypes": null, - "id": 3226, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3207, - "src": "26971:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26940:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 3228, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "validatorsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1572, - "src": "26940:59:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3229, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26940:66:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26936:70:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3253, - "initializationExpression": { - "assignments": [ - 3219 - ], - "declarations": [ - { - "constant": false, - "id": 3219, - "name": "j", - "nodeType": "VariableDeclaration", - "scope": 3296, - "src": "26921:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3218, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26921:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3221, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3220, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26933:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "26921:13:3" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "27008:3:3", - "subExpression": { - "argumentTypes": null, - "id": 3231, - "name": "j", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3219, - "src": "27008:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3233, - "nodeType": "ExpressionStatement", - "src": "27008:3:3" - }, - "nodeType": "ForStatement", - "src": "26916:279:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 3260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "27208:66:3", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3254, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3205, - "src": "27215:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 3255, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "27215:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 3256, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "27215:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 3258, - "indexExpression": { - "argumentTypes": null, - "id": 3257, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3207, - "src": "27246:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27215:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 3259, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "validatorsList", - "nodeType": "MemberAccess", - "referencedDeclaration": 1572, - "src": "27215:59:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3261, - "nodeType": "ExpressionStatement", - "src": "27208:66:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 3271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3262, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3205, - "src": "27288:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 3266, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "27288:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 3267, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "27288:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 3268, - "indexExpression": { - "argumentTypes": null, - "id": 3265, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3207, - "src": "27319:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27288:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 3269, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "confirmations", - "nodeType": "MemberAccess", - "referencedDeclaration": 1574, - "src": "27288:58:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 3270, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27349:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "27288:62:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3272, - "nodeType": "ExpressionStatement", - "src": "27288:62:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 3282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3273, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3205, - "src": "27364:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 3277, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "27364:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 3278, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "27364:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 3279, - "indexExpression": { - "argumentTypes": null, - "id": 3276, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3207, - "src": "27395:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27364:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 3280, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "finalizedStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 1576, - "src": "27364:60:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 3281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27427:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "27364:64:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3283, - "nodeType": "ExpressionStatement", - "src": "27364:64:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 3293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3284, - "name": "_self", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3205, - "src": "27442:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data storage pointer" - } - }, - "id": 3288, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "dailyRewards", - "nodeType": "MemberAccess", - "referencedDeclaration": 1603, - "src": "27442:18:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyRewards_$1565_storage", - "typeString": "struct PropsRewardsLib.DailyRewards storage ref" - } - }, - "id": 3289, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submissions", - "nodeType": "MemberAccess", - "referencedDeclaration": 1555, - "src": "27442:30:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Submission_$1579_storage_$", - "typeString": "mapping(bytes32 => struct PropsRewardsLib.Submission storage ref)" - } - }, - "id": 3290, - "indexExpression": { - "argumentTypes": null, - "id": 3287, - "name": "_rewardsHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3207, - "src": "27473:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27442:44:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Submission_$1579_storage", - "typeString": "struct PropsRewardsLib.Submission storage ref" - } - }, - "id": 3291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isInitializedState", - "nodeType": "MemberAccess", - "referencedDeclaration": 1578, - "src": "27442:63:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 3292, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27508:5:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "27442:71:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3294, - "nodeType": "ExpressionStatement", - "src": "27442:71:3" - } - ] - }, - "documentation": "@dev Deletes rewards day submission data\n@param _self Data pointer to storage\n@param _rewardsHash bytes32 rewardsHash", - "id": 3296, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_resetDailyRewards", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3208, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3205, - "name": "_self", - "nodeType": "VariableDeclaration", - "scope": 3296, - "src": "26743:18:3", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - }, - "typeName": { - "contractScope": null, - "id": 3204, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1612, - "src": "26743:4:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1612_storage_ptr", - "typeString": "struct PropsRewardsLib.Data" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3207, - "name": "_rewardsHash", - "nodeType": "VariableDeclaration", - "scope": 3296, - "src": "26771:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3206, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "26771:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26733:64:3" - }, - "payable": false, - "returnParameters": { - "id": 3209, - "nodeType": "ParameterList", - "parameters": [], - "src": "26817:0:3" - }, - "scope": 3297, - "src": "26706:814:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" + "id": 481, + "name": "ElementaryTypeName", + "src": "3299:7:3" + } + ], + "id": 482, + "name": "VariableDeclaration", + "src": "3299:32:3" + } + ], + "id": 483, + "name": "StructDefinition", + "src": "2545:793:3" } ], - "scope": 3298, - "src": "191:27331:3" + "id": 484, + "name": "ContractDefinition", + "src": "281:3063:3" } ], - "src": "0:27522:3" + "id": 485, + "name": "SourceUnit", + "src": "0:3344:3" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.4.25+commit.59dbf8f1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.1", - "updatedAt": "2019-08-15T18:51:44.544Z" + "schemaVersion": "3.3.4", + "updatedAt": "2021-04-02T09:51:14.567Z", + "devdoc": { + "methods": {}, + "title": "Props Rewards Library" + }, + "userdoc": { + "methods": {} + } } \ No newline at end of file diff --git a/build/contracts/PropsTimeBasedTransfers.json b/build/contracts/PropsTimeBasedTransfers.json index 218471b4..523c8e20 100644 --- a/build/contracts/PropsTimeBasedTransfers.json +++ b/build/contracts/PropsTimeBasedTransfers.json @@ -249,24 +249,25 @@ "type": "event" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610b5b806100206000396000f3006080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b3146100a957806318160ddd1461010e57806323b872dd1461013957806339509351146101be57806345b6d7dc1461022357806370a082311461027a578063a457c2d7146102d1578063a9059cbb14610336578063d0f22e9c1461039b578063dd62ed3e146103c6575b600080fd5b3480156100b557600080fd5b506100f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061043d565b604051808215151515815260200191505060405180910390f35b34801561011a57600080fd5b50610123610454565b6040518082815260200191505060405180910390f35b34801561014557600080fd5b506101a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061045e565b604051808215151515815260200191505060405180910390f35b3480156101ca57600080fd5b50610209600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061050f565b604051808215151515815260200191505060405180910390f35b34801561022f57600080fd5b506102386105b4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028657600080fd5b506102bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105da565b6040518082815260200191505060405180910390f35b3480156102dd57600080fd5b5061031c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610623565b604051808215151515815260200191505060405180910390f35b34801561034257600080fd5b50610381600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106c8565b604051808215151515815260200191505060405180910390f35b3480156103a757600080fd5b506103b06106df565b6040518082815260200191505060405180910390f35b3480156103d257600080fd5b50610427600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106e5565b6040518082815260200191505060405180910390f35b600061044a33848461076c565b6001905092915050565b6000603554905090565b600061046b8484846108cf565b61050484336104ff85603460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610aed90919063ffffffff16565b61076c565b600190509392505050565b60006105aa33846105a585603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b61076c565b6001905092915050565b606960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006106be33846106b985603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610aed90919063ffffffff16565b61076c565b6001905092915050565b60006106d53384846108cf565b6001905092915050565b60685481565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156107a857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156107e457600080fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561091d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561095957600080fd5b6109ab81603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610aed90919063ffffffff16565b603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a4081603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080838311151515610aff57600080fd5b82840390508091505092915050565b6000808284019050838110151515610b2557600080fd5b80915050929150505600a165627a7a723058208ae7e693f8eff61587a8a75037ac074eba21d4d6f3501a03739525bb3131ee530029", - "deployedBytecode": "0x6080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b3146100a957806318160ddd1461010e57806323b872dd1461013957806339509351146101be57806345b6d7dc1461022357806370a082311461027a578063a457c2d7146102d1578063a9059cbb14610336578063d0f22e9c1461039b578063dd62ed3e146103c6575b600080fd5b3480156100b557600080fd5b506100f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061043d565b604051808215151515815260200191505060405180910390f35b34801561011a57600080fd5b50610123610454565b6040518082815260200191505060405180910390f35b34801561014557600080fd5b506101a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061045e565b604051808215151515815260200191505060405180910390f35b3480156101ca57600080fd5b50610209600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061050f565b604051808215151515815260200191505060405180910390f35b34801561022f57600080fd5b506102386105b4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028657600080fd5b506102bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105da565b6040518082815260200191505060405180910390f35b3480156102dd57600080fd5b5061031c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610623565b604051808215151515815260200191505060405180910390f35b34801561034257600080fd5b50610381600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106c8565b604051808215151515815260200191505060405180910390f35b3480156103a757600080fd5b506103b06106df565b6040518082815260200191505060405180910390f35b3480156103d257600080fd5b50610427600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106e5565b6040518082815260200191505060405180910390f35b600061044a33848461076c565b6001905092915050565b6000603554905090565b600061046b8484846108cf565b61050484336104ff85603460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610aed90919063ffffffff16565b61076c565b600190509392505050565b60006105aa33846105a585603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b61076c565b6001905092915050565b606960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006106be33846106b985603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610aed90919063ffffffff16565b61076c565b6001905092915050565b60006106d53384846108cf565b6001905092915050565b60685481565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156107a857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156107e457600080fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561091d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561095957600080fd5b6109ab81603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610aed90919063ffffffff16565b603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a4081603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080838311151515610aff57600080fd5b82840390508091505092915050565b6000808284019050838110151515610b2557600080fd5b80915050929150505600a165627a7a723058208ae7e693f8eff61587a8a75037ac074eba21d4d6f3501a03739525bb3131ee530029", - "sourceMap": "325:2311:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;325:2311:4;;;;;;;", - "deployedSourceMap": "325:2311:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2462:145:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2462:145:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;702:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;702:83:8;;;;;;;;;;;;;;;;;;;;;;;2879:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2879:240:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3570:212;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3570:212:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;427:41:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;427:41:4;;;;;;;;;;;;;;;;;;;;;;;;;;;986:98:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;986:98:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4238:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4238:222:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1703:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1703:127:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;388:33:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;388:33:4;;;;;;;;;;;;;;;;;;;;;;;1401:150:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1401:150:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2462:145;2527:4;2543:36;2552:10;2564:7;2573:5;2543:8;:36::i;:::-;2596:4;2589:11;;2462:145;;;;:::o;702:83::-;746:7;768:12;;761:19;;702:83;:::o;2879:240::-;2982:4;3000:26;3010:4;3016:2;3020:5;3000:9;:26::i;:::-;3032:65;3041:4;3047:10;3059:37;3090:5;3059:8;:14;3068:4;3059:14;;;;;;;;;;;;;;;:26;3074:10;3059:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;3032:8;:65::i;:::-;3110:4;3103:11;;2879:240;;;;;:::o;3570:212::-;3670:4;3684:76;3693:10;3705:7;3714:45;3748:10;3714:8;:20;3723:10;3714:20;;;;;;;;;;;;;;;:29;3735:7;3714:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;3684:8;:76::i;:::-;3773:4;3766:11;;3570:212;;;;:::o;427:41:4:-;;;;;;;;;;;;;:::o;986:98:8:-;1041:7;1063:9;:16;1073:5;1063:16;;;;;;;;;;;;;;;;1056:23;;986:98;;;:::o;4238:222::-;4343:4;4357:81;4366:10;4378:7;4387:50;4421:15;4387:8;:20;4396:10;4387:20;;;;;;;;;;;;;;;:29;4408:7;4387:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;4357:8;:81::i;:::-;4451:4;4444:11;;4238:222;;;;:::o;1703:127::-;1764:4;1776:32;1786:10;1798:2;1802:5;1776:9;:32::i;:::-;1821:4;1814:11;;1703:127;;;;:::o;388:33:4:-;;;;:::o;1401:150:8:-;1498:7;1522:8;:15;1531:5;1522:15;;;;;;;;;;;;;;;:24;1538:7;1522:24;;;;;;;;;;;;;;;;1515:31;;1401:150;;;;:::o;6263:248::-;6374:1;6355:21;;:7;:21;;;;6347:30;;;;;;;;6412:1;6395:19;;:5;:19;;;;6387:28;;;;;;;;6453:5;6426:8;:15;6435:5;6426:15;;;;;;;;;;;;;;;:24;6442:7;6426:24;;;;;;;;;;;;;;;:32;;;;6489:7;6473:31;;6482:5;6473:31;;;6498:5;6473:31;;;;;;;;;;;;;;;;;;6263:248;;;:::o;4660:277::-;4752:9;:15;4762:4;4752:15;;;;;;;;;;;;;;;;4743:5;:24;;4735:33;;;;;;;;4796:1;4782:16;;:2;:16;;;;4774:25;;;;;;;;4824:26;4844:5;4824:9;:15;4834:4;4824:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;4806:9;:15;4816:4;4806:15;;;;;;;;;;;;;;;:44;;;;4872:24;4890:5;4872:9;:13;4882:2;4872:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;4856:9;:13;4866:2;4856:13;;;;;;;;;;;;;;;:40;;;;4922:2;4907:25;;4916:4;4907:25;;;4926:5;4907:25;;;;;;;;;;;;;;;;;;4660:277;;;:::o;1079:131:7:-;1137:7;1173:9;1165:1;1160;:6;;1152:15;;;;;;;;1189:1;1185;:5;1173:17;;1204:1;1197:8;;1079:131;;;;;:::o;1273:::-;1331:7;1346:9;1362:1;1358;:5;1346:17;;1382:1;1377;:6;;1369:15;;;;;;;;1398:1;1391:8;;1273:131;;;;;:::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"zos-lib/contracts/Initializable.sol\";\nimport \"openzeppelin-eth/contracts/token/ERC20/ERC20.sol\";\n\n/**\n * @title Props Time Based Transfers\n * @dev Contract allows to set a transfer start time (unix timestamp) from which transfers are allowed excluding one address defined in initialize\n **/\ncontract PropsTimeBasedTransfers is Initializable, ERC20 {\n uint256 public transfersStartTime;\n address public canTransferBeforeStartTime;\n /**\n Contract logic is no longer relevant.\n Leaving in the variables used for upgrade compatibility but the checks are no longer required\n */\n\n // modifier canTransfer(address _account)\n // {\n // require(\n // now > transfersStartTime ||\n // _account==canTransferBeforeStartTime,\n // \"Cannot transfer before transfers start time from this account\"\n // );\n // _;\n // }\n\n // /**\n // * @dev The initializer function, with transfers start time `transfersStartTime` (unix timestamp)\n // * and `canTransferBeforeStartTime` address which is exempt from start time restrictions\n // * @param start uint Unix timestamp of when transfers can start\n // * @param account uint256 address exempt from the start date check\n // */\n // function initialize(\n // uint256 start,\n // address account\n // )\n // public\n // initializer\n // {\n // transfersStartTime = start;\n // canTransferBeforeStartTime = account;\n // }\n // /**\n // * @dev Transfer token for a specified address if allowed\n // * @param to The address to transfer to.\n // * @param value The amount to be transferred.\n // */\n // function transfer(\n // address to,\n // uint256 value\n // )\n // public canTransfer(msg.sender)\n // returns (bool)\n // {\n // return super.transfer(to, value);\n // }\n\n // /**\n // * @dev Transfer tokens from one address to another if allowed\n // * Note that while this function emits an Approval event, this is not required as per the specification,\n // * and other compliant implementations may not emit the event.\n // * @param from address The address which you want to send tokens from\n // * @param to address The address which you want to transfer to\n // * @param value uint256 the amount of tokens to be transferred\n // */\n // function transferFrom(\n // address from,\n // address to,\n // uint256 value\n // )\n // public canTransfer(from)\n // returns (bool)\n // {\n // return super.transferFrom(from, to, value);\n // }\n}\n", - "sourcePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsTimeBasedTransfers.sol", + "metadata": "{\"compiler\":{\"version\":\"0.4.25+commit.59dbf8f1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"canTransferBeforeStartTime\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"transfersStartTime\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"Function to check the amount of tokens that an owner allowed to a spender.\",\"params\":{\"owner\":\"address The address which owns the funds.\",\"spender\":\"address The address which will spend the funds.\"},\"return\":\"A uint256 specifying the amount of tokens still available for the spender.\"},\"approve(address,uint256)\":{\"details\":\"Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\",\"params\":{\"spender\":\"The address which will spend the funds.\",\"value\":\"The amount of tokens to be spent.\"}},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address.\",\"params\":{\"owner\":\"The address to query the the balance of.\"},\"return\":\"An uint256 representing the amount owned by the passed address.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Decrease the amount of tokens that an owner allowed to a spender. approve should be called when allowed_[_spender] == 0. To decrement allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol\",\"params\":{\"spender\":\"The address which will spend the funds.\",\"subtractedValue\":\"The amount of tokens to decrease the allowance by.\"}},\"increaseAllowance(address,uint256)\":{\"details\":\"Increase the amount of tokens that an owner allowed to a spender. approve should be called when allowed_[_spender] == 0. To increment allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol\",\"params\":{\"addedValue\":\"The amount of tokens to increase the allowance by.\",\"spender\":\"The address which will spend the funds.\"}},\"totalSupply()\":{\"details\":\"Total number of tokens in existence\"},\"transfer(address,uint256)\":{\"details\":\"Transfer token for a specified address\",\"params\":{\"to\":\"The address to transfer to.\",\"value\":\"The amount to be transferred.\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfer tokens from one address to another\",\"params\":{\"from\":\"address The address which you want to send tokens from\",\"to\":\"address The address which you want to transfer to\",\"value\":\"uint256 the amount of tokens to be transferred\"}}},\"title\":\"Props Time Based Transfers\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/george/Development/props/props-token-distribution/contracts/token/PropsTimeBasedTransfers.sol\":\"PropsTimeBasedTransfers\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/george/Development/props/props-token-distribution/contracts/token/PropsTimeBasedTransfers.sol\":{\"keccak256\":\"0x0b724e7bf486930451b7f461de501749687618f2269de4ca049fcb692b21b949\",\"urls\":[\"bzzr://b98ab2a3c9795054fe38fdc38023bf99c90529ea63087994753598eada9736b3\"]},\"openzeppelin-eth/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xca27427124232a675642ba45303b78d5a36e1207ee222030ef249e11eba5a224\",\"urls\":[\"bzzr://013c67962737acca577ecd24e6b6c80f85b05fd03c1c75ab68f65a084f4b4cfd\"]},\"openzeppelin-eth/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24252d4567a1cbf14d609a8308e491359c9200d58a2e78282938d945aeeb2bb3\",\"urls\":[\"bzzr://61401aaae518b765df91e443ef9dfb7af874341921829a063cb4804a6fb49c5e\"]},\"openzeppelin-eth/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x0786a09def412e5a92e1da8545114b39f9bbd8bd1ba6f62a5bf8b81f54ab25bf\",\"urls\":[\"bzzr://b35dbbf6dd505fcb601ca968d4628714a3af84024224228433eadf700e94f250\"]},\"zos-lib/contracts/Initializable.sol\":{\"keccak256\":\"0xac4cc87395794e21e95549a1b4002881621d59878c4129d534a0089ce5cf7212\",\"urls\":[\"bzzr://1725ac3e1941f8e2bf5c1966abd66bd744d40c85ae8195eb697ec3256bc1fc39\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50610b5b806100206000396000f3006080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b3146100a957806318160ddd1461010e57806323b872dd1461013957806339509351146101be57806345b6d7dc1461022357806370a082311461027a578063a457c2d7146102d1578063a9059cbb14610336578063d0f22e9c1461039b578063dd62ed3e146103c6575b600080fd5b3480156100b557600080fd5b506100f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061043d565b604051808215151515815260200191505060405180910390f35b34801561011a57600080fd5b50610123610454565b6040518082815260200191505060405180910390f35b34801561014557600080fd5b506101a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061045e565b604051808215151515815260200191505060405180910390f35b3480156101ca57600080fd5b50610209600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061050f565b604051808215151515815260200191505060405180910390f35b34801561022f57600080fd5b506102386105b4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028657600080fd5b506102bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105da565b6040518082815260200191505060405180910390f35b3480156102dd57600080fd5b5061031c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610623565b604051808215151515815260200191505060405180910390f35b34801561034257600080fd5b50610381600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106c8565b604051808215151515815260200191505060405180910390f35b3480156103a757600080fd5b506103b06106df565b6040518082815260200191505060405180910390f35b3480156103d257600080fd5b50610427600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106e5565b6040518082815260200191505060405180910390f35b600061044a33848461076c565b6001905092915050565b6000603554905090565b600061046b8484846108cf565b61050484336104ff85603460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610aed90919063ffffffff16565b61076c565b600190509392505050565b60006105aa33846105a585603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b61076c565b6001905092915050565b606960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006106be33846106b985603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610aed90919063ffffffff16565b61076c565b6001905092915050565b60006106d53384846108cf565b6001905092915050565b60685481565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156107a857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156107e457600080fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561091d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561095957600080fd5b6109ab81603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610aed90919063ffffffff16565b603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a4081603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080838311151515610aff57600080fd5b82840390508091505092915050565b6000808284019050838110151515610b2557600080fd5b80915050929150505600a165627a7a72305820155ad2c72d4e1f61d5234b406a236ed3748804f0bae8558e94508814964e16e10029", + "deployedBytecode": "0x6080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b3146100a957806318160ddd1461010e57806323b872dd1461013957806339509351146101be57806345b6d7dc1461022357806370a082311461027a578063a457c2d7146102d1578063a9059cbb14610336578063d0f22e9c1461039b578063dd62ed3e146103c6575b600080fd5b3480156100b557600080fd5b506100f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061043d565b604051808215151515815260200191505060405180910390f35b34801561011a57600080fd5b50610123610454565b6040518082815260200191505060405180910390f35b34801561014557600080fd5b506101a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061045e565b604051808215151515815260200191505060405180910390f35b3480156101ca57600080fd5b50610209600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061050f565b604051808215151515815260200191505060405180910390f35b34801561022f57600080fd5b506102386105b4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561028657600080fd5b506102bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105da565b6040518082815260200191505060405180910390f35b3480156102dd57600080fd5b5061031c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610623565b604051808215151515815260200191505060405180910390f35b34801561034257600080fd5b50610381600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106c8565b604051808215151515815260200191505060405180910390f35b3480156103a757600080fd5b506103b06106df565b6040518082815260200191505060405180910390f35b3480156103d257600080fd5b50610427600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106e5565b6040518082815260200191505060405180910390f35b600061044a33848461076c565b6001905092915050565b6000603554905090565b600061046b8484846108cf565b61050484336104ff85603460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610aed90919063ffffffff16565b61076c565b600190509392505050565b60006105aa33846105a585603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b61076c565b6001905092915050565b606960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006106be33846106b985603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610aed90919063ffffffff16565b61076c565b6001905092915050565b60006106d53384846108cf565b6001905092915050565b60685481565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156107a857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156107e457600080fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561091d57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561095957600080fd5b6109ab81603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610aed90919063ffffffff16565b603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a4081603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b0e90919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080838311151515610aff57600080fd5b82840390508091505092915050565b6000808284019050838110151515610b2557600080fd5b80915050929150505600a165627a7a72305820155ad2c72d4e1f61d5234b406a236ed3748804f0bae8558e94508814964e16e10029", + "sourceMap": "415:2311:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;415:2311:4;;;;;;;", + "deployedSourceMap": "415:2311:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2462:145:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2462:145:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;702:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;702:83:8;;;;;;;;;;;;;;;;;;;;;;;2879:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2879:240:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3570:212;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3570:212:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;517:41:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;517:41:4;;;;;;;;;;;;;;;;;;;;;;;;;;;986:98:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;986:98:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4238:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4238:222:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1703:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1703:127:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;478:33:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;478:33:4;;;;;;;;;;;;;;;;;;;;;;;1401:150:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1401:150:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2462:145;2527:4;2543:36;2552:10;2564:7;2573:5;2543:8;:36::i;:::-;2596:4;2589:11;;2462:145;;;;:::o;702:83::-;746:7;768:12;;761:19;;702:83;:::o;2879:240::-;2982:4;3000:26;3010:4;3016:2;3020:5;3000:9;:26::i;:::-;3032:65;3041:4;3047:10;3059:37;3090:5;3059:8;:14;3068:4;3059:14;;;;;;;;;;;;;;;:26;3074:10;3059:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;3032:8;:65::i;:::-;3110:4;3103:11;;2879:240;;;;;:::o;3570:212::-;3670:4;3684:76;3693:10;3705:7;3714:45;3748:10;3714:8;:20;3723:10;3714:20;;;;;;;;;;;;;;;:29;3735:7;3714:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;3684:8;:76::i;:::-;3773:4;3766:11;;3570:212;;;;:::o;517:41:4:-;;;;;;;;;;;;;:::o;986:98:8:-;1041:7;1063:9;:16;1073:5;1063:16;;;;;;;;;;;;;;;;1056:23;;986:98;;;:::o;4238:222::-;4343:4;4357:81;4366:10;4378:7;4387:50;4421:15;4387:8;:20;4396:10;4387:20;;;;;;;;;;;;;;;:29;4408:7;4387:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;4357:8;:81::i;:::-;4451:4;4444:11;;4238:222;;;;:::o;1703:127::-;1764:4;1776:32;1786:10;1798:2;1802:5;1776:9;:32::i;:::-;1821:4;1814:11;;1703:127;;;;:::o;478:33:4:-;;;;:::o;1401:150:8:-;1498:7;1522:8;:15;1531:5;1522:15;;;;;;;;;;;;;;;:24;1538:7;1522:24;;;;;;;;;;;;;;;;1515:31;;1401:150;;;;:::o;6263:248::-;6374:1;6355:21;;:7;:21;;;;6347:30;;;;;;;;6412:1;6395:19;;:5;:19;;;;6387:28;;;;;;;;6453:5;6426:8;:15;6435:5;6426:15;;;;;;;;;;;;;;;:24;6442:7;6426:24;;;;;;;;;;;;;;;:32;;;;6489:7;6473:31;;6482:5;6473:31;;;6498:5;6473:31;;;;;;;;;;;;;;;;;;6263:248;;;:::o;4660:277::-;4752:9;:15;4762:4;4752:15;;;;;;;;;;;;;;;;4743:5;:24;;4735:33;;;;;;;;4796:1;4782:16;;:2;:16;;;;4774:25;;;;;;;;4824:26;4844:5;4824:9;:15;4834:4;4824:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;4806:9;:15;4816:4;4806:15;;;;;;;;;;;;;;;:44;;;;4872:24;4890:5;4872:9;:13;4882:2;4872:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;4856:9;:13;4866:2;4856:13;;;;;;;;;;;;;;;:40;;;;4922:2;4907:25;;4916:4;4907:25;;;4926:5;4907:25;;;;;;;;;;;;;;;;;;4660:277;;;:::o;1079:131:7:-;1137:7;1173:9;1165:1;1160;:6;;1152:15;;;;;;;;1189:1;1185;:5;1173:17;;1204:1;1197:8;;1079:131;;;;;:::o;1273:::-;1331:7;1346:9;1362:1;1358;:5;1346:17;;1382:1;1377;:6;;1369:15;;;;;;;;1398:1;1391:8;;1273:131;;;;;:::o", + "source": "pragma solidity ^0.4.24;\n/*\n THIS CONTRACT IS OBSOLETE AND REMAINS ONLY FOR UPGRADABILITY/STORAGE CONSIDERATIONS\n*/\nimport \"zos-lib/contracts/Initializable.sol\";\nimport \"openzeppelin-eth/contracts/token/ERC20/ERC20.sol\";\n\n/**\n * @title Props Time Based Transfers\n * @dev Contract allows to set a transfer start time (unix timestamp) from which transfers are allowed excluding one address defined in initialize\n **/\ncontract PropsTimeBasedTransfers is Initializable, ERC20 {\n uint256 public transfersStartTime;\n address public canTransferBeforeStartTime;\n /**\n Contract logic is no longer relevant.\n Leaving in the variables used for upgrade compatibility but the checks are no longer required\n */\n\n // modifier canTransfer(address _account)\n // {\n // require(\n // now > transfersStartTime ||\n // _account==canTransferBeforeStartTime,\n // \"Cannot transfer before transfers start time from this account\"\n // );\n // _;\n // }\n\n // /**\n // * @dev The initializer function, with transfers start time `transfersStartTime` (unix timestamp)\n // * and `canTransferBeforeStartTime` address which is exempt from start time restrictions\n // * @param start uint Unix timestamp of when transfers can start\n // * @param account uint256 address exempt from the start date check\n // */\n // function initialize(\n // uint256 start,\n // address account\n // )\n // public\n // initializer\n // {\n // transfersStartTime = start;\n // canTransferBeforeStartTime = account;\n // }\n // /**\n // * @dev Transfer token for a specified address if allowed\n // * @param to The address to transfer to.\n // * @param value The amount to be transferred.\n // */\n // function transfer(\n // address to,\n // uint256 value\n // )\n // public canTransfer(msg.sender)\n // returns (bool)\n // {\n // return super.transfer(to, value);\n // }\n\n // /**\n // * @dev Transfer tokens from one address to another if allowed\n // * Note that while this function emits an Approval event, this is not required as per the specification,\n // * and other compliant implementations may not emit the event.\n // * @param from address The address which you want to send tokens from\n // * @param to address The address which you want to transfer to\n // * @param value uint256 the amount of tokens to be transferred\n // */\n // function transferFrom(\n // address from,\n // address to,\n // uint256 value\n // )\n // public canTransfer(from)\n // returns (bool)\n // {\n // return super.transferFrom(from, to, value);\n // }\n}\n", + "sourcePath": "/home/george/Development/props/props-token-distribution/contracts/token/PropsTimeBasedTransfers.sol", "ast": { - "absolutePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsTimeBasedTransfers.sol", + "absolutePath": "/home/george/Development/props/props-token-distribution/contracts/token/PropsTimeBasedTransfers.sol", "exportedSymbols": { "PropsTimeBasedTransfers": [ - 3310 + 497 ] }, - "id": 3311, + "id": 498, "nodeType": "SourceUnit", "nodes": [ { - "id": 3299, + "id": 486, "literals": [ "solidity", "^", @@ -279,22 +280,22 @@ { "absolutePath": "zos-lib/contracts/Initializable.sol", "file": "zos-lib/contracts/Initializable.sol", - "id": 3300, + "id": 487, "nodeType": "ImportDirective", - "scope": 3311, - "sourceUnit": 4184, - "src": "26:45:4", + "scope": 498, + "sourceUnit": 1433, + "src": "116:45:4", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", "file": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", - "id": 3301, + "id": 488, "nodeType": "ImportDirective", - "scope": 3311, - "sourceUnit": 3992, - "src": "72:58:4", + "scope": 498, + "sourceUnit": 1179, + "src": "162:58:4", "symbolAliases": [], "unitAlias": "" }, @@ -304,64 +305,64 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3302, + "id": 489, "name": "Initializable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4183, - "src": "361:13:4", + "referencedDeclaration": 1432, + "src": "451:13:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_Initializable_$4183", + "typeIdentifier": "t_contract$_Initializable_$1432", "typeString": "contract Initializable" } }, - "id": 3303, + "id": 490, "nodeType": "InheritanceSpecifier", - "src": "361:13:4" + "src": "451:13:4" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 3304, + "id": 491, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3991, - "src": "376:5:4", + "referencedDeclaration": 1178, + "src": "466:5:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$3991", + "typeIdentifier": "t_contract$_ERC20_$1178", "typeString": "contract ERC20" } }, - "id": 3305, + "id": 492, "nodeType": "InheritanceSpecifier", - "src": "376:5:4" + "src": "466:5:4" } ], "contractDependencies": [ - 3991, - 4127, - 4183 + 1178, + 1314, + 1432 ], "contractKind": "contract", "documentation": "@title Props Time Based Transfers\n@dev Contract allows to set a transfer start time (unix timestamp) from which transfers are allowed excluding one address defined in initialize*", "fullyImplemented": true, - "id": 3310, + "id": 497, "linearizedBaseContracts": [ - 3310, - 3991, - 4127, - 4183 + 497, + 1178, + 1314, + 1432 ], "name": "PropsTimeBasedTransfers", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 3307, + "id": 494, "name": "transfersStartTime", "nodeType": "VariableDeclaration", - "scope": 3310, - "src": "388:33:4", + "scope": 497, + "src": "478:33:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -369,10 +370,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3306, + "id": 493, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "388:7:4", + "src": "478:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -383,11 +384,11 @@ }, { "constant": false, - "id": 3309, + "id": 496, "name": "canTransferBeforeStartTime", "nodeType": "VariableDeclaration", - "scope": 3310, - "src": "427:41:4", + "scope": 497, + "src": "517:41:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -395,10 +396,10 @@ "typeString": "address" }, "typeName": { - "id": 3308, + "id": 495, "name": "address", "nodeType": "ElementaryTypeName", - "src": "427:7:4", + "src": "517:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -408,176 +409,256 @@ "visibility": "public" } ], - "scope": 3311, - "src": "325:2311:4" + "scope": 498, + "src": "415:2311:4" } ], - "src": "0:2637:4" + "src": "0:2727:4" }, "legacyAST": { - "absolutePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsTimeBasedTransfers.sol", - "exportedSymbols": { - "PropsTimeBasedTransfers": [ - 3310 - ] + "attributes": { + "absolutePath": "/home/george/Development/props/props-token-distribution/contracts/token/PropsTimeBasedTransfers.sol", + "exportedSymbols": { + "PropsTimeBasedTransfers": [ + 497 + ] + } }, - "id": 3311, - "nodeType": "SourceUnit", - "nodes": [ + "children": [ { - "id": 3299, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", + "attributes": { + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ] + }, + "id": 486, + "name": "PragmaDirective", "src": "0:24:4" }, { - "absolutePath": "zos-lib/contracts/Initializable.sol", - "file": "zos-lib/contracts/Initializable.sol", - "id": 3300, - "nodeType": "ImportDirective", - "scope": 3311, - "sourceUnit": 4184, - "src": "26:45:4", - "symbolAliases": [], - "unitAlias": "" + "attributes": { + "SourceUnit": 1433, + "absolutePath": "zos-lib/contracts/Initializable.sol", + "file": "zos-lib/contracts/Initializable.sol", + "scope": 498, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 487, + "name": "ImportDirective", + "src": "116:45:4" }, { - "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", - "id": 3301, - "nodeType": "ImportDirective", - "scope": 3311, - "sourceUnit": 3992, - "src": "72:58:4", - "symbolAliases": [], - "unitAlias": "" + "attributes": { + "SourceUnit": 1179, + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", + "file": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", + "scope": 498, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 488, + "name": "ImportDirective", + "src": "162:58:4" }, { - "baseContracts": [ + "attributes": { + "contractDependencies": [ + 1178, + 1314, + 1432 + ], + "contractKind": "contract", + "documentation": "@title Props Time Based Transfers\n@dev Contract allows to set a transfer start time (unix timestamp) from which transfers are allowed excluding one address defined in initialize*", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 497, + 1178, + 1314, + 1432 + ], + "name": "PropsTimeBasedTransfers", + "scope": 498 + }, + "children": [ { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3302, - "name": "Initializable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4183, - "src": "361:13:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Initializable_$4183", - "typeString": "contract Initializable" - } + "attributes": { + "arguments": null }, - "id": 3303, - "nodeType": "InheritanceSpecifier", - "src": "361:13:4" + "children": [ + { + "attributes": { + "contractScope": null, + "name": "Initializable", + "referencedDeclaration": 1432, + "type": "contract Initializable" + }, + "id": 489, + "name": "UserDefinedTypeName", + "src": "451:13:4" + } + ], + "id": 490, + "name": "InheritanceSpecifier", + "src": "451:13:4" }, { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3304, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3991, - "src": "376:5:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$3991", - "typeString": "contract ERC20" - } + "attributes": { + "arguments": null }, - "id": 3305, - "nodeType": "InheritanceSpecifier", - "src": "376:5:4" - } - ], - "contractDependencies": [ - 3991, - 4127, - 4183 - ], - "contractKind": "contract", - "documentation": "@title Props Time Based Transfers\n@dev Contract allows to set a transfer start time (unix timestamp) from which transfers are allowed excluding one address defined in initialize*", - "fullyImplemented": true, - "id": 3310, - "linearizedBaseContracts": [ - 3310, - 3991, - 4127, - 4183 - ], - "name": "PropsTimeBasedTransfers", - "nodeType": "ContractDefinition", - "nodes": [ + "children": [ + { + "attributes": { + "contractScope": null, + "name": "ERC20", + "referencedDeclaration": 1178, + "type": "contract ERC20" + }, + "id": 491, + "name": "UserDefinedTypeName", + "src": "466:5:4" + } + ], + "id": 492, + "name": "InheritanceSpecifier", + "src": "466:5:4" + }, { - "constant": false, - "id": 3307, - "name": "transfersStartTime", - "nodeType": "VariableDeclaration", - "scope": 3310, - "src": "388:33:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "attributes": { + "constant": false, + "name": "transfersStartTime", + "scope": 497, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "public" }, - "typeName": { - "id": 3306, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "388:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 493, + "name": "ElementaryTypeName", + "src": "478:7:4" } - }, - "value": null, - "visibility": "public" + ], + "id": 494, + "name": "VariableDeclaration", + "src": "478:33:4" }, { - "constant": false, - "id": 3309, - "name": "canTransferBeforeStartTime", - "nodeType": "VariableDeclaration", - "scope": 3310, - "src": "427:41:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "attributes": { + "constant": false, + "name": "canTransferBeforeStartTime", + "scope": 497, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "public" }, - "typeName": { - "id": 3308, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "427:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 495, + "name": "ElementaryTypeName", + "src": "517:7:4" } - }, - "value": null, - "visibility": "public" + ], + "id": 496, + "name": "VariableDeclaration", + "src": "517:41:4" } ], - "scope": 3311, - "src": "325:2311:4" + "id": 497, + "name": "ContractDefinition", + "src": "415:2311:4" } ], - "src": "0:2637:4" + "id": 498, + "name": "SourceUnit", + "src": "0:2727:4" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.4.25+commit.59dbf8f1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.1", - "updatedAt": "2019-08-15T18:51:44.474Z" + "schemaVersion": "3.3.4", + "updatedAt": "2021-04-02T09:51:14.569Z", + "devdoc": { + "methods": { + "allowance(address,address)": { + "details": "Function to check the amount of tokens that an owner allowed to a spender.", + "params": { + "owner": "address The address which owns the funds.", + "spender": "address The address which will spend the funds." + }, + "return": "A uint256 specifying the amount of tokens still available for the spender." + }, + "approve(address,uint256)": { + "details": "Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729", + "params": { + "spender": "The address which will spend the funds.", + "value": "The amount of tokens to be spent." + } + }, + "balanceOf(address)": { + "details": "Gets the balance of the specified address.", + "params": { + "owner": "The address to query the the balance of." + }, + "return": "An uint256 representing the amount owned by the passed address." + }, + "decreaseAllowance(address,uint256)": { + "details": "Decrease the amount of tokens that an owner allowed to a spender. approve should be called when allowed_[_spender] == 0. To decrement allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol", + "params": { + "spender": "The address which will spend the funds.", + "subtractedValue": "The amount of tokens to decrease the allowance by." + } + }, + "increaseAllowance(address,uint256)": { + "details": "Increase the amount of tokens that an owner allowed to a spender. approve should be called when allowed_[_spender] == 0. To increment allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol", + "params": { + "addedValue": "The amount of tokens to increase the allowance by.", + "spender": "The address which will spend the funds." + } + }, + "totalSupply()": { + "details": "Total number of tokens in existence" + }, + "transfer(address,uint256)": { + "details": "Transfer token for a specified address", + "params": { + "to": "The address to transfer to.", + "value": "The amount to be transferred." + } + }, + "transferFrom(address,address,uint256)": { + "details": "Transfer tokens from one address to another", + "params": { + "from": "address The address which you want to send tokens from", + "to": "address The address which you want to transfer to", + "value": "uint256 the amount of tokens to be transferred" + } + } + }, + "title": "Props Time Based Transfers" + }, + "userdoc": { + "methods": {} + } } \ No newline at end of file diff --git a/build/contracts/PropsToken.json b/build/contracts/PropsToken.json index 99d77097..234c3443 100644 --- a/build/contracts/PropsToken.json +++ b/build/contracts/PropsToken.json @@ -54,87 +54,35 @@ }, { "constant": true, - "inputs": [ - { - "name": "_entityType", - "type": "uint8" - }, - { - "name": "_rewardsDay", - "type": "uint256" - } - ], - "name": "getEntities", + "inputs": [], + "name": "totalSupply", "outputs": [ { "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" - }, - { - "name": "_nonce", "type": "uint256" } ], - "name": "getTransferPreSignedHash", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], "payable": false, - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_to", + "name": "from", "type": "address" }, { - "name": "_value", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" + "name": "to", + "type": "address" }, { - "name": "_nonce", + "name": "value", "type": "uint256" } ], - "name": "transferPreSigned", + "name": "transferFrom", "outputs": [ { "name": "", @@ -147,56 +95,27 @@ }, { "constant": true, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_spender", - "type": "address" - }, - { - "name": "_addedValue", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "getIncreaseAllowancePreSignedHash", + "inputs": [], + "name": "maxTotalSupply", "outputs": [ { "name": "", - "type": "bytes32" + "type": "uint256" } ], "payable": false, - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { - "name": "_name", - "type": "uint8" - }, - { - "name": "_value", - "type": "uint256" - }, - { - "name": "_rewardsDay", - "type": "uint256" + "name": "_minter", + "type": "address" } ], - "name": "updateParameter", + "name": "removeMinter", "outputs": [], "payable": false, "stateMutability": "nonpayable", @@ -205,52 +124,25 @@ { "constant": true, "inputs": [], - "name": "totalSupply", + "name": "PERMIT_TYPEHASH", "outputs": [ { "name": "", - "type": "uint256" + "type": "bytes32" } ], "payable": false, "stateMutability": "view", "type": "function" }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "constant": true, "inputs": [], - "name": "maxTotalSupply", + "name": "decimals", "outputs": [ { "name": "", - "type": "uint256" + "type": "uint8" } ], "payable": false, @@ -260,11 +152,11 @@ { "constant": true, "inputs": [], - "name": "decimals", + "name": "DOMAIN_SEPARATOR", "outputs": [ { "name": "", - "type": "uint8" + "type": "bytes32" } ], "payable": false, @@ -294,6 +186,24 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": false, + "inputs": [ + { + "name": "_account", + "type": "address" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [], @@ -310,17 +220,8 @@ }, { "constant": true, - "inputs": [ - { - "name": "_name", - "type": "uint8" - }, - { - "name": "_rewardsDay", - "type": "uint256" - } - ], - "name": "getParameter", + "inputs": [], + "name": "rewardsStartTimestamp", "outputs": [ { "name": "", @@ -335,94 +236,50 @@ "constant": true, "inputs": [ { - "name": "_token", - "type": "address" - }, - { - "name": "_spender", + "name": "owner", "type": "address" - }, - { - "name": "_subtractedValue", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" } ], - "name": "getDecreaseAllowancePreSignedHash", + "name": "balanceOf", "outputs": [ { "name": "", - "type": "bytes32" + "type": "uint256" } ], "payable": false, - "stateMutability": "pure", + "stateMutability": "view", "type": "function" }, { - "constant": false, + "constant": true, "inputs": [ { - "name": "_rewardsDay", - "type": "uint256" - }, - { - "name": "_rewardsHash", - "type": "bytes32" - }, - { - "name": "_applications", - "type": "address[]" - }, + "name": "", + "type": "address" + } + ], + "name": "nonces", + "outputs": [ { - "name": "_amounts", - "type": "uint256[]" + "name": "", + "type": "uint256" } ], - "name": "submitDailyRewards", - "outputs": [], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_spender", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "approvePreSigned", - "outputs": [ - { - "name": "", - "type": "bool" + "name": "_tokenName", + "type": "string" } ], + "name": "initializePermitUpgrade", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" @@ -430,11 +287,11 @@ { "constant": true, "inputs": [], - "name": "rewardsStartTimestamp", + "name": "symbol", "outputs": [ { "name": "", - "type": "uint256" + "type": "string" } ], "payable": false, @@ -442,14 +299,23 @@ "type": "function" }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "owner", + "name": "_minter", "type": "address" } ], - "name": "balanceOf", + "name": "addMinter", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "MY_CHAIN_ID", "outputs": [ { "name": "", @@ -464,259 +330,122 @@ "constant": false, "inputs": [ { - "name": "_rewardsDay", - "type": "uint256" + "name": "spender", + "type": "address" }, { - "name": "_applications", - "type": "address[]" + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" } ], - "name": "setApplications", - "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "_token", - "type": "address" - }, - { - "name": "_spender", + "name": "to", "type": "address" }, { - "name": "_value", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" - }, - { - "name": "_nonce", + "name": "value", "type": "uint256" } ], - "name": "getApprovePreSignedHash", + "name": "transfer", "outputs": [ { "name": "", - "type": "bytes32" + "type": "bool" } ], "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { - "name": "_entityType", - "type": "uint8" - }, - { - "name": "_name", - "type": "bytes32" - }, - { - "name": "_rewardsAddress", + "name": "_token", "type": "address" }, { - "name": "_sidechainAddress", - "type": "address" - } - ], - "name": "updateEntity", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "spender", + "name": "_to", "type": "address" }, { - "name": "subtractedValue", + "name": "_amount", "type": "uint256" } ], - "name": "decreaseAllowance", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], + "name": "reclaimToken", + "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, - "inputs": [ - { - "name": "_token", - "type": "address" - }, - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "getTransferFromPreSignedHash", + "inputs": [], + "name": "transfersStartTime", "outputs": [ { "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", "type": "uint256" } ], - "name": "transfer", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_from", + "name": "_owner", "type": "address" }, { - "name": "_to", + "name": "_spender", "type": "address" }, { - "name": "_value", + "name": "_amount", "type": "uint256" }, { - "name": "_fee", + "name": "_deadline", "type": "uint256" }, { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "transferFromPreSigned", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_applicationAddress", - "type": "address" + "name": "_v", + "type": "uint8" }, { - "name": "_userId", + "name": "_r", "type": "bytes32" }, { - "name": "_to", - "type": "address" - }, - { - "name": "_amount", - "type": "uint256" + "name": "_s", + "type": "bytes32" } ], - "name": "settle", + "name": "permit", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, - { - "constant": true, - "inputs": [], - "name": "transfersStartTime", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "constant": true, "inputs": [ @@ -741,70 +470,14 @@ "type": "function" }, { - "constant": false, - "inputs": [ - { - "name": "_rewardsDay", - "type": "uint256" - }, - { - "name": "_validators", - "type": "address[]" - } - ], - "name": "setValidators", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_controller", - "type": "address" - }, - { - "name": "_minSecondsBetweenDays", - "type": "uint256" - }, - { - "name": "_rewardsStartTimestamp", - "type": "uint256" - } - ], - "name": "initializePostRewardsUpgrade1", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, + "constant": true, "inputs": [ { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_spender", + "name": "", "type": "address" - }, - { - "name": "_subtractedValue", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" } ], - "name": "decreaseAllowancePreSigned", + "name": "minters", "outputs": [ { "name": "", @@ -812,7 +485,7 @@ } ], "payable": false, - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { @@ -829,61 +502,16 @@ "stateMutability": "view", "type": "function" }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_spender", - "type": "address" - }, - { - "name": "_addedValue", - "type": "uint256" - }, - { - "name": "_fee", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "increaseAllowancePreSigned", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "anonymous": false, "inputs": [ { "indexed": true, - "name": "rewardsDay", - "type": "uint256" - }, - { - "indexed": true, - "name": "rewardsHash", - "type": "bytes32" - }, - { - "indexed": true, - "name": "validator", + "name": "newController", "type": "address" } ], - "name": "DailyRewardsSubmitted", + "name": "ControllerUpdated", "type": "event" }, { @@ -891,26 +519,21 @@ "inputs": [ { "indexed": true, - "name": "rewardsDay", - "type": "uint256" + "name": "from", + "type": "address" }, { "indexed": true, - "name": "rewardsHash", - "type": "bytes32" - }, - { - "indexed": false, - "name": "numOfApplications", - "type": "uint256" + "name": "to", + "type": "address" }, { "indexed": false, - "name": "amount", + "name": "value", "type": "uint256" } ], - "name": "DailyRewardsApplicationsMinted", + "name": "Transfer", "type": "event" }, { @@ -918,287 +541,55 @@ "inputs": [ { "indexed": true, - "name": "rewardsDay", - "type": "uint256" + "name": "owner", + "type": "address" }, { "indexed": true, - "name": "rewardsHash", - "type": "bytes32" - }, - { - "indexed": false, - "name": "numOfValidators", - "type": "uint256" + "name": "spender", + "type": "address" }, { "indexed": false, - "name": "amount", + "name": "value", "type": "uint256" } ], - "name": "DailyRewardsValidatorsMinted", + "name": "Approval", "type": "event" }, { - "anonymous": false, + "constant": false, "inputs": [ { - "indexed": true, - "name": "id", - "type": "address" + "name": "name", + "type": "string" }, { - "indexed": true, - "name": "entityType", - "type": "uint8" - }, - { - "indexed": false, - "name": "name", - "type": "bytes32" - }, - { - "indexed": false, - "name": "rewardsAddress", - "type": "address" + "name": "symbol", + "type": "string" }, { - "indexed": true, - "name": "sidechainAddress", - "type": "address" - } - ], - "name": "EntityUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "param", + "name": "decimals", "type": "uint8" - }, - { - "indexed": false, - "name": "newValue", - "type": "uint256" - }, - { - "indexed": false, - "name": "oldValue", - "type": "uint256" - }, - { - "indexed": false, - "name": "rewardsDay", - "type": "uint256" - } - ], - "name": "ParameterUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "validatorsList", - "type": "address[]" - }, - { - "indexed": true, - "name": "rewardsDay", - "type": "uint256" - } - ], - "name": "ValidatorsListUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "applicationsList", - "type": "address[]" - }, - { - "indexed": true, - "name": "rewardsDay", - "type": "uint256" - } - ], - "name": "ApplicationsListUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "newController", - "type": "address" - } - ], - "name": "ControllerUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "applicationId", - "type": "address" - }, - { - "indexed": true, - "name": "userId", - "type": "bytes32" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "rewardsAddress", - "type": "address" - } - ], - "name": "Settlement", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": true, - "name": "delegate", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "fee", - "type": "uint256" - } - ], - "name": "TransferPreSigned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": true, - "name": "delegate", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "fee", - "type": "uint256" - } - ], - "name": "ApprovalPreSigned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": false, - "name": "value", - "type": "uint256" } ], - "name": "Transfer", - "type": "event" + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, + "constant": false, "inputs": [ { - "indexed": true, - "name": "owner", + "name": "_holder", "type": "address" }, { - "indexed": true, - "name": "spender", + "name": "_controller", "type": "address" - }, - { - "indexed": false, - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "name", - "type": "string" - }, - { - "name": "symbol", - "type": "string" - }, - { - "name": "decimals", - "type": "uint8" } ], "name": "initialize", @@ -1210,21 +601,9 @@ { "constant": false, "inputs": [ - { - "name": "_holder", - "type": "address" - }, { "name": "_controller", "type": "address" - }, - { - "name": "_minSecondsBetweenDays", - "type": "uint256" - }, - { - "name": "_rewardsStartTimestamp", - "type": "uint256" } ], "name": "initialize", @@ -1234,24 +613,25 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b506157c680620000216000396000f3006080604052600436106101d8576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306cb5b66146101dd57806306fdde0314610220578063095ea7b3146102b0578063098bfa9f146103155780630d98dcb1146103a45780631296830d14610441578063138e8da1146105005780631624f6c61461059d578063162663001461065957806318160ddd1461069d57806323b872dd146106c85780632ab4d0521461074d578063313ce5671461077857806339509351146107a957806345b6d7dc1461080e5780634f92caf8146108655780635229c56f146108b357806357ece4bc14610950578063617b390b14610a115780636356850214610ad057806370a0823114610afb5780637492fdda14610b5257806379250dcf14610bc257806395d89b4114610c5f57806396e8832714610cef578063a457c2d714610d6d578063a70c41b414610dd2578063a9059cbb14610e8f578063bca5051514610ef4578063c7ed71a514610fd3578063d0f22e9c1461104e578063dd62ed3e14611079578063e795594d146110f0578063e9d2c4b314611160578063eb990c59146111b7578063f2959d6e1461122e578063f77c4791146112ed578063f80801d014611344575b600080fd5b3480156101e957600080fd5b5061021e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611403565b005b34801561022c57600080fd5b5061023561161a565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561027557808201518184015260208101905061025a565b50505050905090810190601f1680156102a25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102bc57600080fd5b506102fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116bc565b604051808215151515815260200191505060405180910390f35b34801561032157600080fd5b5061034d600480360381019080803560ff169060200190929190803590602001909291905050506116d3565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610390578082015181840152602081019050610375565b505050509050019250505060405180910390f35b3480156103b057600080fd5b50610423600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001909291905050506117f8565b60405180826000191660001916815260200191505060405180910390f35b34801561044d57600080fd5b506104e6600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611986565b604051808215151515815260200191505060405180910390f35b34801561050c57600080fd5b5061057f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611d68565b60405180826000191660001916815260200191505060405180910390f35b3480156105a957600080fd5b50610657600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050611ef6565b005b34801561066557600080fd5b5061069b600480360381019080803560ff1690602001909291908035906020019092919080359060200190929190505050612077565b005b3480156106a957600080fd5b506106b26122b4565b6040518082815260200191505060405180910390f35b3480156106d457600080fd5b50610733600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506122be565b604051808215151515815260200191505060405180910390f35b34801561075957600080fd5b5061076261236f565b6040518082815260200191505060405180910390f35b34801561078457600080fd5b5061078d612375565b604051808260ff1660ff16815260200191505060405180910390f35b3480156107b557600080fd5b506107f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061238c565b604051808215151515815260200191505060405180910390f35b34801561081a57600080fd5b50610823612431565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561087157600080fd5b5061089d600480360381019080803560ff16906020019092919080359060200190929190505050612457565b6040518082815260200191505060405180910390f35b3480156108bf57600080fd5b50610932600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050612526565b60405180826000191660001916815260200191505060405180910390f35b34801561095c57600080fd5b50610a0f60048036038101908080359060200190929190803560001916906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506126b4565b005b348015610a1d57600080fd5b50610ab6600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050612a7a565b604051808215151515815260200191505060405180910390f35b348015610adc57600080fd5b50610ae5612e5c565b6040518082815260200191505060405180910390f35b348015610b0757600080fd5b50610b3c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e62565b6040518082815260200191505060405180910390f35b348015610b5e57600080fd5b50610bc06004803603810190808035906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612eab565b005b348015610bce57600080fd5b50610c41600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001909291905050506130c2565b60405180826000191660001916815260200191505060405180910390f35b348015610c6b57600080fd5b50610c74613250565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610cb4578082015181840152602081019050610c99565b50505050905090810190601f168015610ce15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610cfb57600080fd5b50610d6b600480360381019080803560ff1690602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506132f2565b005b348015610d7957600080fd5b50610db8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506134b7565b604051808215151515815260200191505060405180910390f35b348015610dde57600080fd5b50610e71600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019092919050505061355c565b60405180826000191660001916815260200191505060405180910390f35b348015610e9b57600080fd5b50610eda600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061372e565b604051808215151515815260200191505060405180910390f35b348015610f0057600080fd5b50610fb9600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050613745565b604051808215151515815260200191505060405180910390f35b348015610fdf57600080fd5b5061104c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613b75565b005b34801561105a57600080fd5b50611063613d52565b6040518082815260200191505060405180910390f35b34801561108557600080fd5b506110da600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613d58565b6040518082815260200191505060405180910390f35b3480156110fc57600080fd5b5061115e6004803603810190808035906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050613ddf565b005b34801561116c57600080fd5b506111b5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050613ff6565b005b3480156111c357600080fd5b5061122c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061400e565b005b34801561123a57600080fd5b506112d3600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001909291905050506141e9565b604051808215151515815260200191505060405180910390f35b3480156112f957600080fd5b506113026145ef565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561135057600080fd5b506113e9600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050614615565b604051808215151515815260200191505060405180910390f35b60ba60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611593576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f436f6e74726f6c6c65722063616e6e6f7420626520746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060ba60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f1304018cfe79741dcf02ba6b61d39cc4757d59395d03224d9925c7aa8300214660405160405180910390a250565b606060338054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116b25780601f10611687576101008083540402835291602001916116b2565b820191906000526020600020905b81548152906001019060200180831161169557829003601f168201915b5050505050905090565b60006116c9338484614a1b565b6001905092915050565b606073__PropsRewardsLib_______________________638993273560a085856040518463ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183600181111561173457fe5b60ff168152602001828152602001935050505060006040518083038186803b15801561175f57600080fd5b505af4158015611773573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561179d57600080fd5b8101908080516401000000008111156117b557600080fd5b828101905060208101848111156117cb57600080fd5b81518560208202830111640100000000821117156117e857600080fd5b5050929190505050905092915050565b6000630d98dcb17c010000000000000000000000000000000000000000000000000000000002868686868660405160200180877bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526004018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140184815260200183815260200182815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561194e5780518252602082019150602081019050602083039250611929565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614151515611a31576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e76616c6964205f746f20616464726573730000000000000000000000000081525060200191505060405180910390fd5b611a3e30898989896117f8565b9250611a4a838a614b7e565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611af1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c69642066726f6d2061646472657373207265636f7665726564000081525060200191505060405180910390fd5b8183604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083101515611b915780518252602082019150602081019050602083039250611b6c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060001515609d6000836000191660001916815260200190815260200160002060009054906101000a900460ff161515141515611c8a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f5472616e73616374696f6e20686173682077617320616c72656164792075736581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001609d6000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550611cc9828989614c76565b611cd4823388614c76565b3373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fec5a73fd1f178be20c1bca1b406cbf4b5c20d833b66e582fc122fb4baa0fc2a48a8a604051808381526020018281526020019250505060405180910390a46001935050505095945050505050565b600063138e8da17c010000000000000000000000000000000000000000000000000000000002868686868660405160200180877bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526004018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140184815260200183815260200182815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515611ebe5780518252602082019150602081019050602083039250611e99565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b60008060019054906101000a900460ff1680611f165750611f15614e94565b5b80611f2d57506000809054906101000a900460ff16155b1515611fc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555083603390805190602001906120249291906156f5565b50826034908051906020019061203b9291906156f5565b5081603560006101000a81548160ff021916908360ff16021790555080600060016101000a81548160ff02191690831515021790555050505050565b60ba60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561213c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b73__PropsRewardsLib_______________________6311cb33da60a08585856040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184600381111561219c57fe5b60ff16815260200183815260200182815260200194505050505060006040518083038186803b1580156121ce57600080fd5b505af41580156121e2573d6000803e3d6000fd5b505050507fd3ee560e0e71d87fde0453f24eac52dd8f01332349f8d1ef9e005d1cc3b82fb48360a0600401600086600381111561221b57fe5b81526020019081526020016000206000015460a0600401600087600381111561224057fe5b81526020019081526020016000206001015460a0600401600088600381111561226557fe5b8152602001908152602001600020600201546040518085600381111561228757fe5b60ff16815260200184815260200183815260200182815260200194505050505060405180910390a1505050565b6000606a54905090565b60006122cb848484614c76565b612364843361235f85606960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614ea590919063ffffffff16565b614a1b565b600190509392505050565b60b85481565b6000603560009054906101000a900460ff16905090565b6000612427338461242285606960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614ec690919063ffffffff16565b614a1b565b6001905092915050565b609f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073__PropsRewardsLib_______________________63d81b705060a085856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018360038111156124b857fe5b60ff168152602001828152602001935050505060206040518083038186803b1580156124e357600080fd5b505af41580156124f7573d6000803e3d6000fd5b505050506040513d602081101561250d57600080fd5b8101908080519060200190929190505050905092915050565b6000635229c56f7c010000000000000000000000000000000000000000000000000000000002868686868660405160200180877bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526004018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140184815260200183815260200182815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561267c5780518252602082019150602081019050602083039250612657565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600080600060a0600f01600401548711156127cc5773__PropsRewardsLib_______________________6314a68c3860a080600f016004015460a0600f016003015460006040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184815260200183600019166000191681526020018215151515815260200194505050505060206040518083038186803b15801561276957600080fd5b505af415801561277d573d6000803e3d6000fd5b505050506040513d602081101561279357600080fd5b8101908080519060200190929190505050925060008311156127cb576127ca60a0600f016004015460a0600f016003015485614ee7565b5b5b73__PropsRewardsLib_______________________630f9887a060a0898989896127f46122b4565b6040518763ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018087815260200186815260200185600019166000191681526020018060200180602001848152602001838103835286818151815260200191508051906020019060200280838360005b8381101561288657808201518184015260208101905061286b565b50505050905001838103825285818151815260200191508051906020019060200280838360005b838110156128c85780820151818401526020810190506128ad565b505050509050019850505050505050505060206040518083038186803b1580156128f157600080fd5b505af4158015612905573d6000803e3d6000fd5b505050506040513d602081101561291b57600080fd5b8101908080519060200190929190505050915060008211156129455761294487878787866150da565b5b73__PropsRewardsLib_______________________6314a68c3860a0898960016040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184815260200183600019166000191681526020018215151515815260200194505050505060206040518083038186803b1580156129d657600080fd5b505af41580156129ea573d6000803e3d6000fd5b505050506040513d6020811015612a0057600080fd5b810190808051906020019092919050505090506000811115612a2857612a27878783614ee7565b5b3373ffffffffffffffffffffffffffffffffffffffff168660001916887f47a75fa3188612bc1341726d7859491a32bf875dd309474f712950354f73c5a760405160405180910390a450505050505050565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614151515612b25576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964205f7370656e6465722061646472657373000000000000000081525060200191505060405180910390fd5b612b3230898989896130c2565b9250612b3e838a614b7e565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612be5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c69642066726f6d2061646472657373207265636f7665726564000081525060200191505060405180910390fd5b8183604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083101515612c855780518252602082019150602081019050602083039250612c60565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060001515609d6000836000191660001916815260200190815260200160002060009054906101000a900460ff161515141515612d7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f5472616e73616374696f6e20686173682077617320616c72656164792075736581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001609d6000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550612dbd828989614a1b565b612dc8823388614c76565b3373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f43a220267705e74ee2ceafd46afc841850db6f85a662189a7def697bbdd90ffb8a8a604051808381526020018281526020019250505060405180910390a46001935050505095945050505050565b60b95481565b6000606860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60ba60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612f70576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b73__PropsRewardsLib_______________________63cc1b8c9c60a084846040518463ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200180602001828103825283818151815260200191508051906020019060200280838360005b83811015613008578082015181840152602081019050612fed565b5050505090500194505050505060006040518083038186803b15801561302d57600080fd5b505af4158015613041573d6000803e3d6000fd5b50505050817f426b639e1d49f62952a4d3282b37648fb8c47ac20b15e01548c104b75c787c0c826040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156130ab578082015181840152602081019050613090565b505050509050019250505060405180910390a25050565b60006379250dcf7c010000000000000000000000000000000000000000000000000000000002868686868660405160200180877bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526004018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140184815260200183815260200182815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561321857805182526020820191506020810190506020830392506131f3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b606060348054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132e85780601f106132bd576101008083540402835291602001916132e8565b820191906000526020600020905b8154815290600101906020018083116132cb57829003601f168201915b5050505050905090565b73__PropsRewardsLib_______________________6346e3a29860a0868686866040518663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018086815260200185600181111561335357fe5b60ff16815260200184600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019550505050505060006040518083038186803b1580156133ec57600080fd5b505af4158015613400573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1684600181111561342757fe5b3373ffffffffffffffffffffffffffffffffffffffff167fac4aacb75e6f9ac6f2fee64077e9436dfb1be853b1a850b7863cf1433f0e752886866040518083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a450505050565b6000613552338461354d85606960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614ea590919063ffffffff16565b614a1b565b6001905092915050565b600063a70c41b47c01000000000000000000000000000000000000000000000000000000000287878787878760405160200180887bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526004018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018481526020018381526020018281526020019750505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156136f557805182526020820191506020810190506020830392506136d0565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090509695505050505050565b600061373b338484614c76565b6001905092915050565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141515156137f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e76616c6964205f746f20616464726573730000000000000000000000000081525060200191505060405180910390fd5b6137fe308a8a8a8a8a61355c565b925061380a838b614b7e565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156138d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f496e76616c6964207370656e6465722061646472657373207265636f7665726581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8183604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831015156139775780518252602082019150602081019050602083039250613952565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060001515609d6000836000191660001916815260200190815260200160002060009054906101000a900460ff161515141515613a70576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f5472616e73616374696f6e20686173682077617320616c72656164792075736581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001609d6000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550613aaf898989614c76565b613ad58983613ad08a613ac28e88613d58565b614ea590919063ffffffff16565b614a1b565b613ae0823388614c76565b3373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fec5a73fd1f178be20c1bca1b406cbf4b5c20d833b66e582fc122fb4baa0fc2a48a8a604051808381526020018281526020019250505060405180910390a4600193505050509695505050505050565b3373ffffffffffffffffffffffffffffffffffffffff1660a060000160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613ca3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f736574746c65206d6179206f6e6c792062652063616c6c656420627920616e2081526020017f6170706c69636174696f6e00000000000000000000000000000000000000000081525060400191505060405180910390fd5b613cae338383614c76565b8173ffffffffffffffffffffffffffffffffffffffff1683600019168573ffffffffffffffffffffffffffffffffffffffff167f53b5073ff19aef23b167e83c6be14817da210375bec35b4c0ccfc0cded9a23f88433604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a450505050565b609e5481565b6000606960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60ba60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613ea4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b73__PropsRewardsLib_______________________6363cad06a60a084846040518463ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200180602001828103825283818151815260200191508051906020019060200280838360005b83811015613f3c578082015181840152602081019050613f21565b5050505090500194505050505060006040518083038186803b158015613f6157600080fd5b505af4158015613f75573d6000803e3d6000fd5b50505050817f25071f4c6ebdf865da246a5caf6a5bbcbe50f6443e15309b97b10043c6beb1d9826040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015613fdf578082015181840152602081019050613fc4565b505050509050019250505060405180910390a25050565b600060129050614008848285856151e1565b50505050565b60008060008060019054906101000a900460ff16806140315750614030614e94565b5b8061404857506000809054906101000a900460ff16155b15156140e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff021916908315150217905550601292508260ff16600a0a6323c346000291506141b16040805190810160405280600b81526020017f50726f707320546f6b656e0000000000000000000000000000000000000000008152506040805190810160405280600581526020017f50524f505300000000000000000000000000000000000000000000000000000081525085611ef6565b6141bc868686613ff6565b6141c687836155b5565b80600060016101000a81548160ff02191690831515021790555050505050505050565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614151515614294576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964205f7370656e6465722061646472657373000000000000000081525060200191505060405180910390fd5b6142a13089898989612526565b92506142ad838a614b7e565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515614354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c69642066726f6d2061646472657373207265636f7665726564000081525060200191505060405180910390fd5b8183604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831015156143f457805182526020820191506020810190506020830392506143cf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060001515609d6000836000191660001916815260200190815260200160002060009054906101000a900460ff1615151415156144ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f5472616e73616374696f6e20686173682077617320616c72656164792075736581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001609d6000836000191660001916815260200190815260200160002060006101000a81548160ff02191690831515021790555061454782896145428a614534878e613d58565b614ea590919063ffffffff16565b614a1b565b614552823388614c76565b3373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f43a220267705e74ee2ceafd46afc841850db6f85a662189a7def697bbdd90ffb6145c2868d613d58565b8a604051808381526020018281526020019250505060405180910390a46001935050505095945050505050565b60ba60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141515156146c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964205f7370656e6465722061646472657373000000000000000081525060200191505060405180910390fd5b6146cd3089898989611d68565b92506146d9838a614b7e565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515614780576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c69642066726f6d2061646472657373207265636f7665726564000081525060200191505060405180910390fd5b8183604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b60208310151561482057805182526020820191506020810190506020830392506147fb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060001515609d6000836000191660001916815260200190815260200160002060009054906101000a900460ff161515141515614919576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f5472616e73616374696f6e20686173682077617320616c72656164792075736581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001609d6000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550614973828961496e8a614960878e613d58565b614ec690919063ffffffff16565b614a1b565b61497e823388614c76565b3373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f43a220267705e74ee2ceafd46afc841850db6f85a662189a7def697bbdd90ffb6149ee868d613d58565b8a604051808381526020018281526020019250505060405180910390a46001935050505095945050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515614a5757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515614a9357600080fd5b80606960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60008060008060418551141515614b985760009350614c6d565b6020850151925060408501519150606085015160001a9050601b8160ff161015614bc357601b810190505b601b8160ff1614158015614bdb5750601c8160ff1614155b15614be95760009350614c6d565b600186828585604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015614c60573d6000803e3d6000fd5b5050506020604051035193505b50505092915050565b606860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515614cc457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515614d0057600080fd5b614d5281606860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614ea590919063ffffffff16565b606860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614de781606860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614ec690919063ffffffff16565b606860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080303b90506000811491505090565b600080838311151515614eb757600080fd5b82840390508091505092915050565b6000808284019050838110151515614edd57600080fd5b8091505092915050565b60008060a0600f0160000160008560001916600019168152602001908152602001600020600101805490509150600090505b81811015614ff857614feb60a0600201600060a0600f016000016000886000191660001916815260200190815260200160002060010184815481101515614f5c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846155b5565b8080600101915050614f19565b73__PropsRewardsLib_______________________63cb27ba3e60a0866040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060006040518083038186803b15801561507457600080fd5b505af4158015615088573d6000803e3d6000fd5b505050508360001916857f07efea0e0eeb975e5404139e47d884d2705a0660a3456aa31c5694df1d8c5f1484858702604051808381526020018281526020019250505060405180910390a35050505050565b60008090505b83518110156151935761518660a06000016000868481518110151561510157fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848381518110151561517757fe5b906020019060200201516155b5565b80806001019150506150e0565b8460001916867fcc511f1b8ddd8ab10bcb89c26361da1c99b826350e3f38ee438134149032568a865185604051808381526020018281526020019250505060405180910390a3505050505050565b600060b854141515615281576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f496e697469616c697a6520726577617264732075706772616465312063616e2081526020017f68617070656e206f6e6c79206f6e63650000000000000000000000000000000081525060400191505060405180910390fd5b8360ba60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073__PropsRewardsLib_______________________6311cb33da60a060006187be60006040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184600381111561532657fe5b60ff16815260200183815260200182815260200194505050505060006040518083038186803b15801561535857600080fd5b505af415801561536c573d6000803e3d6000fd5b5050505073__PropsRewardsLib_______________________6311cb33da60a060016308f0d18060006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018460038111156153d657fe5b60ff16815260200183815260200182815260200194505050505060006040518083038186803b15801561540857600080fd5b505af415801561541c573d6000803e3d6000fd5b5050505073__PropsRewardsLib_______________________6311cb33da60a060026302faf08060006040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184600381111561548657fe5b60ff16815260200183815260200182815260200194505050505060006040518083038186803b1580156154b857600080fd5b505af41580156154cc573d6000803e3d6000fd5b5050505073__PropsRewardsLib_______________________6311cb33da60a0600361072560006040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184600381111561553457fe5b60ff16815260200183815260200182815260200194505050505060006040518083038186803b15801561556657600080fd5b505af415801561557a573d6000803e3d6000fd5b5050505082600a0a633b9aca000260b881905560a0601601819055508060b981905560a0601501819055508160a06014018190555050505050565b60008273ffffffffffffffffffffffffffffffffffffffff16141515156155db57600080fd5b6155f081606a54614ec690919063ffffffff16565b606a8190555061564881606860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614ec690919063ffffffff16565b606860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061573657805160ff1916838001178555615764565b82800160010185558215615764579182015b82811115615763578251825591602001919060010190615748565b5b5090506157719190615775565b5090565b61579791905b8082111561579357600081600090555060010161577b565b5090565b905600a165627a7a72305820412710e103a140fd3a1b6c5177bbc23ae71e062c25c714e2e063c63b470610500029", - "deployedBytecode": "0x6080604052600436106101d8576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306cb5b66146101dd57806306fdde0314610220578063095ea7b3146102b0578063098bfa9f146103155780630d98dcb1146103a45780631296830d14610441578063138e8da1146105005780631624f6c61461059d578063162663001461065957806318160ddd1461069d57806323b872dd146106c85780632ab4d0521461074d578063313ce5671461077857806339509351146107a957806345b6d7dc1461080e5780634f92caf8146108655780635229c56f146108b357806357ece4bc14610950578063617b390b14610a115780636356850214610ad057806370a0823114610afb5780637492fdda14610b5257806379250dcf14610bc257806395d89b4114610c5f57806396e8832714610cef578063a457c2d714610d6d578063a70c41b414610dd2578063a9059cbb14610e8f578063bca5051514610ef4578063c7ed71a514610fd3578063d0f22e9c1461104e578063dd62ed3e14611079578063e795594d146110f0578063e9d2c4b314611160578063eb990c59146111b7578063f2959d6e1461122e578063f77c4791146112ed578063f80801d014611344575b600080fd5b3480156101e957600080fd5b5061021e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611403565b005b34801561022c57600080fd5b5061023561161a565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561027557808201518184015260208101905061025a565b50505050905090810190601f1680156102a25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102bc57600080fd5b506102fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116bc565b604051808215151515815260200191505060405180910390f35b34801561032157600080fd5b5061034d600480360381019080803560ff169060200190929190803590602001909291905050506116d3565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610390578082015181840152602081019050610375565b505050509050019250505060405180910390f35b3480156103b057600080fd5b50610423600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001909291905050506117f8565b60405180826000191660001916815260200191505060405180910390f35b34801561044d57600080fd5b506104e6600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611986565b604051808215151515815260200191505060405180910390f35b34801561050c57600080fd5b5061057f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611d68565b60405180826000191660001916815260200191505060405180910390f35b3480156105a957600080fd5b50610657600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050611ef6565b005b34801561066557600080fd5b5061069b600480360381019080803560ff1690602001909291908035906020019092919080359060200190929190505050612077565b005b3480156106a957600080fd5b506106b26122b4565b6040518082815260200191505060405180910390f35b3480156106d457600080fd5b50610733600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506122be565b604051808215151515815260200191505060405180910390f35b34801561075957600080fd5b5061076261236f565b6040518082815260200191505060405180910390f35b34801561078457600080fd5b5061078d612375565b604051808260ff1660ff16815260200191505060405180910390f35b3480156107b557600080fd5b506107f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061238c565b604051808215151515815260200191505060405180910390f35b34801561081a57600080fd5b50610823612431565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561087157600080fd5b5061089d600480360381019080803560ff16906020019092919080359060200190929190505050612457565b6040518082815260200191505060405180910390f35b3480156108bf57600080fd5b50610932600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050612526565b60405180826000191660001916815260200191505060405180910390f35b34801561095c57600080fd5b50610a0f60048036038101908080359060200190929190803560001916906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506126b4565b005b348015610a1d57600080fd5b50610ab6600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050612a7a565b604051808215151515815260200191505060405180910390f35b348015610adc57600080fd5b50610ae5612e5c565b6040518082815260200191505060405180910390f35b348015610b0757600080fd5b50610b3c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612e62565b6040518082815260200191505060405180910390f35b348015610b5e57600080fd5b50610bc06004803603810190808035906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612eab565b005b348015610bce57600080fd5b50610c41600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001909291905050506130c2565b60405180826000191660001916815260200191505060405180910390f35b348015610c6b57600080fd5b50610c74613250565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610cb4578082015181840152602081019050610c99565b50505050905090810190601f168015610ce15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610cfb57600080fd5b50610d6b600480360381019080803560ff1690602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506132f2565b005b348015610d7957600080fd5b50610db8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506134b7565b604051808215151515815260200191505060405180910390f35b348015610dde57600080fd5b50610e71600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019092919050505061355c565b60405180826000191660001916815260200191505060405180910390f35b348015610e9b57600080fd5b50610eda600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061372e565b604051808215151515815260200191505060405180910390f35b348015610f0057600080fd5b50610fb9600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050613745565b604051808215151515815260200191505060405180910390f35b348015610fdf57600080fd5b5061104c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613b75565b005b34801561105a57600080fd5b50611063613d52565b6040518082815260200191505060405180910390f35b34801561108557600080fd5b506110da600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613d58565b6040518082815260200191505060405180910390f35b3480156110fc57600080fd5b5061115e6004803603810190808035906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050613ddf565b005b34801561116c57600080fd5b506111b5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050613ff6565b005b3480156111c357600080fd5b5061122c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061400e565b005b34801561123a57600080fd5b506112d3600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001909291905050506141e9565b604051808215151515815260200191505060405180910390f35b3480156112f957600080fd5b506113026145ef565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561135057600080fd5b506113e9600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050614615565b604051808215151515815260200191505060405180910390f35b60ba60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611593576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f436f6e74726f6c6c65722063616e6e6f7420626520746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060ba60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f1304018cfe79741dcf02ba6b61d39cc4757d59395d03224d9925c7aa8300214660405160405180910390a250565b606060338054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116b25780601f10611687576101008083540402835291602001916116b2565b820191906000526020600020905b81548152906001019060200180831161169557829003601f168201915b5050505050905090565b60006116c9338484614a1b565b6001905092915050565b606073__PropsRewardsLib_______________________638993273560a085856040518463ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183600181111561173457fe5b60ff168152602001828152602001935050505060006040518083038186803b15801561175f57600080fd5b505af4158015611773573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561179d57600080fd5b8101908080516401000000008111156117b557600080fd5b828101905060208101848111156117cb57600080fd5b81518560208202830111640100000000821117156117e857600080fd5b5050929190505050905092915050565b6000630d98dcb17c010000000000000000000000000000000000000000000000000000000002868686868660405160200180877bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526004018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140184815260200183815260200182815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561194e5780518252602082019150602081019050602083039250611929565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614151515611a31576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e76616c6964205f746f20616464726573730000000000000000000000000081525060200191505060405180910390fd5b611a3e30898989896117f8565b9250611a4a838a614b7e565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611af1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c69642066726f6d2061646472657373207265636f7665726564000081525060200191505060405180910390fd5b8183604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083101515611b915780518252602082019150602081019050602083039250611b6c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060001515609d6000836000191660001916815260200190815260200160002060009054906101000a900460ff161515141515611c8a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f5472616e73616374696f6e20686173682077617320616c72656164792075736581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001609d6000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550611cc9828989614c76565b611cd4823388614c76565b3373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fec5a73fd1f178be20c1bca1b406cbf4b5c20d833b66e582fc122fb4baa0fc2a48a8a604051808381526020018281526020019250505060405180910390a46001935050505095945050505050565b600063138e8da17c010000000000000000000000000000000000000000000000000000000002868686868660405160200180877bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526004018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140184815260200183815260200182815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515611ebe5780518252602082019150602081019050602083039250611e99565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b60008060019054906101000a900460ff1680611f165750611f15614e94565b5b80611f2d57506000809054906101000a900460ff16155b1515611fc7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555083603390805190602001906120249291906156f5565b50826034908051906020019061203b9291906156f5565b5081603560006101000a81548160ff021916908360ff16021790555080600060016101000a81548160ff02191690831515021790555050505050565b60ba60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561213c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b73__PropsRewardsLib_______________________6311cb33da60a08585856040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184600381111561219c57fe5b60ff16815260200183815260200182815260200194505050505060006040518083038186803b1580156121ce57600080fd5b505af41580156121e2573d6000803e3d6000fd5b505050507fd3ee560e0e71d87fde0453f24eac52dd8f01332349f8d1ef9e005d1cc3b82fb48360a0600401600086600381111561221b57fe5b81526020019081526020016000206000015460a0600401600087600381111561224057fe5b81526020019081526020016000206001015460a0600401600088600381111561226557fe5b8152602001908152602001600020600201546040518085600381111561228757fe5b60ff16815260200184815260200183815260200182815260200194505050505060405180910390a1505050565b6000606a54905090565b60006122cb848484614c76565b612364843361235f85606960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614ea590919063ffffffff16565b614a1b565b600190509392505050565b60b85481565b6000603560009054906101000a900460ff16905090565b6000612427338461242285606960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614ec690919063ffffffff16565b614a1b565b6001905092915050565b609f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073__PropsRewardsLib_______________________63d81b705060a085856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018360038111156124b857fe5b60ff168152602001828152602001935050505060206040518083038186803b1580156124e357600080fd5b505af41580156124f7573d6000803e3d6000fd5b505050506040513d602081101561250d57600080fd5b8101908080519060200190929190505050905092915050565b6000635229c56f7c010000000000000000000000000000000000000000000000000000000002868686868660405160200180877bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526004018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140184815260200183815260200182815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561267c5780518252602082019150602081019050602083039250612657565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600080600060a0600f01600401548711156127cc5773__PropsRewardsLib_______________________6314a68c3860a080600f016004015460a0600f016003015460006040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184815260200183600019166000191681526020018215151515815260200194505050505060206040518083038186803b15801561276957600080fd5b505af415801561277d573d6000803e3d6000fd5b505050506040513d602081101561279357600080fd5b8101908080519060200190929190505050925060008311156127cb576127ca60a0600f016004015460a0600f016003015485614ee7565b5b5b73__PropsRewardsLib_______________________630f9887a060a0898989896127f46122b4565b6040518763ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018087815260200186815260200185600019166000191681526020018060200180602001848152602001838103835286818151815260200191508051906020019060200280838360005b8381101561288657808201518184015260208101905061286b565b50505050905001838103825285818151815260200191508051906020019060200280838360005b838110156128c85780820151818401526020810190506128ad565b505050509050019850505050505050505060206040518083038186803b1580156128f157600080fd5b505af4158015612905573d6000803e3d6000fd5b505050506040513d602081101561291b57600080fd5b8101908080519060200190929190505050915060008211156129455761294487878787866150da565b5b73__PropsRewardsLib_______________________6314a68c3860a0898960016040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184815260200183600019166000191681526020018215151515815260200194505050505060206040518083038186803b1580156129d657600080fd5b505af41580156129ea573d6000803e3d6000fd5b505050506040513d6020811015612a0057600080fd5b810190808051906020019092919050505090506000811115612a2857612a27878783614ee7565b5b3373ffffffffffffffffffffffffffffffffffffffff168660001916887f47a75fa3188612bc1341726d7859491a32bf875dd309474f712950354f73c5a760405160405180910390a450505050505050565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614151515612b25576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964205f7370656e6465722061646472657373000000000000000081525060200191505060405180910390fd5b612b3230898989896130c2565b9250612b3e838a614b7e565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612be5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c69642066726f6d2061646472657373207265636f7665726564000081525060200191505060405180910390fd5b8183604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b602083101515612c855780518252602082019150602081019050602083039250612c60565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060001515609d6000836000191660001916815260200190815260200160002060009054906101000a900460ff161515141515612d7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f5472616e73616374696f6e20686173682077617320616c72656164792075736581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001609d6000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550612dbd828989614a1b565b612dc8823388614c76565b3373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f43a220267705e74ee2ceafd46afc841850db6f85a662189a7def697bbdd90ffb8a8a604051808381526020018281526020019250505060405180910390a46001935050505095945050505050565b60b95481565b6000606860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60ba60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612f70576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b73__PropsRewardsLib_______________________63cc1b8c9c60a084846040518463ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200180602001828103825283818151815260200191508051906020019060200280838360005b83811015613008578082015181840152602081019050612fed565b5050505090500194505050505060006040518083038186803b15801561302d57600080fd5b505af4158015613041573d6000803e3d6000fd5b50505050817f426b639e1d49f62952a4d3282b37648fb8c47ac20b15e01548c104b75c787c0c826040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156130ab578082015181840152602081019050613090565b505050509050019250505060405180910390a25050565b60006379250dcf7c010000000000000000000000000000000000000000000000000000000002868686868660405160200180877bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526004018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140184815260200183815260200182815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561321857805182526020820191506020810190506020830392506131f3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b606060348054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156132e85780601f106132bd576101008083540402835291602001916132e8565b820191906000526020600020905b8154815290600101906020018083116132cb57829003601f168201915b5050505050905090565b73__PropsRewardsLib_______________________6346e3a29860a0868686866040518663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018086815260200185600181111561335357fe5b60ff16815260200184600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019550505050505060006040518083038186803b1580156133ec57600080fd5b505af4158015613400573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1684600181111561342757fe5b3373ffffffffffffffffffffffffffffffffffffffff167fac4aacb75e6f9ac6f2fee64077e9436dfb1be853b1a850b7863cf1433f0e752886866040518083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a450505050565b6000613552338461354d85606960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614ea590919063ffffffff16565b614a1b565b6001905092915050565b600063a70c41b47c01000000000000000000000000000000000000000000000000000000000287878787878760405160200180887bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526004018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018481526020018381526020018281526020019750505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156136f557805182526020820191506020810190506020830392506136d0565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090509695505050505050565b600061373b338484614c76565b6001905092915050565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141515156137f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e76616c6964205f746f20616464726573730000000000000000000000000081525060200191505060405180910390fd5b6137fe308a8a8a8a8a61355c565b925061380a838b614b7e565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156138d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f496e76616c6964207370656e6465722061646472657373207265636f7665726581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8183604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831015156139775780518252602082019150602081019050602083039250613952565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060001515609d6000836000191660001916815260200190815260200160002060009054906101000a900460ff161515141515613a70576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f5472616e73616374696f6e20686173682077617320616c72656164792075736581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001609d6000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550613aaf898989614c76565b613ad58983613ad08a613ac28e88613d58565b614ea590919063ffffffff16565b614a1b565b613ae0823388614c76565b3373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fec5a73fd1f178be20c1bca1b406cbf4b5c20d833b66e582fc122fb4baa0fc2a48a8a604051808381526020018281526020019250505060405180910390a4600193505050509695505050505050565b3373ffffffffffffffffffffffffffffffffffffffff1660a060000160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613ca3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f736574746c65206d6179206f6e6c792062652063616c6c656420627920616e2081526020017f6170706c69636174696f6e00000000000000000000000000000000000000000081525060400191505060405180910390fd5b613cae338383614c76565b8173ffffffffffffffffffffffffffffffffffffffff1683600019168573ffffffffffffffffffffffffffffffffffffffff167f53b5073ff19aef23b167e83c6be14817da210375bec35b4c0ccfc0cded9a23f88433604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a450505050565b609e5481565b6000606960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60ba60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613ea4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b73__PropsRewardsLib_______________________6363cad06a60a084846040518463ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084815260200183815260200180602001828103825283818151815260200191508051906020019060200280838360005b83811015613f3c578082015181840152602081019050613f21565b5050505090500194505050505060006040518083038186803b158015613f6157600080fd5b505af4158015613f75573d6000803e3d6000fd5b50505050817f25071f4c6ebdf865da246a5caf6a5bbcbe50f6443e15309b97b10043c6beb1d9826040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015613fdf578082015181840152602081019050613fc4565b505050509050019250505060405180910390a25050565b600060129050614008848285856151e1565b50505050565b60008060008060019054906101000a900460ff16806140315750614030614e94565b5b8061404857506000809054906101000a900460ff16155b15156140e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff021916908315150217905550601292508260ff16600a0a6323c346000291506141b16040805190810160405280600b81526020017f50726f707320546f6b656e0000000000000000000000000000000000000000008152506040805190810160405280600581526020017f50524f505300000000000000000000000000000000000000000000000000000081525085611ef6565b6141bc868686613ff6565b6141c687836155b5565b80600060016101000a81548160ff02191690831515021790555050505050505050565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614151515614294576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964205f7370656e6465722061646472657373000000000000000081525060200191505060405180910390fd5b6142a13089898989612526565b92506142ad838a614b7e565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515614354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c69642066726f6d2061646472657373207265636f7665726564000081525060200191505060405180910390fd5b8183604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831015156143f457805182526020820191506020810190506020830392506143cf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060001515609d6000836000191660001916815260200190815260200160002060009054906101000a900460ff1615151415156144ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f5472616e73616374696f6e20686173682077617320616c72656164792075736581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001609d6000836000191660001916815260200190815260200160002060006101000a81548160ff02191690831515021790555061454782896145428a614534878e613d58565b614ea590919063ffffffff16565b614a1b565b614552823388614c76565b3373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f43a220267705e74ee2ceafd46afc841850db6f85a662189a7def697bbdd90ffb6145c2868d613d58565b8a604051808381526020018281526020019250505060405180910390a46001935050505095945050505050565b60ba60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141515156146c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964205f7370656e6465722061646472657373000000000000000081525060200191505060405180910390fd5b6146cd3089898989611d68565b92506146d9838a614b7e565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515614780576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c69642066726f6d2061646472657373207265636f7665726564000081525060200191505060405180910390fd5b8183604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b60208310151561482057805182526020820191506020810190506020830392506147fb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905060001515609d6000836000191660001916815260200190815260200160002060009054906101000a900460ff161515141515614919576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f5472616e73616374696f6e20686173682077617320616c72656164792075736581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001609d6000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550614973828961496e8a614960878e613d58565b614ec690919063ffffffff16565b614a1b565b61497e823388614c76565b3373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f43a220267705e74ee2ceafd46afc841850db6f85a662189a7def697bbdd90ffb6149ee868d613d58565b8a604051808381526020018281526020019250505060405180910390a46001935050505095945050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515614a5757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515614a9357600080fd5b80606960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60008060008060418551141515614b985760009350614c6d565b6020850151925060408501519150606085015160001a9050601b8160ff161015614bc357601b810190505b601b8160ff1614158015614bdb5750601c8160ff1614155b15614be95760009350614c6d565b600186828585604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015614c60573d6000803e3d6000fd5b5050506020604051035193505b50505092915050565b606860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515614cc457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515614d0057600080fd5b614d5281606860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614ea590919063ffffffff16565b606860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614de781606860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614ec690919063ffffffff16565b606860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080303b90506000811491505090565b600080838311151515614eb757600080fd5b82840390508091505092915050565b6000808284019050838110151515614edd57600080fd5b8091505092915050565b60008060a0600f0160000160008560001916600019168152602001908152602001600020600101805490509150600090505b81811015614ff857614feb60a0600201600060a0600f016000016000886000191660001916815260200190815260200160002060010184815481101515614f5c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846155b5565b8080600101915050614f19565b73__PropsRewardsLib_______________________63cb27ba3e60a0866040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060006040518083038186803b15801561507457600080fd5b505af4158015615088573d6000803e3d6000fd5b505050508360001916857f07efea0e0eeb975e5404139e47d884d2705a0660a3456aa31c5694df1d8c5f1484858702604051808381526020018281526020019250505060405180910390a35050505050565b60008090505b83518110156151935761518660a06000016000868481518110151561510157fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848381518110151561517757fe5b906020019060200201516155b5565b80806001019150506150e0565b8460001916867fcc511f1b8ddd8ab10bcb89c26361da1c99b826350e3f38ee438134149032568a865185604051808381526020018281526020019250505060405180910390a3505050505050565b600060b854141515615281576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f496e697469616c697a6520726577617264732075706772616465312063616e2081526020017f68617070656e206f6e6c79206f6e63650000000000000000000000000000000081525060400191505060405180910390fd5b8360ba60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073__PropsRewardsLib_______________________6311cb33da60a060006187be60006040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184600381111561532657fe5b60ff16815260200183815260200182815260200194505050505060006040518083038186803b15801561535857600080fd5b505af415801561536c573d6000803e3d6000fd5b5050505073__PropsRewardsLib_______________________6311cb33da60a060016308f0d18060006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018460038111156153d657fe5b60ff16815260200183815260200182815260200194505050505060006040518083038186803b15801561540857600080fd5b505af415801561541c573d6000803e3d6000fd5b5050505073__PropsRewardsLib_______________________6311cb33da60a060026302faf08060006040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184600381111561548657fe5b60ff16815260200183815260200182815260200194505050505060006040518083038186803b1580156154b857600080fd5b505af41580156154cc573d6000803e3d6000fd5b5050505073__PropsRewardsLib_______________________6311cb33da60a0600361072560006040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085815260200184600381111561553457fe5b60ff16815260200183815260200182815260200194505050505060006040518083038186803b15801561556657600080fd5b505af415801561557a573d6000803e3d6000fd5b5050505082600a0a633b9aca000260b881905560a0601601819055508060b981905560a0601501819055508160a06014018190555050505050565b60008273ffffffffffffffffffffffffffffffffffffffff16141515156155db57600080fd5b6155f081606a54614ec690919063ffffffff16565b606a8190555061564881606860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614ec690919063ffffffff16565b606860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061573657805160ff1916838001178555615764565b82800160010185558215615764579182015b82811115615763578251825591602001919060010190615748565b5b5090506157719190615775565b5090565b61579791905b8082111561579357600081600090555060010161577b565b5090565b905600a165627a7a72305820412710e103a140fd3a1b6c5177bbc23ae71e062c25c714e2e063c63b470610500029", - "sourceMap": "759:1119:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;759:1119:5;;;;;;;", - "deployedSourceMap": "759:1119:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6842:305:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6842:305:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;666:67:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;666:67:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;666:67:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2462:145:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2462:145:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4124:243:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4124:243:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4124:243:2;;;;;;;;;;;;;;;;;8566:411:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8566:411:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1035:860;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1035:860:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10461:449;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10461:449:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;460:154:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;460:154:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7921:526:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7921:526:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;702:83:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;702:83:8;;;;;;;;;;;;;;;;;;;;;;;2879:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2879:240:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1910:29:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1910:29:2;;;;;;;;;;;;;;;;;;;;;;;924:74:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;924:74:9;;;;;;;;;;;;;;;;;;;;;;;;;;;3570:212:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3570:212:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;427:41:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;427:41:4;;;;;;;;;;;;;;;;;;;;;;;;;;;7377:253:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7377:253:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11474:459:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11474:459:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4748:1941:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4748:1941:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2394:885:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2394:885:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1945:36:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1945:36:2;;;;;;;;;;;;;;;;;;;;;;;986:98:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;986:98:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3626:271:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3626:271:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9492:419:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9492:419:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;787:71:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;787:71:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;787:71:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8830:407:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8830:407:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4238:222:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4238:222:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12538:457:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12538:457:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1703:127:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1703:127:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7054:987:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7054:987:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9685:459:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9685:459:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;388:33:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;388:33:4;;;;;;;;;;;;;;;;;;;;;;;1401:150:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1401:150:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3159:259:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3159:259:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2635:322;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2635:322:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1339:537:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1339:537:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5377:1075:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5377:1075:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1987:25:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1987:25:2;;;;;;;;;;;;;;;;;;;;;;;;;;;3841:970:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3841:970:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6842:305:2;2142:10;;;;;;;;;;;2128:24;;:10;:24;;;2107:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6986:1;6963:25;;:11;:25;;;;6955:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7053:11;7040:10;;:24;;;;;;;;;;;;;;;;;;7119:11;7079:61;;;;;;;;;;;;6842:305;:::o;666:67:9:-;702:6;723:5;716:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;666:67;:::o;2462:145:8:-;2527:4;2543:36;2552:10;2564:7;2573:5;2543:8;:36::i;:::-;2596:4;2589:11;;2462:145;;;;:::o;4124:243:2:-;4259:9;4291:15;:27;4319:14;4335:11;4348;4291:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4291:69:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4291:69:2;;;;;;39:16:-1;36:1;17:17;2:54;4291:69:2;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4291:69:2;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;73:11;68:3;64:21;57:28;;126:4;121:3;117:14;163:9;145:16;142:31;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;0:383;;4291:69:2;;;;;;4284:76;;4124:243;;;;:::o;8566:411:0:-;8766:7;8922:10;8915:18;;8935:6;8943:3;8948:6;8956:4;8962:6;8898:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8898:71:0;;;8888:82;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;8888:82:0;;;;;;;;;;;;;;;;8881:89;;8566:411;;;;;;;:::o;1035:860::-;1217:4;1297:20;1396:12;1531:16;1260:1;1245:17;;:3;:17;;;;1237:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1320:66;1353:4;1360:3;1365:6;1373:4;1379:6;1320:24;:66::i;:::-;1297:89;;1411:39;1425:12;1439:10;1411:13;:39::i;:::-;1396:54;;1484:1;1468:18;;:4;:18;;;;1460:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1577:4;1583:12;1560:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1560:36:0;;;1550:47;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1550:47:0;;;;;;;;;;;;;;;;1531:66;;1638:5;1615:28;;:9;:19;1625:8;1615:19;;;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;1607:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1712:4;1690:9;:19;1700:8;1690:19;;;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;1726:28;1736:4;1742:3;1747:6;1726:9;:28::i;:::-;1764:33;1774:4;1780:10;1792:4;1764:9;:33::i;:::-;1842:10;1813:54;;1837:3;1813:54;;1831:4;1813:54;;;1854:6;1862:4;1813:54;;;;;;;;;;;;;;;;;;;;;;;;1884:4;1877:11;;1035:860;;;;;;;;;;:::o;10461:449::-;10680:7;10845:10;10838:18;;10858:6;10866:8;10876:11;10889:4;10895:6;10821:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;10821:81:0;;;10811:92;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;10811:92:0;;;;;;;;;;;;;;;;10804:99;;10461:449;;;;;;;:::o;460:154:9:-;1129:20:11;1024:12;;;;;;;;;;;:31;;;;1040:15;:13;:15::i;:::-;1024:31;:47;;;;1060:11;;;;;;;;;;;1059:12;1024:47;1016:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1152:12;;;;;;;;;;;1129:35;;1185:4;1170:12;;:19;;;;;;;;;;;;;;;;;;1209:4;1195:11;;:18;;;;;;;;;;;;;;;;;;557:4:9;549:5;:12;;;;;;;;;;;;:::i;:::-;;577:6;567:7;:16;;;;;;;;;;;;:::i;:::-;;601:8;589:9;;:20;;;;;;;;;;;;;;;;;;1243:15:11;1228:12;;:30;;;;;;;;;;;;;;;;;;460:154:9;;;;:::o;7921:526:2:-;2142:10;;;;;;;;;;;2128:24;;:10;:24;;;2107:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8102:15;:31;8134:14;8150:5;8157:6;8165:11;8102:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8102:75:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8102:75:2;;;;8192:248;8222:5;8241:14;:25;;:41;8275:5;8267:14;;;;;;;;8241:41;;;;;;;;;;;:54;;;8309:14;:25;;:41;8343:5;8335:14;;;;;;;;8309:41;;;;;;;;;;;:55;;;8378:14;:25;;:41;8412:5;8404:14;;;;;;;;8378:41;;;;;;;;;;;:52;;;8192:248;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7921:526;;;:::o;702:83:8:-;746:7;768:12;;761:19;;702:83;:::o;2879:240::-;2982:4;3000:26;3010:4;3016:2;3020:5;3000:9;:26::i;:::-;3032:65;3041:4;3047:10;3059:37;3090:5;3059:8;:14;3068:4;3059:14;;;;;;;;;;;;;;;:26;3074:10;3059:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;3032:8;:65::i;:::-;3110:4;3103:11;;2879:240;;;;;:::o;1910:29:2:-;;;;:::o;924:74:9:-;964:5;984:9;;;;;;;;;;;977:16;;924:74;:::o;3570:212:8:-;3670:4;3684:76;3693:10;3705:7;3714:45;3748:10;3714:8;:20;3723:10;3714:20;;;;;;;;;;;;;;;:29;3735:7;3714:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;3684:8;:76::i;:::-;3773:4;3766:11;;3570:212;;;;:::o;427:41:4:-;;;;;;;;;;;;;:::o;7377:253:2:-;7524:7;7554:15;:33;7588:14;7604:5;7611:11;7554:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7554:69:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7554:69:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7554:69:2;;;;;;;;;;;;;;;;7547:76;;7377:253;;;;:::o;11474:459:0:-;11698:7;11863:10;11856:18;;11876:6;11884:8;11894:16;11912:4;11918:6;11839:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11839:86:0;;;11829:97;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;11829:97:0;;;;;;;;;;;;;;;;11822:104;;11474:459;;;;;;;:::o;4748:1941:2:-;5146:41;5804:21;6278:30;5076:14;:27;;:54;;;5062:11;:68;5058:659;;;5190:15;:41;5249:14;5281;:27;;:54;;;5353:14;:27;;:52;;;5423:5;5190:252;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5190:252:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5190:252:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5190:252:2;;;;;;;;;;;;;;;;5146:296;;5496:1;5460:33;:37;5456:251;;;5517:175;5548:14;:27;;:54;;;5604:14;:27;;:52;;;5658:33;5517:30;:175::i;:::-;5456:251;5058:659;5828:15;:54;5896:14;5924:11;5949:12;5975:13;6002:8;6024:13;:11;:13::i;:::-;5828:219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5828:219:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5828:219:2;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5828:219:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5828:219:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5828:219:2;;;;;;;;;;;;;;;;5804:243;;6077:1;6061:13;:17;6057:139;;;6094:91;6119:11;6132:12;6146:13;6161:8;6171:13;6094:24;:91::i;:::-;6057:139;6311:15;:41;6366:14;6394:11;6419:12;6445:4;6311:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6311:148:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6311:148:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6311:148:2;;;;;;;;;;;;;;;;6278:181;;6498:1;6473:22;:26;6469:138;;;6515:81;6546:11;6559:12;6573:22;6515:30;:81::i;:::-;6469:138;6671:10;6622:60;;6657:12;6622:60;;;6644:11;6622:60;;;;;;;;;;4748:1941;;;;;;;:::o;2394:885:0:-;2580:4;2669:20;2772:12;2906:16;2628:1;2608:22;;:8;:22;;;;2600:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2692:70;2724:4;2731:8;2741:6;2749:4;2755:6;2692:23;:70::i;:::-;2669:93;;2787:39;2801:12;2815:10;2787:13;:39::i;:::-;2772:54;;2860:1;2844:18;;:4;:18;;;;2836:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2952:4;2958:12;2935:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2935:36:0;;;2925:47;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2925:47:0;;;;;;;;;;;;;;;;2906:66;;3013:5;2990:28;;:9;:19;3000:8;2990:19;;;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;2982:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3087:4;3065:9;:19;3075:8;3065:19;;;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3101:32;3110:4;3116:8;3126:6;3101:8;:32::i;:::-;3143:33;3153:4;3159:10;3171:4;3143:9;:33::i;:::-;3226:10;3192:59;;3216:8;3192:59;;3210:4;3192:59;;;3238:6;3246:4;3192:59;;;;;;;;;;;;;;;;;;;;;;;;3268:4;3261:11;;2394:885;;;;;;;;;;:::o;1945:36:2:-;;;;:::o;986:98:8:-;1041:7;1063:9;:16;1073:5;1063:16;;;;;;;;;;;;;;;;1056:23;;986:98;;;:::o;3626:271:2:-;2142:10;;;;;;;;;;;2128:24;;:10;:24;;;2107:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3749:15;:31;3781:14;3797:11;3810:13;3749:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3749:75:2;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3749:75:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3749:75:2;;;;3878:11;3839:51;3863:13;3839:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3839:51:2;;;;;;;;;;;;;;;;;3626:271;;:::o;9492:419:0:-;9696:7;9851:10;9844:18;;9864:6;9872:8;9882:6;9890:4;9896:6;9827:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9827:76:0;;;9817:87;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;9817:87:0;;;;;;;;;;;;;;;;9810:94;;9492:419;;;;;;;:::o;787:71:9:-;825:6;846:7;839:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;787:71;:::o;8830:407:2:-;9034:15;:28;9063:14;9079:11;9092:5;9099:15;9116:17;9034:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9034:100:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9034:100:2;;;;9212:17;9149:81;;9175:11;9149:81;;;;;;;;9163:10;9149:81;;;9188:5;9195:15;9149:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8830:407;;;;:::o;4238:222:8:-;4343:4;4357:81;4366:10;4378:7;4387:50;4421:15;4387:8;:20;4396:10;4387:20;;;;;;;;;;;;;;;:29;4408:7;4387:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;4357:8;:81::i;:::-;4451:4;4444:11;;4238:222;;;;:::o;12538:457:0:-;12765:7;12933:10;12926:18;;12946:6;12954:5;12961:3;12966:6;12974:4;12980:6;12909:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12909:78:0;;;12899:89;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12899:89:0;;;;;;;;;;;;;;;;12892:96;;12538:457;;;;;;;;:::o;1703:127:8:-;1764:4;1776:32;1786:10;1798:2;1802:5;1776:9;:32::i;:::-;1821:4;1814:11;;1703:127;;;;:::o;7054:987:0:-;7263:4;7342:20;7453:15;7596:16;7306:1;7291:17;;:3;:17;;;;7283:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7365:77;7402:4;7409:5;7416:3;7421:6;7429:4;7435:6;7365:28;:77::i;:::-;7342:100;;7471:39;7485:12;7499:10;7471:13;:39::i;:::-;7453:57;;7547:1;7528:21;;:7;:21;;;;7520:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7642:7;7651:12;7625:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7625:39:0;;;7615:50;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7615:50:0;;;;;;;;;;;;;;;;7596:69;;7706:5;7683:28;;:9;:19;7693:8;7683:19;;;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;7675:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7780:4;7758:9;:19;7768:8;7758:19;;;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;7794:29;7804:5;7811:3;7816:6;7794:9;:29::i;:::-;7833:63;7842:5;7849:7;7858:37;7888:6;7858:25;7868:5;7875:7;7858:9;:25::i;:::-;:29;;:37;;;;:::i;:::-;7833:8;:63::i;:::-;7906:36;7916:7;7925:10;7937:4;7906:9;:36::i;:::-;7988:10;7958:55;;7983:3;7958:55;;7976:5;7958:55;;;8000:6;8008:4;7958:55;;;;;;;;;;;;;;;;;;;;;;;;8030:4;8023:11;;7054:987;;;;;;;;;;;:::o;9685:459:2:-;9932:10;9865:77;;:14;:27;;:48;9893:19;9865:48;;;;;;;;;;;;;;;:63;;;;;;;;;;;;:77;;;9844:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10021:35;10031:10;10043:3;10048:7;10021:9;:35::i;:::-;10112:3;10071:66;;10103:7;10071:66;;;10082:19;10071:66;;;10117:7;10126:10;10071:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;9685:459;;;;:::o;388:33:4:-;;;;:::o;1401:150:8:-;1498:7;1522:8;:15;1531:5;1522:15;;;;;;;;;;;;;;;:24;1538:7;1522:24;;;;;;;;;;;;;;;;1515:31;;1401:150;;;;:::o;3159:259:2:-;2142:10;;;;;;;;;;;2128:24;;:10;:24;;;2107:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3278:15;:29;3308:14;3324:11;3337;3278:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3278:71:2;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3278:71:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3278:71:2;;;;3399:11;3364:47;3386:11;3364:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3364:47:2;;;;;;;;;;;;;;;;;3159:259;;:::o;2635:322::-;2818:16;2837:2;2818:21;;2849:101;2880:11;2893:8;2903:22;2927;2849:30;:101::i;:::-;2635:322;;;;:::o;1339:537:5:-;1516:14;1605:19;1129:20:11;1024:12;;;;;;;;;;;:31;;;;1040:15;:13;:15::i;:::-;1024:31;:47;;;;1060:11;;;;;;;;;;;1059:12;1024:47;1016:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1152:12;;;;;;;;;;;1129:35;;1185:4;1170:12;;:19;;;;;;;;;;;;;;;;;;1209:4;1195:11;;:18;;;;;;;;;;;;;;;;;;1533:2:5;1516:19;;1654:8;1646:17;;1640:2;:23;1627:9;:37;1605:59;;1671:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1720:8;1671:24;:58::i;:::-;1735:103;1778:11;1791:22;1815;1735:42;:103::i;:::-;1844:27;1850:7;1859:11;1844:5;:27::i;:::-;1243:15:11;1228:12;;:30;;;;;;;;;;;;;;;;;;1339:537:5;;;;;;;:::o;5377:1075:0:-;5583:4;5672:20;5795:12;5929:16;5631:1;5611:22;;:8;:22;;;;5603:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5695:90;5737:4;5744:8;5754:16;5772:4;5778:6;5695:33;:90::i;:::-;5672:113;;5810:39;5824:12;5838:10;5810:13;:39::i;:::-;5795:54;;5883:1;5867:18;;:4;:18;;;;5859:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5975:4;5981:12;5958:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5958:36:0;;;5948:47;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;5948:47:0;;;;;;;;;;;;;;;;5929:66;;6036:5;6013:28;;:9;:19;6023:8;6013:19;;;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;6005:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6201:4;6179:9;:19;6189:8;6179:19;;;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;6215:72;6224:4;6230:8;6240:46;6269:16;6240:24;6250:4;6255:8;6240:9;:24::i;:::-;:28;;:46;;;;:::i;:::-;6215:8;:72::i;:::-;6297:33;6307:4;6313:10;6325:4;6297:9;:33::i;:::-;6380:10;6346:78;;6370:8;6346:78;;6364:4;6346:78;;;6392:25;6402:4;6408:8;6392:9;:25::i;:::-;6419:4;6346:78;;;;;;;;;;;;;;;;;;;;;;;;6441:4;6434:11;;5377:1075;;;;;;;;;;:::o;1987:25:2:-;;;;;;;;;;;;;:::o;3841:970:0:-;4042:4;4131:20;4249:12;4383:16;4090:1;4070:22;;:8;:22;;;;4062:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4154:85;4196:4;4203:8;4213:11;4226:4;4232:6;4154:33;:85::i;:::-;4131:108;;4264:39;4278:12;4292:10;4264:13;:39::i;:::-;4249:54;;4337:1;4321:18;;:4;:18;;;;4313:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4429:4;4435:12;4412:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4412:36:0;;;4402:47;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4402:47:0;;;;;;;;;;;;;;;;4383:66;;4490:5;4467:28;;:9;:19;4477:8;4467:19;;;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;4459:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4564:4;4542:9;:19;4552:8;4542:19;;;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;4578:68;4587:4;4593:8;4603:42;4633:11;4603:25;4613:4;4619:8;4603:9;:25::i;:::-;:29;;:42;;;;:::i;:::-;4578:8;:68::i;:::-;4656:33;4666:4;4672:10;4684:4;4656:9;:33::i;:::-;4739:10;4705:78;;4729:8;4705:78;;4723:4;4705:78;;;4751:25;4761:4;4767:8;4751:9;:25::i;:::-;4778:4;4705:78;;;;;;;;;;;;;;;;;;;;;;;;4800:4;4793:11;;3841:970;;;;;;;;;;:::o;6263:248:8:-;6374:1;6355:21;;:7;:21;;;;6347:30;;;;;;;;6412:1;6395:19;;:5;:19;;;;6387:28;;;;;;;;6453:5;6426:8;:15;6435:5;6426:15;;;;;;;;;;;;;;;:24;6442:7;6426:24;;;;;;;;;;;;;;;:32;;;;6489:7;6473:31;;6482:5;6473:31;;;6498:5;6473:31;;;;;;;;;;;;;;;;;;6263:248;;;:::o;600:962:6:-;683:7;700:9;715;730:7;802:2;782:9;:16;:22;;778:62;;;830:1;814:19;;;;778:62;1116:2;1105:9;1101:18;1095:25;1090:30;;1153:2;1142:9;1138:18;1132:25;1127:30;;1198:2;1187:9;1183:18;1177:25;1174:1;1169:34;1164:39;;1310:2;1306:1;:6;;;1302:34;;;1327:2;1322:7;;;;1302:34;1410:2;1405:1;:7;;;;:18;;;;;1421:2;1416:1;:7;;;;1405:18;1401:157;;;1449:1;1433:19;;;;1401:157;1527:24;1537:4;1543:1;1546;1549;1527:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1527:24:6;;;;;;;;1520:31;;600:962;;;;;;;;:::o;4660:277:8:-;4752:9;:15;4762:4;4752:15;;;;;;;;;;;;;;;;4743:5;:24;;4735:33;;;;;;;;4796:1;4782:16;;:2;:16;;;;4774:25;;;;;;;;4824:26;4844:5;4824:9;:15;4834:4;4824:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;4806:9;:15;4816:4;4806:15;;;;;;;;;;;;;;;:44;;;;4872:24;4890:5;4872:9;:13;4882:2;4872:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;4856:9;:13;4866:2;4856:13;;;;;;;;;;;;;;;:40;;;;4922:2;4907:25;;4916:4;4907:25;;;4926:5;4907:25;;;;;;;;;;;;;;;;;;4660:277;;;:::o;1349:467:11:-;1396:4;1737:10;1782:7;1770:20;1764:26;;1810:1;1804:2;:7;1797:14;;1349:467;;:::o;1079:131:7:-;1137:7;1173:9;1165:1;1160;:6;;1152:15;;;;;;;;1189:1;1185;:5;1173:17;;1204:1;1197:8;;1079:131;;;;;:::o;1273:::-;1331:7;1346:9;1362:1;1358;:5;1346:17;;1382:1;1377;:6;;1369:15;;;;;;;;1398:1;1391:8;;1273:131;;;;;:::o;12168:695:2:-;12299:23;12415:9;12325:14;:27;;:39;;:53;12365:12;12325:53;;;;;;;;;;;;;;;;;:68;;:75;;;;12299:101;;12427:1;12415:13;;12410:199;12434:15;12430:1;:19;12410:199;;;12470:128;12476:14;:25;;:98;12502:14;:27;;:39;;:53;12542:12;12502:53;;;;;;;;;;;;;;;;;:68;;12571:1;12502:71;;;;;;;;;;;;;;;;;;;;;;;;;;;12476:98;;;;;;;;;;;;;;;:113;;;;;;;;;;;;12590:7;12470:5;:128::i;:::-;12451:3;;;;;;;12410:199;;;12618:15;:34;12653:14;12669:12;12618:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12618:64:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12618:64:2;;;;12764:12;12697:159;;;12739:11;12697:159;12790:15;12830;12820:7;:25;12697:159;;;;;;;;;;;;;;;;;;;;;;;;12168:695;;;;;:::o;13254:475::-;13472:9;13484:1;13472:13;;13467:156;13491:13;:20;13487:1;:24;13467:156;;;13532:80;13538:14;:27;;:45;13566:13;13580:1;13566:16;;;;;;;;;;;;;;;;;;13538:45;;;;;;;;;;;;;;;:60;;;;;;;;;;;;13600:8;13609:1;13600:11;;;;;;;;;;;;;;;;;;13532:5;:80::i;:::-;13513:3;;;;;;;13467:156;;;13681:12;13637:85;;;13668:11;13637:85;13695:13;:20;13717:4;13637:85;;;;;;;;;;;;;;;;;;;;;;;;13254:475;;;;;;:::o;10536:1402::-;10773:1;10757:14;;:17;10749:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10850:11;10837:10;;:24;;;;;;;;;;;;;;;;;;10926:15;:31;10958:14;10974:55;11031:5;11038:1;10926:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10926:114:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10926:114:2;;;;11116:15;:31;11148:14;11164:67;11233:9;11244:1;11116:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11116:130:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11116:130:2;;;;11308:15;:31;11340:14;11356:54;11412:8;11422:1;11308:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11308:116:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11308:116:2;;;;11492:15;:31;11524:14;11540:53;11595:4;11601:1;11492:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11492:111:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11492:111:2;;;;11754:9;11748:2;:15;11737:7;:27;11720:14;:44;;;11688:14;:29;;:76;;;;11837:22;11813:21;:46;;;11774:14;:36;;:85;;;;11908:22;11869:14;:36;;:61;;;;10536:1402;;;;:::o;5265:239:8:-;5347:1;5336:7;:12;;;;5328:21;;;;;;;;5370:24;5387:6;5370:12;;:16;;:24;;;;:::i;:::-;5355:12;:39;;;;5421:30;5444:6;5421:9;:18;5431:7;5421:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;5400:9;:18;5410:7;5400:18;;;;;;;;;;;;;;;:51;;;;5483:7;5462:37;;5479:1;5462:37;;;5492:6;5462:37;;;;;;;;;;;;;;;;;;5265:239;;:::o;759:1119:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"zos-lib/contracts/Initializable.sol\";\nimport \"openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol\";\nimport \"./PropsTimeBasedTransfers.sol\";\nimport \"./ERC865Token.sol\";\nimport \"./PropsRewards.sol\";\n\n/**\n * @title PROPSToken\n * @dev PROPS token contract (based of ZEPToken by openzeppelin), a detailed ERC20 token\n * https://github.com/zeppelinos/zos-vouching/blob/master/contracts/ZEPToken.sol\n * PROPS are divisible by 1e18 base\n * units referred to as 'AttoPROPS'.\n *\n * PROPS are displayed using 18 decimal places of precision.\n *\n * 1 PROPS is equivalent to:\n * 1 * 1e18 == 1e18 == One Quintillion AttoPROPS\n *\n * 600 Million PROPS (total supply) is equivalent to:\n * 600000000 * 1e18 == 6e26 AttoPROPS\n *\n\n */\n\n\ncontract PropsToken is Initializable, ERC20Detailed, ERC865Token, PropsTimeBasedTransfers, PropsRewards {\n\n /**\n * @dev Initializer function. Called only once when a proxy for the contract is created.\n * @param _holder address that will receive its initial supply and be able to transfer before transfers start time\n * @param _controller address that will have controller functionality on rewards protocol\n * @param _minSecondsBetweenDays uint256 seconds required to pass between consecutive rewards day\n * @param _rewardsStartTimestamp uint256 day 0 timestamp\n */\n function initialize(\n address _holder,\n address _controller,\n uint256 _minSecondsBetweenDays,\n uint256 _rewardsStartTimestamp\n )\n public\n initializer\n {\n uint8 decimals = 18;\n // total supply is 600,000,000 PROPS specified in AttoPROPS\n uint256 totalSupply = 0.6 * 1e9 * (10 ** uint256(decimals));\n\n ERC20Detailed.initialize(\"Props Token\", \"PROPS\", decimals);\n PropsRewards.initializePostRewardsUpgrade1(_controller, _minSecondsBetweenDays, _rewardsStartTimestamp);\n _mint(_holder, totalSupply);\n }\n}", - "sourcePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsToken.sol", + "metadata": "{\"compiler\":{\"version\":\"0.4.25+commit.59dbf8f1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_controller\",\"type\":\"address\"}],\"name\":\"updateController\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"symbol\",\"type\":\"string\"},{\"name\":\"decimals\",\"type\":\"uint8\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"maxTotalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_minter\",\"type\":\"address\"}],\"name\":\"removeMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_account\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"canTransferBeforeStartTime\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_holder\",\"type\":\"address\"},{\"name\":\"_controller\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"rewardsStartTimestamp\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenName\",\"type\":\"string\"}],\"name\":\"initializePermitUpgrade\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_minter\",\"type\":\"address\"}],\"name\":\"addMinter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MY_CHAIN_ID\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_controller\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"reclaimToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"transfersStartTime\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_v\",\"type\":\"uint8\"},{\"name\":\"_r\",\"type\":\"bytes32\"},{\"name\":\"_s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"minters\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"controller\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"newController\",\"type\":\"address\"}],\"name\":\"ControllerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"Function to check the amount of tokens that an owner allowed to a spender.\",\"params\":{\"owner\":\"address The address which owns the funds.\",\"spender\":\"address The address which will spend the funds.\"},\"return\":\"A uint256 specifying the amount of tokens still available for the spender.\"},\"approve(address,uint256)\":{\"details\":\"Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\",\"params\":{\"spender\":\"The address which will spend the funds.\",\"value\":\"The amount of tokens to be spent.\"}},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address.\",\"params\":{\"owner\":\"The address to query the the balance of.\"},\"return\":\"An uint256 representing the amount owned by the passed address.\"},\"decimals()\":{\"return\":\"the number of decimals of the token.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Decrease the amount of tokens that an owner allowed to a spender. approve should be called when allowed_[_spender] == 0. To decrement allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol\",\"params\":{\"spender\":\"The address which will spend the funds.\",\"subtractedValue\":\"The amount of tokens to decrease the allowance by.\"}},\"increaseAllowance(address,uint256)\":{\"details\":\"Increase the amount of tokens that an owner allowed to a spender. approve should be called when allowed_[_spender] == 0. To increment allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol\",\"params\":{\"addedValue\":\"The amount of tokens to increase the allowance by.\",\"spender\":\"The address which will spend the funds.\"}},\"initialize(address)\":{\"details\":\"The initializer function for upgrade as initialize was already called, get the decimals used in the token to initialize the params\",\"params\":{\"_controller\":\"address that will have controller functionality on token\"}},\"initialize(address,address)\":{\"details\":\"Initializer function. Called only once when a proxy for the contract is created.\",\"params\":{\"_controller\":\"address that will have controller functionality on rewards protocol \",\"_holder\":\"address that will receive its initial supply and be able to transfer before transfers start time\"}},\"initializePermitUpgrade(string)\":{\"details\":\"Initialize post separation of rewards contract upgrade\",\"params\":{\"_tokenName\":\"string token name\"}},\"mint(address,uint256)\":{\"details\":\"Allows minters to mint tokens to a given address\",\"params\":{\"_account\":\"address of the receiving account\",\"_amount\":\"uint256 how much to mint\"}},\"name()\":{\"return\":\"the name of the token.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Allows for approvals to be made via secp256k1 signatures\",\"params\":{\"_amount\":\"uint spender\",\"_deadline\":\"uint spender\",\"_owner\":\"address owner\",\"_r\":\"bytes32 spender\",\"_s\":\"bytes32 spender\",\"_spender\":\"address spender\",\"_v\":\"uint8 spender\"}},\"reclaimToken(address,address,uint256)\":{\"details\":\"Reclaim all ERC20 compatible tokens\",\"params\":{\"_token\":\"ERC20 The address of the token contract\"}},\"symbol()\":{\"return\":\"the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Total number of tokens in existence\"},\"transfer(address,uint256)\":{\"details\":\"Transfer token for a specified address\",\"params\":{\"to\":\"The address to transfer to.\",\"value\":\"The amount to be transferred.\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfer tokens from one address to another\",\"params\":{\"from\":\"address The address which you want to send tokens from\",\"to\":\"address The address which you want to transfer to\",\"value\":\"uint256 the amount of tokens to be transferred\"}},\"updateController(address)\":{\"details\":\"Allows the controller/owner to update to a new controller\",\"params\":{\"_controller\":\"address address of the new controller\"}}},\"title\":\"PROPSToken\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/george/Development/props/props-token-distribution/contracts/token/PropsToken.sol\":\"PropsToken\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/george/Development/props/props-token-distribution/contracts/token/ERC865Token.sol\":{\"keccak256\":\"0x13ec86b7f6509a70674e94bdd570443ab1032a693abc5bec67fb1dd1ddf5bca8\",\"urls\":[\"bzzr://624dbda42d8e44204c13b60f4369cdecd976b57ec4a6a884ed8ea3b52e4a7cfd\"]},\"/home/george/Development/props/props-token-distribution/contracts/token/IERC865.sol\":{\"keccak256\":\"0x94b2dffbb5a3429040ea84c2d9186185ad4ed32402bd0ce3310e79aa7750f2cf\",\"urls\":[\"bzzr://bd4e55bed687adc411bc7201427a87a5cafc6dea0482859c438cccd6bccfe817\"]},\"/home/george/Development/props/props-token-distribution/contracts/token/PropsRewards.sol\":{\"keccak256\":\"0xefe80bb625966029858495720b9e128b09e04518647aaa7a2df9fb0e71a188aa\",\"urls\":[\"bzzr://ab43e119e4df198d658b7d2c2724122fc7d443df0c655826c15308102483f63c\"]},\"/home/george/Development/props/props-token-distribution/contracts/token/PropsRewardsLib.sol\":{\"keccak256\":\"0x11a48db38730e0f1ad3c9384b8809dec94c6638123f0f469fc41e77cb5361001\",\"urls\":[\"bzzr://5951643984121b932ed18479eb3b0d2f34d11cd31ff230e779249eba30b3b01d\"]},\"/home/george/Development/props/props-token-distribution/contracts/token/PropsTimeBasedTransfers.sol\":{\"keccak256\":\"0x0b724e7bf486930451b7f461de501749687618f2269de4ca049fcb692b21b949\",\"urls\":[\"bzzr://b98ab2a3c9795054fe38fdc38023bf99c90529ea63087994753598eada9736b3\"]},\"/home/george/Development/props/props-token-distribution/contracts/token/PropsToken.sol\":{\"keccak256\":\"0x179ccbd1946c4f2592119c371b625c3aa20634c387a12db022b8002659cd3c17\",\"urls\":[\"bzzr://804c92fea74a4b4bcc2532e9c4836050d9eb19794bf8fc3a661ca86b9384b19f\"]},\"openzeppelin-eth/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0x223f5e7e2fe8d7082e3c49a2b930096369c2beb960d751c80e1495556952420a\",\"urls\":[\"bzzr://8a9559aaad12d8dddc40e7bb3db79dc533b239ad77c55f96a56bea9f28baa987\"]},\"openzeppelin-eth/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xca27427124232a675642ba45303b78d5a36e1207ee222030ef249e11eba5a224\",\"urls\":[\"bzzr://013c67962737acca577ecd24e6b6c80f85b05fd03c1c75ab68f65a084f4b4cfd\"]},\"openzeppelin-eth/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24252d4567a1cbf14d609a8308e491359c9200d58a2e78282938d945aeeb2bb3\",\"urls\":[\"bzzr://61401aaae518b765df91e443ef9dfb7af874341921829a063cb4804a6fb49c5e\"]},\"openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0x8034b14917a770a79a761769bfff95464ad431fad758be410f3a57ffd80a61c6\",\"urls\":[\"bzzr://093ccda4f849bc03c8d68aa5b3f94b43cfa73d8392452b1a45d6d4e1f966f1f0\"]},\"openzeppelin-eth/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x0786a09def412e5a92e1da8545114b39f9bbd8bd1ba6f62a5bf8b81f54ab25bf\",\"urls\":[\"bzzr://b35dbbf6dd505fcb601ca968d4628714a3af84024224228433eadf700e94f250\"]},\"openzeppelin-eth/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0x885962cc93b105975c112906fc38e50c1a170e3c5f08dc55328e90fd5b3734d1\",\"urls\":[\"bzzr://36483b11e610c19d02acda1e408bb5eb306db428c5f6071a7869afa95bde1904\"]},\"zos-lib/contracts/Initializable.sol\":{\"keccak256\":\"0xac4cc87395794e21e95549a1b4002881621d59878c4129d534a0089ce5cf7212\",\"urls\":[\"bzzr://1725ac3e1941f8e2bf5c1966abd66bd744d40c85ae8195eb697ec3256bc1fc39\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50612dc1806100206000396000f30060806040526004361061018b576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306cb5b661461019057806306fdde03146101d3578063095ea7b3146102635780631624f6c6146102c857806318160ddd1461038457806323b872dd146103af5780632ab4d052146104345780633092afd51461045f57806330adf81f146104a2578063313ce567146104d55780633644e51514610506578063395093511461053957806340c10f191461059e57806345b6d7dc146105eb578063485cc9551461064257806363568502146106a557806370a08231146106d05780637ecebe001461072757806390ee4b551461077e57806395d89b41146107e7578063983b2d56146108775780639e3d41a8146108ba578063a457c2d7146108e5578063a9059cbb1461094a578063c4d66de8146109af578063cd616776146109f2578063d0f22e9c14610a5f578063d505accf14610a8a578063dd62ed3e14610b2a578063f46eccc414610ba1578063f77c479114610bfc575b600080fd5b34801561019c57600080fd5b506101d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c53565b005b3480156101df57600080fd5b506101e8610e6a565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022857808201518184015260208101905061020d565b50505050905090810190601f1680156102555780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026f57600080fd5b506102ae600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f0c565b604051808215151515815260200191505060405180910390f35b3480156102d457600080fd5b50610382600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610f23565b005b34801561039057600080fd5b506103996110a4565b6040518082815260200191505060405180910390f35b3480156103bb57600080fd5b5061041a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110ae565b604051808215151515815260200191505060405180910390f35b34801561044057600080fd5b5061044961115f565b6040518082815260200191505060405180910390f35b34801561046b57600080fd5b506104a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611165565b005b3480156104ae57600080fd5b506104b7611285565b60405180826000191660001916815260200191505060405180910390f35b3480156104e157600080fd5b506104ea6112ac565b604051808260ff1660ff16815260200191505060405180910390f35b34801561051257600080fd5b5061051b6112c3565b60405180826000191660001916815260200191505060405180910390f35b34801561054557600080fd5b50610584600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112c9565b604051808215151515815260200191505060405180910390f35b3480156105aa57600080fd5b506105e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061136e565b005b3480156105f757600080fd5b506106006114f6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561064e57600080fd5b506106a3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061151c565b005b3480156106b157600080fd5b506106ba611731565b6040518082815260200191505060405180910390f35b3480156106dc57600080fd5b50610711600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611737565b6040518082815260200191505060405180910390f35b34801561073357600080fd5b50610768600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611780565b6040518082815260200191505060405180910390f35b34801561078a57600080fd5b506107e5600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611798565b005b3480156107f357600080fd5b506107fc611b4c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561083c578082015181840152602081019050610821565b50505050905090810190601f1680156108695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561088357600080fd5b506108b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bee565b005b3480156108c657600080fd5b506108cf611d0e565b6040518082815260200191505060405180910390f35b3480156108f157600080fd5b50610930600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d14565b604051808215151515815260200191505060405180910390f35b34801561095657600080fd5b50610995600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611db9565b604051808215151515815260200191505060405180910390f35b3480156109bb57600080fd5b506109f0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dd0565b005b3480156109fe57600080fd5b50610a5d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611de4565b005b348015610a6b57600080fd5b50610a746120f7565b6040518082815260200191505060405180910390f35b348015610a9657600080fd5b50610b28600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff169060200190929190803560001916906020019092919080356000191690602001909291905050506120fd565b005b348015610b3657600080fd5b50610b8b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061252c565b6040518082815260200191505060405180910390f35b348015610bad57600080fd5b50610be2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506125b3565b604051808215151515815260200191505060405180910390f35b348015610c0857600080fd5b50610c116125d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60ba60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610de3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f436f6e74726f6c6c65722063616e6e6f7420626520746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060ba60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f1304018cfe79741dcf02ba6b61d39cc4757d59395d03224d9925c7aa8300214660405160405180910390a250565b606060338054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f025780601f10610ed757610100808354040283529160200191610f02565b820191906000526020600020905b815481529060010190602001808311610ee557829003601f168201915b5050505050905090565b6000610f193384846125f9565b6001905092915050565b60008060019054906101000a900460ff1680610f435750610f4261275c565b5b80610f5a57506000809054906101000a900460ff16155b1515610ff4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055508360339080519060200190611051929190612cf0565b508260349080519060200190611068929190612cf0565b5081603560006101000a81548160ff021916908360ff16021790555080600060016101000a81548160ff02191690831515021790555050505050565b6000606a54905090565b60006110bb84848461276d565b611154843361114f85606960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298b90919063ffffffff16565b6125f9565b600190509392505050565b60b85481565b60ba60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561122a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b600060bb60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960010281565b6000603560009054906101000a900460ff16905090565b60bc5481565b6000611364338461135f85606960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129ac90919063ffffffff16565b6125f9565b6001905092915050565b60bb60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611455576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4d696e7420666e2063616e2062652063616c6c6564206f6e6c79206279206d6981526020017f6e7465720000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60b854611472826114646110a4565b6129ac90919063ffffffff16565b111515156114e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4d617820746f74616c20737570706c792065786365656465640000000000000081525060200191505060405180910390fd5b6114f282826129cd565b5050565b609f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060019054906101000a900460ff168061153f575061153e61275c565b5b8061155657506000809054906101000a900460ff16155b15156115f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff021916908315150217905550601292508260ff16600a0a6323c346000291506116bf6040805190810160405280600b81526020017f50726f707320546f6b656e0000000000000000000000000000000000000000008152506040805190810160405280600581526020017f50524f505300000000000000000000000000000000000000000000000000000081525085610f23565b6116c884611dd0565b6117066040805190810160405280600b81526020017f50726f707320546f6b656e000000000000000000000000000000000000000000815250611798565b61171085836129cd565b80600060016101000a81548160ff0219169083151502179055505050505050565b60b95481565b6000606860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60bd6020528060005260406000206000915090505481565b6000606060008060019054906101000a900460ff16806117bc57506117bb61275c565b5b806117d357506000809054906101000a900460ff16155b151561186d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff021916908315150217905550600192506040805190810160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525091508260be8190555060405180807f454950373132446f6d61696e28737472696e67206e616d652c737472696e672081526020017f76657273696f6e2c75696e7432353620636861696e49642c616464726573732081526020017f766572696679696e67436f6e747261637429000000000000000000000000000081525060520190506040518091039020846040518082805190602001908083835b6020831015156119af578051825260208201915060208101905060208303925061198a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020836040518082805190602001908083835b602083101515611a1257805182526020820191506020810190506020830392506119ed565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208530604051602001808660001916600019168152602001856000191660001916815260200184600019166000191681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001955050505050506040516020818303038152906040526040518082805190602001908083835b602083101515611af55780518252602082019150602081019050602083039250611ad0565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060bc816000191690555080600060016101000a81548160ff02191690831515021790555050505050565b606060348054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611be45780601f10611bb957610100808354040283529160200191611be4565b820191906000526020600020905b815481529060010190602001808311611bc757829003601f168201915b5050505050905090565b60ba60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cb3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b600160bb60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60be5481565b6000611daf3384611daa85606960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298b90919063ffffffff16565b6125f9565b6001905092915050565b6000611dc633848461276d565b6001905092915050565b600060129050611de08282612b0d565b5050565b600060ba60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611eab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611f50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4d757374207472616e7366657220746f20726563697069656e7400000000000081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611feb57600080fd5b505af1158015611fff573d6000803e3d6000fd5b505050506040513d602081101561201557600080fd5b810190808051906020019092919050505090508082111515156120c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f43616e6e6f74207472616e73666572206d6f7265207468616e2062616c616e6381526020017f650000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6120f183838673ffffffffffffffffffffffffffffffffffffffff16612c029092919063ffffffff16565b50505050565b609e5481565b600080428610151515612178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f5065726d6974204578706972656400000000000000000000000000000000000081525060200191505060405180910390fd5b60bc547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c96001028a8a8a60bd60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b6040516020018087600019166000191681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156122c857805182526020820191506020810190506020830392506122a3565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183600019166000191681526020018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831015156123885780518252602082019150602081019050602083039250612363565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150600182868686604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561242e573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156124a257508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1515612516576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964205369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b6125218989896125f9565b505050505050505050565b6000606960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60bb6020528060005260406000206000915054906101000a900460ff1681565b60ba60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561263557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561267157600080fd5b80606960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600080303b90506000811491505090565b606860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111515156127bb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156127f757600080fd5b61284981606860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298b90919063ffffffff16565b606860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128de81606860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129ac90919063ffffffff16565b606860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008083831115151561299d57600080fd5b82840390508091505092915050565b60008082840190508381101515156129c357600080fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff16141515156129f357600080fd5b612a0881606a546129ac90919063ffffffff16565b606a81905550612a6081606860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129ac90919063ffffffff16565b606860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600060b854141515612bad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f496e697469616c697a6520726577617264732075706772616465312063616e2081526020017f68617070656e206f6e6c79206f6e63650000000000000000000000000000000081525060400191505060405180910390fd5b8160ba60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a0a633b9aca000260b8819055505050565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612ca557600080fd5b505af1158015612cb9573d6000803e3d6000fd5b505050506040513d6020811015612ccf57600080fd5b81019080805190602001909291905050501515612ceb57600080fd5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612d3157805160ff1916838001178555612d5f565b82800160010185558215612d5f579182015b82811115612d5e578251825591602001919060010190612d43565b5b509050612d6c9190612d70565b5090565b612d9291905b80821115612d8e576000816000905550600101612d76565b5090565b905600a165627a7a72305820bdaea177f86f006deceab9026779941655e9d18e7cfb959c8599640d00cc2ca20029", + "deployedBytecode": "0x60806040526004361061018b576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306cb5b661461019057806306fdde03146101d3578063095ea7b3146102635780631624f6c6146102c857806318160ddd1461038457806323b872dd146103af5780632ab4d052146104345780633092afd51461045f57806330adf81f146104a2578063313ce567146104d55780633644e51514610506578063395093511461053957806340c10f191461059e57806345b6d7dc146105eb578063485cc9551461064257806363568502146106a557806370a08231146106d05780637ecebe001461072757806390ee4b551461077e57806395d89b41146107e7578063983b2d56146108775780639e3d41a8146108ba578063a457c2d7146108e5578063a9059cbb1461094a578063c4d66de8146109af578063cd616776146109f2578063d0f22e9c14610a5f578063d505accf14610a8a578063dd62ed3e14610b2a578063f46eccc414610ba1578063f77c479114610bfc575b600080fd5b34801561019c57600080fd5b506101d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c53565b005b3480156101df57600080fd5b506101e8610e6a565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022857808201518184015260208101905061020d565b50505050905090810190601f1680156102555780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026f57600080fd5b506102ae600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f0c565b604051808215151515815260200191505060405180910390f35b3480156102d457600080fd5b50610382600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610f23565b005b34801561039057600080fd5b506103996110a4565b6040518082815260200191505060405180910390f35b3480156103bb57600080fd5b5061041a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110ae565b604051808215151515815260200191505060405180910390f35b34801561044057600080fd5b5061044961115f565b6040518082815260200191505060405180910390f35b34801561046b57600080fd5b506104a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611165565b005b3480156104ae57600080fd5b506104b7611285565b60405180826000191660001916815260200191505060405180910390f35b3480156104e157600080fd5b506104ea6112ac565b604051808260ff1660ff16815260200191505060405180910390f35b34801561051257600080fd5b5061051b6112c3565b60405180826000191660001916815260200191505060405180910390f35b34801561054557600080fd5b50610584600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112c9565b604051808215151515815260200191505060405180910390f35b3480156105aa57600080fd5b506105e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061136e565b005b3480156105f757600080fd5b506106006114f6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561064e57600080fd5b506106a3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061151c565b005b3480156106b157600080fd5b506106ba611731565b6040518082815260200191505060405180910390f35b3480156106dc57600080fd5b50610711600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611737565b6040518082815260200191505060405180910390f35b34801561073357600080fd5b50610768600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611780565b6040518082815260200191505060405180910390f35b34801561078a57600080fd5b506107e5600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611798565b005b3480156107f357600080fd5b506107fc611b4c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561083c578082015181840152602081019050610821565b50505050905090810190601f1680156108695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561088357600080fd5b506108b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bee565b005b3480156108c657600080fd5b506108cf611d0e565b6040518082815260200191505060405180910390f35b3480156108f157600080fd5b50610930600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d14565b604051808215151515815260200191505060405180910390f35b34801561095657600080fd5b50610995600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611db9565b604051808215151515815260200191505060405180910390f35b3480156109bb57600080fd5b506109f0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dd0565b005b3480156109fe57600080fd5b50610a5d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611de4565b005b348015610a6b57600080fd5b50610a746120f7565b6040518082815260200191505060405180910390f35b348015610a9657600080fd5b50610b28600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff169060200190929190803560001916906020019092919080356000191690602001909291905050506120fd565b005b348015610b3657600080fd5b50610b8b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061252c565b6040518082815260200191505060405180910390f35b348015610bad57600080fd5b50610be2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506125b3565b604051808215151515815260200191505060405180910390f35b348015610c0857600080fd5b50610c116125d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60ba60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610de3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f436f6e74726f6c6c65722063616e6e6f7420626520746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060ba60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f1304018cfe79741dcf02ba6b61d39cc4757d59395d03224d9925c7aa8300214660405160405180910390a250565b606060338054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f025780601f10610ed757610100808354040283529160200191610f02565b820191906000526020600020905b815481529060010190602001808311610ee557829003601f168201915b5050505050905090565b6000610f193384846125f9565b6001905092915050565b60008060019054906101000a900460ff1680610f435750610f4261275c565b5b80610f5a57506000809054906101000a900460ff16155b1515610ff4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055508360339080519060200190611051929190612cf0565b508260349080519060200190611068929190612cf0565b5081603560006101000a81548160ff021916908360ff16021790555080600060016101000a81548160ff02191690831515021790555050505050565b6000606a54905090565b60006110bb84848461276d565b611154843361114f85606960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298b90919063ffffffff16565b6125f9565b600190509392505050565b60b85481565b60ba60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561122a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b600060bb60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c960010281565b6000603560009054906101000a900460ff16905090565b60bc5481565b6000611364338461135f85606960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129ac90919063ffffffff16565b6125f9565b6001905092915050565b60bb60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611455576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4d696e7420666e2063616e2062652063616c6c6564206f6e6c79206279206d6981526020017f6e7465720000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60b854611472826114646110a4565b6129ac90919063ffffffff16565b111515156114e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4d617820746f74616c20737570706c792065786365656465640000000000000081525060200191505060405180910390fd5b6114f282826129cd565b5050565b609f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060019054906101000a900460ff168061153f575061153e61275c565b5b8061155657506000809054906101000a900460ff16155b15156115f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff021916908315150217905550601292508260ff16600a0a6323c346000291506116bf6040805190810160405280600b81526020017f50726f707320546f6b656e0000000000000000000000000000000000000000008152506040805190810160405280600581526020017f50524f505300000000000000000000000000000000000000000000000000000081525085610f23565b6116c884611dd0565b6117066040805190810160405280600b81526020017f50726f707320546f6b656e000000000000000000000000000000000000000000815250611798565b61171085836129cd565b80600060016101000a81548160ff0219169083151502179055505050505050565b60b95481565b6000606860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60bd6020528060005260406000206000915090505481565b6000606060008060019054906101000a900460ff16806117bc57506117bb61275c565b5b806117d357506000809054906101000a900460ff16155b151561186d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff021916908315150217905550600192506040805190810160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525091508260be8190555060405180807f454950373132446f6d61696e28737472696e67206e616d652c737472696e672081526020017f76657273696f6e2c75696e7432353620636861696e49642c616464726573732081526020017f766572696679696e67436f6e747261637429000000000000000000000000000081525060520190506040518091039020846040518082805190602001908083835b6020831015156119af578051825260208201915060208101905060208303925061198a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020836040518082805190602001908083835b602083101515611a1257805182526020820191506020810190506020830392506119ed565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208530604051602001808660001916600019168152602001856000191660001916815260200184600019166000191681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001955050505050506040516020818303038152906040526040518082805190602001908083835b602083101515611af55780518252602082019150602081019050602083039250611ad0565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060bc816000191690555080600060016101000a81548160ff02191690831515021790555050505050565b606060348054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611be45780601f10611bb957610100808354040283529160200191611be4565b820191906000526020600020905b815481529060010190602001808311611bc757829003601f168201915b5050505050905090565b60ba60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cb3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b600160bb60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60be5481565b6000611daf3384611daa85606960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298b90919063ffffffff16565b6125f9565b6001905092915050565b6000611dc633848461276d565b6001905092915050565b600060129050611de08282612b0d565b5050565b600060ba60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611eab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d7573742062652074686520636f6e74726f6c6c65720000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515611f50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4d757374207472616e7366657220746f20726563697069656e7400000000000081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611feb57600080fd5b505af1158015611fff573d6000803e3d6000fd5b505050506040513d602081101561201557600080fd5b810190808051906020019092919050505090508082111515156120c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f43616e6e6f74207472616e73666572206d6f7265207468616e2062616c616e6381526020017f650000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6120f183838673ffffffffffffffffffffffffffffffffffffffff16612c029092919063ffffffff16565b50505050565b609e5481565b600080428610151515612178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f5065726d6974204578706972656400000000000000000000000000000000000081525060200191505060405180910390fd5b60bc547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c96001028a8a8a60bd60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b6040516020018087600019166000191681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200182815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156122c857805182526020820191506020810190506020830392506122a3565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183600019166000191681526020018260001916600019168152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831015156123885780518252602082019150602081019050602083039250612363565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209150600182868686604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561242e573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156124a257508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b1515612516576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964205369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b6125218989896125f9565b505050505050505050565b6000606960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60bb6020528060005260406000206000915054906101000a900460ff1681565b60ba60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561263557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561267157600080fd5b80606960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600080303b90506000811491505090565b606860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111515156127bb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156127f757600080fd5b61284981606860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461298b90919063ffffffff16565b606860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128de81606860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129ac90919063ffffffff16565b606860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008083831115151561299d57600080fd5b82840390508091505092915050565b60008082840190508381101515156129c357600080fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff16141515156129f357600080fd5b612a0881606a546129ac90919063ffffffff16565b606a81905550612a6081606860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129ac90919063ffffffff16565b606860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600060b854141515612bad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f496e697469616c697a6520726577617264732075706772616465312063616e2081526020017f68617070656e206f6e6c79206f6e63650000000000000000000000000000000081525060400191505060405180910390fd5b8160ba60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a0a633b9aca000260b8819055505050565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612ca557600080fd5b505af1158015612cb9573d6000803e3d6000fd5b505050506040513d6020811015612ccf57600080fd5b81019080805190602001909291905050501515612ceb57600080fd5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612d3157805160ff1916838001178555612d5f565b82800160010185558215612d5f579182015b82811115612d5e578251825591602001919060010190612d43565b5b509050612d6c9190612d70565b5090565b612d9291905b80821115612d8e576000816000905550600101612d76565b5090565b905600a165627a7a72305820bdaea177f86f006deceab9026779941655e9d18e7cfb959c8599640d00cc2ca20029", + "sourceMap": "759:873:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;759:873:5;;;;;;;", + "deployedSourceMap": "759:873:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4643:305:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4643:305:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;666:67:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;666:67:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;666:67:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2462:145:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2462:145:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;460:154:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;460:154:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;702:83:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;702:83:8;;;;;;;;;;;;;;;;;;;;;;;2879:240;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2879:240:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;717:29:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;717:29:2;;;;;;;;;;;;;;;;;;;;;;;5058:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5058:102:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;1032:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1032:108:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;924:74:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;924:74:9;;;;;;;;;;;;;;;;;;;;;;;;;;;891:31:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;891:31:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3570:212:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3570:212:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5346:301:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5346:301:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;517:41:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;517:41:4;;;;;;;;;;;;;;;;;;;;;;;;;;;1183:447:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1183:447:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;752:36:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;752:36:2;;;;;;;;;;;;;;;;;;;;;;;986:98:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;986:98:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1146:41:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1146:41:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1913:700;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1913:700:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;787:71:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;787:71:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;787:71:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4954:98:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4954:98:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;1193:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1193:26:2;;;;;;;;;;;;;;;;;;;;;;;4238:222:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4238:222:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1703:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1703:127:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1651:130:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1651:130:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;4126:360;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4126:360:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;478:33:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;478:33:4;;;;;;;;;;;;;;;;;;;;;;;2947:1048:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2947:1048:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1401:150:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1401:150:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;846:39:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;846:39:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;794:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;794:25:2;;;;;;;;;;;;;;;;;;;;;;;;;;;4643:305;1327:10;;;;;;;;;;;1313:24;;:10;:24;;;1292:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4787:1;4764:25;;:11;:25;;;;4756:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4854:11;4841:10;;:24;;;;;;;;;;;;;;;;;;4920:11;4880:61;;;;;;;;;;;;4643:305;:::o;666:67:9:-;702:6;723:5;716:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;666:67;:::o;2462:145:8:-;2527:4;2543:36;2552:10;2564:7;2573:5;2543:8;:36::i;:::-;2596:4;2589:11;;2462:145;;;;:::o;460:154:9:-;1129:20:12;1024:12;;;;;;;;;;;:31;;;;1040:15;:13;:15::i;:::-;1024:31;:47;;;;1060:11;;;;;;;;;;;1059:12;1024:47;1016:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1152:12;;;;;;;;;;;1129:35;;1185:4;1170:12;;:19;;;;;;;;;;;;;;;;;;1209:4;1195:11;;:18;;;;;;;;;;;;;;;;;;557:4:9;549:5;:12;;;;;;;;;;;;:::i;:::-;;577:6;567:7;:16;;;;;;;;;;;;:::i;:::-;;601:8;589:9;;:20;;;;;;;;;;;;;;;;;;1243:15:12;1228:12;;:30;;;;;;;;;;;;;;;;;;460:154:9;;;;:::o;702:83:8:-;746:7;768:12;;761:19;;702:83;:::o;2879:240::-;2982:4;3000:26;3010:4;3016:2;3020:5;3000:9;:26::i;:::-;3032:65;3041:4;3047:10;3059:37;3090:5;3059:8;:14;3068:4;3059:14;;;;;;;;;;;;;;;:26;3074:10;3059:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;3032:8;:65::i;:::-;3110:4;3103:11;;2879:240;;;;;:::o;717:29:2:-;;;;:::o;5058:102::-;1327:10;;;;;;;;;;;1313:24;;:10;:24;;;1292:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5148:5;5129:7;:16;5137:7;5129:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;5058:102;:::o;1032:108::-;1074:66;1032:108;;;:::o;924:74:9:-;964:5;984:9;;;;;;;;;;;977:16;;924:74;:::o;891:31:2:-;;;;:::o;3570:212:8:-;3670:4;3684:76;3693:10;3705:7;3714:45;3748:10;3714:8;:20;3723:10;3714:20;;;;;;;;;;;;;;;:29;3735:7;3714:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;3684:8;:76::i;:::-;3773:4;3766:11;;3570:212;;;;:::o;5346:301:2:-;5420:7;:19;5428:10;5420:19;;;;;;;;;;;;;;;;;;;;;;;;;5412:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:14;;5511:26;5529:7;5511:13;:11;:13::i;:::-;:17;;:26;;;;:::i;:::-;:44;;5490:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5616:24;5622:8;5632:7;5616:5;:24::i;:::-;5346:301;;:::o;517:41:4:-;;;;;;;;;;;;;:::o;1183:447:5:-;1276:14;1365:19;1129:20:12;1024:12;;;;;;;;;;;:31;;;;1040:15;:13;:15::i;:::-;1024:31;:47;;;;1060:11;;;;;;;;;;;1059:12;1024:47;1016:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1152:12;;;;;;;;;;;1129:35;;1185:4;1170:12;;:19;;;;;;;;;;;;;;;;;;1209:4;1195:11;;:18;;;;;;;;;;;;;;;;;;1293:2:5;1276:19;;1414:8;1406:17;;1400:2;:23;1387:9;:37;1365:59;;1431:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1480:8;1431:24;:58::i;:::-;1495:36;1519:11;1495:23;:36::i;:::-;1537:51;;;;;;;;;;;;;;;;;;;:36;:51::i;:::-;1598:27;1604:7;1613:11;1598:5;:27::i;:::-;1243:15:12;1228:12;;:30;;;;;;;;;;;;;;;;;;1183:447:5;;;;;:::o;752:36:2:-;;;;:::o;986:98:8:-;1041:7;1063:9;:16;1073:5;1063:16;;;;;;;;;;;;;;;;1056:23;;986:98;;;:::o;1146:41:2:-;;;;;;;;;;;;;;;;;:::o;1913:700::-;2021:15;2050:17;1129:20:12;1024:12;;;;;;;;;;;:31;;;;1040:15;:13;:15::i;:::-;1024:31;:47;;;;1060:11;;;;;;;;;;;1059:12;1024:47;1016:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1152:12;;;;;;;;;;;1129:35;;1185:4;1170:12;;:19;;;;;;;;;;;;;;;;;;1209:4;1195:11;;:18;;;;;;;;;;;;;;;;;;2039:1:2;2021:19;;2050:23;;;;;;;;;;;;;;;;;;;;2221:7;2207:11;:21;;;;2308:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2475:10;2459:28;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2459:28:2;;;;;;;;;;;;;;;;2521:3;2505:21;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2505:21:2;;;;;;;;;;;;;;;;2544:7;2577:4;2280:316;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2280:316:2;;;2257:349;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2257:349:2;;;;;;;;;;;;;;;;2238:16;:368;;;;;;;1243:15:12;1228:12;;:30;;;;;;;;;;;;;;;;;;1913:700:2;;;;:::o;787:71:9:-;825:6;846:7;839:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;787:71;:::o;4954:98:2:-;1327:10;;;;;;;;;;;1313:24;;:10;:24;;;1292:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5041:4;5022:7;:16;5030:7;5022:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;4954:98;:::o;1193:26::-;;;;:::o;4238:222:8:-;4343:4;4357:81;4366:10;4378:7;4387:50;4421:15;4387:8;:20;4396:10;4387:20;;;;;;;;;;;;;;;:29;4408:7;4387:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;4357:8;:81::i;:::-;4451:4;4444:11;;4238:222;;;;:::o;1703:127::-;1764:4;1776:32;1786:10;1798:2;1802:5;1776:9;:32::i;:::-;1821:4;1814:11;;1703:127;;;;:::o;1651:130:2:-;1709:16;1728:2;1709:21;;1740:34;1752:11;1765:8;1740:11;:34::i;:::-;1651:130;;:::o;4126:360::-;4322:15;1327:10;;;;;;;;;;;1313:24;;:10;:24;;;1292:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4279:1;4264:17;;:3;:17;;;;4256:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4340:6;:16;;;4357:4;4340:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4340:22:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4340:22:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4340:22:2;;;;;;;;;;;;;;;;4322:40;;4391:7;4380;:18;;4372:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4446:33;4466:3;4471:7;4446:6;:19;;;;:33;;;;;:::i;:::-;4126:360;;;;:::o;478:33:4:-;;;;:::o;2947:1048:2:-;3213:14;3753:24;3169:15;3156:9;:28;;3148:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3339:16;;1074:66;3452:15;;3497:6;3533:8;3571:7;3608:6;:14;3615:6;3608:14;;;;;;;;;;;;;;;;:16;;;;;;;;;;;;3654:9;3412:277;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3412:277:2;;;3377:334;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3377:334:2;;;;;;;;;;;;;;;;3269:460;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3269:460:2;;;3242:501;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3242:501:2;;;;;;;;;;;;;;;;3213:530;;3780:29;3790:6;3798:2;3802;3806;3780:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3780:29:2;;;;;;;;3753:56;;3868:1;3840:30;;:16;:30;;;;:60;;;;;3894:6;3874:26;;:16;:26;;;3840:60;3819:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3953:35;3962:6;3970:8;3980:7;3953:8;:35::i;:::-;2947:1048;;;;;;;;;:::o;1401:150:8:-;1498:7;1522:8;:15;1531:5;1522:15;;;;;;;;;;;;;;;:24;1538:7;1522:24;;;;;;;;;;;;;;;;1515:31;;1401:150;;;;:::o;846:39:2:-;;;;;;;;;;;;;;;;;;;;;;:::o;794:25::-;;;;;;;;;;;;;:::o;6263:248:8:-;6374:1;6355:21;;:7;:21;;;;6347:30;;;;;;;;6412:1;6395:19;;:5;:19;;;;6387:28;;;;;;;;6453:5;6426:8;:15;6435:5;6426:15;;;;;;;;;;;;;;;:24;6442:7;6426:24;;;;;;;;;;;;;;;:32;;;;6489:7;6473:31;;6482:5;6473:31;;;6498:5;6473:31;;;;;;;;;;;;;;;;;;6263:248;;;:::o;1349:467:12:-;1396:4;1737:10;1782:7;1770:20;1764:26;;1810:1;1804:2;:7;1797:14;;1349:467;;:::o;4660:277:8:-;4752:9;:15;4762:4;4752:15;;;;;;;;;;;;;;;;4743:5;:24;;4735:33;;;;;;;;4796:1;4782:16;;:2;:16;;;;4774:25;;;;;;;;4824:26;4844:5;4824:9;:15;4834:4;4824:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;4806:9;:15;4816:4;4806:15;;;;;;;;;;;;;;;:44;;;;4872:24;4890:5;4872:9;:13;4882:2;4872:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;4856:9;:13;4866:2;4856:13;;;;;;;;;;;;;;;:40;;;;4922:2;4907:25;;4916:4;4907:25;;;4926:5;4907:25;;;;;;;;;;;;;;;;;;4660:277;;;:::o;1079:131:7:-;1137:7;1173:9;1165:1;1160;:6;;1152:15;;;;;;;;1189:1;1185;:5;1173:17;;1204:1;1197:8;;1079:131;;;;;:::o;1273:::-;1331:7;1346:9;1362:1;1358;:5;1346:17;;1382:1;1377;:6;;1369:15;;;;;;;;1398:1;1391:8;;1273:131;;;;;:::o;5265:239:8:-;5347:1;5336:7;:12;;;;5328:21;;;;;;;;5370:24;5387:6;5370:12;;:16;;:24;;;;:::i;:::-;5355:12;:39;;;;5421:30;5444:6;5421:9;:18;5431:7;5421:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;5400:9;:18;5410:7;5400:18;;;;;;;;;;;;;;;:51;;;;5483:7;5462:37;;5479:1;5462:37;;;5492:6;5462:37;;;;;;;;;;;;;;;;;;5265:239;;:::o;5870:361:2:-;5989:1;5971:14;;:19;5950:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6087:11;6074:10;;:24;;;;;;;;;;;;;;;;;;6214:9;6210:2;:13;6199:7;:25;6182:14;:42;;;;5870:361;;:::o;364:139:11:-;472:5;:14;;;487:2;491:5;472:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;472:25:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;472:25:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;472:25:11;;;;;;;;;;;;;;;;464:34;;;;;;;;364:139;;;:::o;759:873:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "pragma solidity ^0.4.24;\n\nimport \"zos-lib/contracts/Initializable.sol\";\nimport \"openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol\";\nimport \"./PropsTimeBasedTransfers.sol\";\nimport \"./ERC865Token.sol\";\nimport \"./PropsRewards.sol\";\n\n/**\n * @title PROPSToken\n * @dev PROPS token contract (based of ZEPToken by openzeppelin), a detailed ERC20 token\n * https://github.com/zeppelinos/zos-vouching/blob/master/contracts/ZEPToken.sol\n * PROPS are divisible by 1e18 base\n * units referred to as 'AttoPROPS'.\n *\n * PROPS are displayed using 18 decimal places of precision.\n *\n * 1 PROPS is equivalent to:\n * 1 * 1e18 == 1e18 == One Quintillion AttoPROPS\n *\n * 600 Million PROPS (total supply) is equivalent to:\n * 600000000 * 1e18 == 6e26 AttoPROPS\n *\n\n */\n\n\ncontract PropsToken is Initializable, ERC20Detailed, ERC865Token, PropsTimeBasedTransfers, PropsRewards {\n\n /**\n * @dev Initializer function. Called only once when a proxy for the contract is created.\n * @param _holder address that will receive its initial supply and be able to transfer before transfers start time\n * @param _controller address that will have controller functionality on rewards protocol \n */\n function initialize(address _holder, address _controller)\n public\n initializer\n {\n uint8 decimals = 18;\n // total supply is 600,000,000 PROPS specified in AttoPROPS\n uint256 totalSupply = 0.6 * 1e9 * (10 ** uint256(decimals));\n\n ERC20Detailed.initialize(\"Props Token\", \"PROPS\", decimals);\n PropsRewards.initialize(_controller);\n PropsRewards.initializePermitUpgrade(\"Props Token\"); \n _mint(_holder, totalSupply);\n }\n}", + "sourcePath": "/home/george/Development/props/props-token-distribution/contracts/token/PropsToken.sol", "ast": { - "absolutePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsToken.sol", + "absolutePath": "/home/george/Development/props/props-token-distribution/contracts/token/PropsToken.sol", "exportedSymbols": { "PropsToken": [ - 3380 + 567 ] }, - "id": 3381, + "id": 568, "nodeType": "SourceUnit", "nodes": [ { - "id": 3312, + "id": 499, "literals": [ "solidity", "^", @@ -1264,10 +644,10 @@ { "absolutePath": "zos-lib/contracts/Initializable.sol", "file": "zos-lib/contracts/Initializable.sol", - "id": 3313, + "id": 500, "nodeType": "ImportDirective", - "scope": 3381, - "sourceUnit": 4184, + "scope": 568, + "sourceUnit": 1433, "src": "26:45:5", "symbolAliases": [], "unitAlias": "" @@ -1275,43 +655,43 @@ { "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol", "file": "openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol", - "id": 3314, + "id": 501, "nodeType": "ImportDirective", - "scope": 3381, - "sourceUnit": 4059, + "scope": 568, + "sourceUnit": 1246, "src": "72:66:5", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsTimeBasedTransfers.sol", + "absolutePath": "/home/george/Development/props/props-token-distribution/contracts/token/PropsTimeBasedTransfers.sol", "file": "./PropsTimeBasedTransfers.sol", - "id": 3315, + "id": 502, "nodeType": "ImportDirective", - "scope": 3381, - "sourceUnit": 3311, + "scope": 568, + "sourceUnit": 498, "src": "139:39:5", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/ERC865Token.sol", + "absolutePath": "/home/george/Development/props/props-token-distribution/contracts/token/ERC865Token.sol", "file": "./ERC865Token.sol", - "id": 3316, + "id": 503, "nodeType": "ImportDirective", - "scope": 3381, - "sourceUnit": 719, + "scope": 568, + "sourceUnit": 18, "src": "179:27:5", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsRewards.sol", + "absolutePath": "/home/george/Development/props/props-token-distribution/contracts/token/PropsRewards.sol", "file": "./PropsRewards.sol", - "id": 3317, + "id": 504, "nodeType": "ImportDirective", - "scope": 3381, - "sourceUnit": 1503, + "scope": 568, + "sourceUnit": 374, "src": "207:28:5", "symbolAliases": [], "unitAlias": "" @@ -1322,17 +702,17 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3318, + "id": 505, "name": "Initializable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4183, + "referencedDeclaration": 1432, "src": "782:13:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Initializable_$4183", + "typeIdentifier": "t_contract$_Initializable_$1432", "typeString": "contract Initializable" } }, - "id": 3319, + "id": 506, "nodeType": "InheritanceSpecifier", "src": "782:13:5" }, @@ -1340,17 +720,17 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3320, + "id": 507, "name": "ERC20Detailed", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4058, + "referencedDeclaration": 1245, "src": "797:13:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$4058", + "typeIdentifier": "t_contract$_ERC20Detailed_$1245", "typeString": "contract ERC20Detailed" } }, - "id": 3321, + "id": 508, "nodeType": "InheritanceSpecifier", "src": "797:13:5" }, @@ -1358,17 +738,17 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3322, + "id": 509, "name": "ERC865Token", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 718, + "referencedDeclaration": 17, "src": "812:11:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC865Token_$718", + "typeIdentifier": "t_contract$_ERC865Token_$17", "typeString": "contract ERC865Token" } }, - "id": 3323, + "id": 510, "nodeType": "InheritanceSpecifier", "src": "812:11:5" }, @@ -1376,17 +756,17 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3324, + "id": 511, "name": "PropsTimeBasedTransfers", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3310, + "referencedDeclaration": 497, "src": "825:23:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_PropsTimeBasedTransfers_$3310", + "typeIdentifier": "t_contract$_PropsTimeBasedTransfers_$497", "typeString": "contract PropsTimeBasedTransfers" } }, - "id": 3325, + "id": 512, "nodeType": "InheritanceSpecifier", "src": "825:23:5" }, @@ -1394,67 +774,67 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 3326, + "id": 513, "name": "PropsRewards", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1502, + "referencedDeclaration": 373, "src": "850:12:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_PropsRewards_$1502", + "typeIdentifier": "t_contract$_PropsRewards_$373", "typeString": "contract PropsRewards" } }, - "id": 3327, + "id": 514, "nodeType": "InheritanceSpecifier", "src": "850:12:5" } ], "contractDependencies": [ - 718, - 822, - 1502, - 3310, - 3991, - 4058, - 4127, - 4183 + 17, + 20, + 373, + 497, + 1178, + 1245, + 1314, + 1432 ], "contractKind": "contract", "documentation": "@title PROPSToken\n@dev PROPS token contract (based of ZEPToken by openzeppelin), a detailed ERC20 token\nhttps://github.com/zeppelinos/zos-vouching/blob/master/contracts/ZEPToken.sol\nPROPS are divisible by 1e18 base\nunits referred to as 'AttoPROPS'.\n * PROPS are displayed using 18 decimal places of precision.\n * 1 PROPS is equivalent to:\n 1 * 1e18 == 1e18 == One Quintillion AttoPROPS\n * 600 Million PROPS (total supply) is equivalent to:\n 600000000 * 1e18 == 6e26 AttoPROPS\n\n ", "fullyImplemented": true, - "id": 3380, + "id": 567, "linearizedBaseContracts": [ - 3380, - 1502, - 3310, - 718, - 822, - 3991, - 4058, - 4127, - 4183 + 567, + 373, + 497, + 17, + 20, + 1178, + 1245, + 1314, + 1432 ], "name": "PropsToken", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3378, + "id": 565, "nodeType": "Block", - "src": "1510:366:5", + "src": "1270:360:5", "statements": [ { "assignments": [ - 3341 + 524 ], "declarations": [ { "constant": false, - "id": 3341, + "id": 524, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1516:14:5", + "scope": 566, + "src": "1276:14:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1462,10 +842,10 @@ "typeString": "uint8" }, "typeName": { - "id": 3340, + "id": 523, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1516:5:5", + "src": "1276:5:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1475,18 +855,18 @@ "visibility": "internal" } ], - "id": 3343, + "id": 526, "initialValue": { "argumentTypes": null, "hexValue": "3138", - "id": 3342, + "id": 525, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1533:2:5", + "src": "1293:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -1495,20 +875,20 @@ "value": "18" }, "nodeType": "VariableDeclarationStatement", - "src": "1516:19:5" + "src": "1276:19:5" }, { "assignments": [ - 3345 + 528 ], "declarations": [ { "constant": false, - "id": 3345, + "id": 528, "name": "totalSupply", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1605:19:5", + "scope": 566, + "src": "1365:19:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1516,10 +896,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3344, + "id": 527, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1605:7:5", + "src": "1365:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1529,14 +909,14 @@ "visibility": "internal" } ], - "id": 3356, + "id": 539, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3355, + "id": 538, "isConstant": false, "isLValue": false, "isPure": false, @@ -1547,7 +927,7 @@ "typeIdentifier": "t_rational_600000000_by_1", "typeString": "int_const 600000000" }, - "id": 3348, + "id": 531, "isConstant": false, "isLValue": false, "isPure": true, @@ -1555,14 +935,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "302e36", - "id": 3346, + "id": 529, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1627:3:5", + "src": "1387:3:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_5", @@ -1575,14 +955,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "316539", - "id": 3347, + "id": 530, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1633:3:5", + "src": "1393:3:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1000000000_by_1", @@ -1590,7 +970,7 @@ }, "value": "1e9" }, - "src": "1627:9:5", + "src": "1387:9:5", "typeDescriptions": { "typeIdentifier": "t_rational_600000000_by_1", "typeString": "int_const 600000000" @@ -1607,7 +987,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3353, + "id": 536, "isConstant": false, "isLValue": false, "isPure": false, @@ -1615,14 +995,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 3349, + "id": 532, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1640:2:5", + "src": "1400:2:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -1637,12 +1017,12 @@ "arguments": [ { "argumentTypes": null, - "id": 3351, + "id": 534, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3341, - "src": "1654:8:5", + "referencedDeclaration": 524, + "src": "1414:8:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1656,20 +1036,20 @@ "typeString": "uint8" } ], - "id": 3350, + "id": 533, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1646:7:5", + "src": "1406:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint256" }, - "id": 3352, + "id": 535, "isConstant": false, "isLValue": false, "isPure": false, @@ -1677,40 +1057,40 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1646:17:5", + "src": "1406:17:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1640:23:5", + "src": "1400:23:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 3354, + "id": 537, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "1639:25:5", + "src": "1399:25:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1627:37:5", + "src": "1387:37:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1605:59:5" + "src": "1365:59:5" }, { "expression": { @@ -1719,14 +1099,14 @@ { "argumentTypes": null, "hexValue": "50726f707320546f6b656e", - "id": 3360, + "id": 543, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1696:13:5", + "src": "1456:13:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_dc1293dc14d3554079e7b5475cd9e82b2b570be6ab0320d98d1adf48c388ae3b", @@ -1737,14 +1117,14 @@ { "argumentTypes": null, "hexValue": "50524f5053", - "id": 3361, + "id": 544, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1711:7:5", + "src": "1471:7:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d4a11413b471eca97bcf19e5d655e9b80f99f6af51ea832513db3f1c311a8fba", @@ -1754,12 +1134,12 @@ }, { "argumentTypes": null, - "id": 3362, + "id": 545, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3341, - "src": "1720:8:5", + "referencedDeclaration": 524, + "src": "1480:8:5", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1783,32 +1163,32 @@ ], "expression": { "argumentTypes": null, - "id": 3357, + "id": 540, "name": "ERC20Detailed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4058, - "src": "1671:13:5", + "referencedDeclaration": 1245, + "src": "1431:13:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$4058_$", + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$1245_$", "typeString": "type(contract ERC20Detailed)" } }, - "id": 3359, + "id": 542, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "initialize", "nodeType": "MemberAccess", - "referencedDeclaration": 4029, - "src": "1671:24:5", + "referencedDeclaration": 1216, + "src": "1431:24:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$__$", "typeString": "function (string memory,string memory,uint8)" } }, - "id": 3363, + "id": 546, "isConstant": false, "isLValue": false, "isPure": false, @@ -1816,15 +1196,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1671:58:5", + "src": "1431:58:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3364, + "id": 547, "nodeType": "ExpressionStatement", - "src": "1671:58:5" + "src": "1431:58:5" }, { "expression": { @@ -1832,42 +1212,16 @@ "arguments": [ { "argumentTypes": null, - "id": 3368, + "id": 551, "name": "_controller", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3331, - "src": "1778:11:5", + "referencedDeclaration": 518, + "src": "1519:11:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } - }, - { - "argumentTypes": null, - "id": 3369, - "name": "_minSecondsBetweenDays", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3333, - "src": "1791:22:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3370, - "name": "_rewardsStartTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3335, - "src": "1815:22:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } } ], "expression": { @@ -1875,44 +1229,36 @@ { "typeIdentifier": "t_address", "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } ], "expression": { "argumentTypes": null, - "id": 3365, + "id": 548, "name": "PropsRewards", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1502, - "src": "1735:12:5", + "referencedDeclaration": 373, + "src": "1495:12:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewards_$1502_$", + "typeIdentifier": "t_type$_t_contract$_PropsRewards_$373_$", "typeString": "type(contract PropsRewards)" } }, - "id": 3367, + "id": 550, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "initializePostRewardsUpgrade1", + "memberName": "initialize", "nodeType": "MemberAccess", - "referencedDeclaration": 957, - "src": "1735:42:5", + "referencedDeclaration": 92, + "src": "1495:23:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "id": 3371, + "id": 552, "isConstant": false, "isLValue": false, "isPure": false, @@ -1920,15 +1266,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1735:103:5", + "src": "1495:36:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3372, + "id": 553, "nodeType": "ExpressionStatement", - "src": "1735:103:5" + "src": "1495:36:5" }, { "expression": { @@ -1936,12 +1282,87 @@ "arguments": [ { "argumentTypes": null, - "id": 3374, - "name": "_holder", + "hexValue": "50726f707320546f6b656e", + "id": 557, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1574:13:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_dc1293dc14d3554079e7b5475cd9e82b2b570be6ab0320d98d1adf48c388ae3b", + "typeString": "literal_string \"Props Token\"" + }, + "value": "Props Token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_dc1293dc14d3554079e7b5475cd9e82b2b570be6ab0320d98d1adf48c388ae3b", + "typeString": "literal_string \"Props Token\"" + } + ], + "expression": { + "argumentTypes": null, + "id": 554, + "name": "PropsRewards", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 373, + "src": "1537:12:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PropsRewards_$373_$", + "typeString": "type(contract PropsRewards)" + } + }, + "id": 556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "initializePermitUpgrade", + "nodeType": "MemberAccess", + "referencedDeclaration": 137, + "src": "1537:36:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory)" + } + }, + "id": 558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1537:51:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 559, + "nodeType": "ExpressionStatement", + "src": "1537:51:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 561, + "name": "_holder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3329, - "src": "1850:7:5", + "referencedDeclaration": 516, + "src": "1604:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1949,12 +1370,12 @@ }, { "argumentTypes": null, - "id": 3375, + "id": 562, "name": "totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3345, - "src": "1859:11:5", + "referencedDeclaration": 528, + "src": "1613:11:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1972,18 +1393,18 @@ "typeString": "uint256" } ], - "id": 3373, + "id": 560, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3870, - "src": "1844:5:5", + "referencedDeclaration": 1057, + "src": "1598:5:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 3376, + "id": 563, "isConstant": false, "isLValue": false, "isPure": false, @@ -1991,57 +1412,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1844:27:5", + "src": "1598:27:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3377, + "id": 564, "nodeType": "ExpressionStatement", - "src": "1844:27:5" + "src": "1598:27:5" } ] }, - "documentation": "@dev Initializer function. Called only once when a proxy for the contract is created.\n@param _holder address that will receive its initial supply and be able to transfer before transfers start time\n@param _controller address that will have controller functionality on rewards protocol\n@param _minSecondsBetweenDays uint256 seconds required to pass between consecutive rewards day\n@param _rewardsStartTimestamp uint256 day 0 timestamp", - "id": 3379, + "documentation": "@dev Initializer function. Called only once when a proxy for the contract is created.\n@param _holder address that will receive its initial supply and be able to transfer before transfers start time\n@param _controller address that will have controller functionality on rewards protocol ", + "id": 566, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 3338, + "id": 521, "modifierName": { "argumentTypes": null, - "id": 3337, + "id": 520, "name": "initializer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4164, - "src": "1496:11:5", + "referencedDeclaration": 1413, + "src": "1256:11:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1496:11:5" + "src": "1256:11:5" } ], "name": "initialize", "nodeType": "FunctionDefinition", "parameters": { - "id": 3336, + "id": 519, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3329, + "id": 516, "name": "_holder", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1364:15:5", + "scope": 566, + "src": "1203:15:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2049,10 +1470,10 @@ "typeString": "address" }, "typeName": { - "id": 3328, + "id": 515, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1364:7:5", + "src": "1203:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2063,11 +1484,11 @@ }, { "constant": false, - "id": 3331, + "id": 518, "name": "_controller", "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1385:19:5", + "scope": 566, + "src": "1220:19:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2075,10 +1496,10 @@ "typeString": "address" }, "typeName": { - "id": 3330, + "id": 517, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1385:7:5", + "src": "1220:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2086,1009 +1507,1146 @@ }, "value": null, "visibility": "internal" - }, - { - "constant": false, - "id": 3333, - "name": "_minSecondsBetweenDays", - "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1410:30:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3332, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3335, - "name": "_rewardsStartTimestamp", - "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1446:30:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3334, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1446:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" } ], - "src": "1358:122:5" + "src": "1202:38:5" }, "payable": false, "returnParameters": { - "id": 3339, + "id": 522, "nodeType": "ParameterList", "parameters": [], - "src": "1510:0:5" + "src": "1270:0:5" }, - "scope": 3380, - "src": "1339:537:5", + "scope": 567, + "src": "1183:447:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 3381, - "src": "759:1119:5" + "scope": 568, + "src": "759:873:5" } ], - "src": "0:1878:5" + "src": "0:1632:5" }, "legacyAST": { - "absolutePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsToken.sol", - "exportedSymbols": { - "PropsToken": [ - 3380 - ] + "attributes": { + "absolutePath": "/home/george/Development/props/props-token-distribution/contracts/token/PropsToken.sol", + "exportedSymbols": { + "PropsToken": [ + 567 + ] + } }, - "id": 3381, - "nodeType": "SourceUnit", - "nodes": [ + "children": [ { - "id": 3312, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", + "attributes": { + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ] + }, + "id": 499, + "name": "PragmaDirective", "src": "0:24:5" }, { - "absolutePath": "zos-lib/contracts/Initializable.sol", - "file": "zos-lib/contracts/Initializable.sol", - "id": 3313, - "nodeType": "ImportDirective", - "scope": 3381, - "sourceUnit": 4184, - "src": "26:45:5", - "symbolAliases": [], - "unitAlias": "" + "attributes": { + "SourceUnit": 1433, + "absolutePath": "zos-lib/contracts/Initializable.sol", + "file": "zos-lib/contracts/Initializable.sol", + "scope": 568, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 500, + "name": "ImportDirective", + "src": "26:45:5" }, { - "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol", - "file": "openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol", - "id": 3314, - "nodeType": "ImportDirective", - "scope": 3381, - "sourceUnit": 4059, - "src": "72:66:5", - "symbolAliases": [], - "unitAlias": "" + "attributes": { + "SourceUnit": 1246, + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol", + "file": "openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol", + "scope": 568, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 501, + "name": "ImportDirective", + "src": "72:66:5" }, { - "absolutePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsTimeBasedTransfers.sol", - "file": "./PropsTimeBasedTransfers.sol", - "id": 3315, - "nodeType": "ImportDirective", - "scope": 3381, - "sourceUnit": 3311, - "src": "139:39:5", - "symbolAliases": [], - "unitAlias": "" + "attributes": { + "SourceUnit": 498, + "absolutePath": "/home/george/Development/props/props-token-distribution/contracts/token/PropsTimeBasedTransfers.sol", + "file": "./PropsTimeBasedTransfers.sol", + "scope": 568, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 502, + "name": "ImportDirective", + "src": "139:39:5" }, { - "absolutePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/ERC865Token.sol", - "file": "./ERC865Token.sol", - "id": 3316, - "nodeType": "ImportDirective", - "scope": 3381, - "sourceUnit": 719, - "src": "179:27:5", - "symbolAliases": [], - "unitAlias": "" + "attributes": { + "SourceUnit": 18, + "absolutePath": "/home/george/Development/props/props-token-distribution/contracts/token/ERC865Token.sol", + "file": "./ERC865Token.sol", + "scope": 568, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 503, + "name": "ImportDirective", + "src": "179:27:5" }, { - "absolutePath": "/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsRewards.sol", - "file": "./PropsRewards.sol", - "id": 3317, - "nodeType": "ImportDirective", - "scope": 3381, - "sourceUnit": 1503, - "src": "207:28:5", - "symbolAliases": [], - "unitAlias": "" + "attributes": { + "SourceUnit": 374, + "absolutePath": "/home/george/Development/props/props-token-distribution/contracts/token/PropsRewards.sol", + "file": "./PropsRewards.sol", + "scope": 568, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 504, + "name": "ImportDirective", + "src": "207:28:5" }, { - "baseContracts": [ + "attributes": { + "contractDependencies": [ + 17, + 20, + 373, + 497, + 1178, + 1245, + 1314, + 1432 + ], + "contractKind": "contract", + "documentation": "@title PROPSToken\n@dev PROPS token contract (based of ZEPToken by openzeppelin), a detailed ERC20 token\nhttps://github.com/zeppelinos/zos-vouching/blob/master/contracts/ZEPToken.sol\nPROPS are divisible by 1e18 base\nunits referred to as 'AttoPROPS'.\n * PROPS are displayed using 18 decimal places of precision.\n * 1 PROPS is equivalent to:\n 1 * 1e18 == 1e18 == One Quintillion AttoPROPS\n * 600 Million PROPS (total supply) is equivalent to:\n 600000000 * 1e18 == 6e26 AttoPROPS\n\n ", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 567, + 373, + 497, + 17, + 20, + 1178, + 1245, + 1314, + 1432 + ], + "name": "PropsToken", + "scope": 568 + }, + "children": [ { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3318, - "name": "Initializable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4183, - "src": "782:13:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Initializable_$4183", - "typeString": "contract Initializable" - } + "attributes": { + "arguments": null }, - "id": 3319, - "nodeType": "InheritanceSpecifier", + "children": [ + { + "attributes": { + "contractScope": null, + "name": "Initializable", + "referencedDeclaration": 1432, + "type": "contract Initializable" + }, + "id": 505, + "name": "UserDefinedTypeName", + "src": "782:13:5" + } + ], + "id": 506, + "name": "InheritanceSpecifier", "src": "782:13:5" }, { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3320, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4058, - "src": "797:13:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$4058", - "typeString": "contract ERC20Detailed" - } + "attributes": { + "arguments": null }, - "id": 3321, - "nodeType": "InheritanceSpecifier", + "children": [ + { + "attributes": { + "contractScope": null, + "name": "ERC20Detailed", + "referencedDeclaration": 1245, + "type": "contract ERC20Detailed" + }, + "id": 507, + "name": "UserDefinedTypeName", + "src": "797:13:5" + } + ], + "id": 508, + "name": "InheritanceSpecifier", "src": "797:13:5" }, { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3322, - "name": "ERC865Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 718, - "src": "812:11:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC865Token_$718", - "typeString": "contract ERC865Token" - } + "attributes": { + "arguments": null }, - "id": 3323, - "nodeType": "InheritanceSpecifier", + "children": [ + { + "attributes": { + "contractScope": null, + "name": "ERC865Token", + "referencedDeclaration": 17, + "type": "contract ERC865Token" + }, + "id": 509, + "name": "UserDefinedTypeName", + "src": "812:11:5" + } + ], + "id": 510, + "name": "InheritanceSpecifier", "src": "812:11:5" }, { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3324, - "name": "PropsTimeBasedTransfers", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3310, - "src": "825:23:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PropsTimeBasedTransfers_$3310", - "typeString": "contract PropsTimeBasedTransfers" - } + "attributes": { + "arguments": null }, - "id": 3325, - "nodeType": "InheritanceSpecifier", + "children": [ + { + "attributes": { + "contractScope": null, + "name": "PropsTimeBasedTransfers", + "referencedDeclaration": 497, + "type": "contract PropsTimeBasedTransfers" + }, + "id": 511, + "name": "UserDefinedTypeName", + "src": "825:23:5" + } + ], + "id": 512, + "name": "InheritanceSpecifier", "src": "825:23:5" }, { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3326, - "name": "PropsRewards", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1502, - "src": "850:12:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_PropsRewards_$1502", - "typeString": "contract PropsRewards" - } + "attributes": { + "arguments": null }, - "id": 3327, - "nodeType": "InheritanceSpecifier", + "children": [ + { + "attributes": { + "contractScope": null, + "name": "PropsRewards", + "referencedDeclaration": 373, + "type": "contract PropsRewards" + }, + "id": 513, + "name": "UserDefinedTypeName", + "src": "850:12:5" + } + ], + "id": 514, + "name": "InheritanceSpecifier", "src": "850:12:5" - } - ], - "contractDependencies": [ - 718, - 822, - 1502, - 3310, - 3991, - 4058, - 4127, - 4183 - ], - "contractKind": "contract", - "documentation": "@title PROPSToken\n@dev PROPS token contract (based of ZEPToken by openzeppelin), a detailed ERC20 token\nhttps://github.com/zeppelinos/zos-vouching/blob/master/contracts/ZEPToken.sol\nPROPS are divisible by 1e18 base\nunits referred to as 'AttoPROPS'.\n * PROPS are displayed using 18 decimal places of precision.\n * 1 PROPS is equivalent to:\n 1 * 1e18 == 1e18 == One Quintillion AttoPROPS\n * 600 Million PROPS (total supply) is equivalent to:\n 600000000 * 1e18 == 6e26 AttoPROPS\n\n ", - "fullyImplemented": true, - "id": 3380, - "linearizedBaseContracts": [ - 3380, - 1502, - 3310, - 718, - 822, - 3991, - 4058, - 4127, - 4183 - ], - "name": "PropsToken", - "nodeType": "ContractDefinition", - "nodes": [ + }, { - "body": { - "id": 3378, - "nodeType": "Block", - "src": "1510:366:5", - "statements": [ - { - "assignments": [ - 3341 - ], - "declarations": [ - { + "attributes": { + "constant": false, + "documentation": "@dev Initializer function. Called only once when a proxy for the contract is created.\n@param _holder address that will receive its initial supply and be able to transfer before transfers start time\n@param _controller address that will have controller functionality on rewards protocol ", + "implemented": true, + "isConstructor": false, + "name": "initialize", + "payable": false, + "scope": 567, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { "constant": false, - "id": 3341, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1516:14:5", + "name": "_holder", + "scope": 566, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 3340, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1516:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, + "type": "address", "value": null, "visibility": "internal" - } - ], - "id": 3343, - "initialValue": { - "argumentTypes": null, - "hexValue": "3138", - "id": 3342, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1533:2:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" }, - "value": "18" + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 515, + "name": "ElementaryTypeName", + "src": "1203:7:5" + } + ], + "id": 516, + "name": "VariableDeclaration", + "src": "1203:15:5" }, - "nodeType": "VariableDeclarationStatement", - "src": "1516:19:5" - }, - { - "assignments": [ - 3345 - ], - "declarations": [ - { + { + "attributes": { "constant": false, - "id": 3345, - "name": "totalSupply", - "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1605:19:5", + "name": "_controller", + "scope": 566, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3344, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1605:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + "type": "address", "value": null, "visibility": "internal" - } - ], - "id": 3356, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" }, - "id": 3355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 517, + "name": "ElementaryTypeName", + "src": "1220:7:5" + } + ], + "id": 518, + "name": "VariableDeclaration", + "src": "1220:19:5" + } + ], + "id": 519, + "name": "ParameterList", + "src": "1202:38:5" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 522, + "name": "ParameterList", + "src": "1270:0:5" + }, + { + "attributes": { + "arguments": null + }, + "children": [ + { + "attributes": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_600000000_by_1", - "typeString": "int_const 600000000" - }, - "id": 3348, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "302e36", - "id": 3346, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1627:3:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_5", - "typeString": "rational_const 3 / 5" + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1413, + "type": "modifier ()", + "value": "initializer" + }, + "id": 520, + "name": "Identifier", + "src": "1256:11:5" + } + ], + "id": 521, + "name": "ModifierInvocation", + "src": "1256:11:5" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 524 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "decimals", + "scope": 566, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "value": null, + "visibility": "internal" }, - "value": "0.6" + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 523, + "name": "ElementaryTypeName", + "src": "1276:5:5" + } + ], + "id": 524, + "name": "VariableDeclaration", + "src": "1276:14:5" }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "316539", - "id": 3347, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1633:3:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000_by_1", - "typeString": "int_const 1000000000" + { + "attributes": { + "argumentTypes": null, + "hexvalue": "3138", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 18", + "value": "18" }, - "value": "1e9" - }, - "src": "1627:9:5", - "typeDescriptions": { - "typeIdentifier": "t_rational_600000000_by_1", - "typeString": "int_const 600000000" + "id": 525, + "name": "Literal", + "src": "1293:2:5" } + ], + "id": 526, + "name": "VariableDeclarationStatement", + "src": "1276:19:5" + }, + { + "attributes": { + "assignments": [ + 528 + ] }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "components": [ - { + "children": [ + { + "attributes": { + "constant": false, + "name": "totalSupply", + "scope": 566, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 527, + "name": "ElementaryTypeName", + "src": "1365:7:5" + } + ], + "id": 528, + "name": "VariableDeclaration", + "src": "1365:19:5" + }, + { + "attributes": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3353, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 3349, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1640:2:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_600000000_by_1", + "typeString": "int_const 600000000" + }, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "operator": "*", + "type": "int_const 600000000" }, - "value": "10" + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "302e36", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "rational_const 3 / 5", + "value": "0.6" + }, + "id": 529, + "name": "Literal", + "src": "1387:3:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "316539", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 1000000000", + "value": "1e9" + }, + "id": 530, + "name": "Literal", + "src": "1393:3:5" + } + ], + "id": 531, + "name": "BinaryOperation", + "src": "1387:9:5" }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ { - "argumentTypes": null, - "id": 3351, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3341, - "src": "1654:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } + "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": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 532, + "name": "Literal", + "src": "1400:2:5" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)", + "value": "uint256" + }, + "id": 533, + "name": "ElementaryTypeNameExpression", + "src": "1406:7:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 524, + "type": "uint8", + "value": "decimals" + }, + "id": 534, + "name": "Identifier", + "src": "1414:8:5" + } + ], + "id": 535, + "name": "FunctionCall", + "src": "1406:17:5" + } + ], + "id": 536, + "name": "BinaryOperation", + "src": "1400:23:5" } ], - "expression": { + "id": 537, + "name": "TupleExpression", + "src": "1399:25:5" + } + ], + "id": 538, + "name": "BinaryOperation", + "src": "1387:37:5" + } + ], + "id": 539, + "name": "VariableDeclarationStatement", + "src": "1365:59:5" + }, + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_dc1293dc14d3554079e7b5475cd9e82b2b570be6ab0320d98d1adf48c388ae3b", + "typeString": "literal_string \"Props Token\"" + }, + { + "typeIdentifier": "t_stringliteral_d4a11413b471eca97bcf19e5d655e9b80f99f6af51ea832513db3f1c311a8fba", + "typeString": "literal_string \"PROPS\"" + }, { "typeIdentifier": "t_uint8", "typeString": "uint8" } ], - "id": 3350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "initialize", + "referencedDeclaration": 1216, + "type": "function (string memory,string memory,uint8)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1245, + "type": "type(contract ERC20Detailed)", + "value": "ERC20Detailed" + }, + "id": 540, + "name": "Identifier", + "src": "1431:13:5" + } + ], + "id": 542, + "name": "MemberAccess", + "src": "1431:24:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "50726f707320546f6b656e", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1646:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" + "subdenomination": null, + "token": "string", + "type": "literal_string \"Props Token\"", + "value": "Props Token" }, - "id": 3352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1646:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "id": 543, + "name": "Literal", + "src": "1456:13:5" }, - "src": "1640:23:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "attributes": { + "argumentTypes": null, + "hexvalue": "50524f5053", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"PROPS\"", + "value": "PROPS" + }, + "id": 544, + "name": "Literal", + "src": "1471:7:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 524, + "type": "uint8", + "value": "decimals" + }, + "id": 545, + "name": "Identifier", + "src": "1480:8:5" } - } - ], - "id": 3354, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1639:25:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + ], + "id": 546, + "name": "FunctionCall", + "src": "1431:58:5" } - }, - "src": "1627:37:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + ], + "id": 547, + "name": "ExpressionStatement", + "src": "1431:58:5" }, - "nodeType": "VariableDeclarationStatement", - "src": "1605:59:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + { + "children": [ { - "argumentTypes": null, - "hexValue": "50726f707320546f6b656e", - "id": 3360, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1696:13:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dc1293dc14d3554079e7b5475cd9e82b2b570be6ab0320d98d1adf48c388ae3b", - "typeString": "literal_string \"Props Token\"" + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false }, - "value": "Props Token" - }, - { - "argumentTypes": null, - "hexValue": "50524f5053", - "id": 3361, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1711:7:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d4a11413b471eca97bcf19e5d655e9b80f99f6af51ea832513db3f1c311a8fba", - "typeString": "literal_string \"PROPS\"" - }, - "value": "PROPS" - }, - { - "argumentTypes": null, - "id": 3362, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3341, - "src": "1720:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "initialize", + "referencedDeclaration": 92, + "type": "function (address)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 373, + "type": "type(contract PropsRewards)", + "value": "PropsRewards" + }, + "id": 548, + "name": "Identifier", + "src": "1495:12:5" + } + ], + "id": 550, + "name": "MemberAccess", + "src": "1495:23:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "address", + "value": "_controller" + }, + "id": 551, + "name": "Identifier", + "src": "1519:11:5" + } + ], + "id": 552, + "name": "FunctionCall", + "src": "1495:36:5" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_dc1293dc14d3554079e7b5475cd9e82b2b570be6ab0320d98d1adf48c388ae3b", - "typeString": "literal_string \"Props Token\"" - }, - { - "typeIdentifier": "t_stringliteral_d4a11413b471eca97bcf19e5d655e9b80f99f6af51ea832513db3f1c311a8fba", - "typeString": "literal_string \"PROPS\"" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "expression": { - "argumentTypes": null, - "id": 3357, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4058, - "src": "1671:13:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$4058_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "id": 3359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "initialize", - "nodeType": "MemberAccess", - "referencedDeclaration": 4029, - "src": "1671:24:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$__$", - "typeString": "function (string memory,string memory,uint8)" - } - }, - "id": 3363, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1671:58:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + "id": 553, + "name": "ExpressionStatement", + "src": "1495:36:5" }, - "id": 3364, - "nodeType": "ExpressionStatement", - "src": "1671:58:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3368, - "name": "_controller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3331, - "src": "1778:11:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3369, - "name": "_minSecondsBetweenDays", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3333, - "src": "1791:22:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + { + "children": [ { - "argumentTypes": null, - "id": 3370, - "name": "_rewardsStartTimestamp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3335, - "src": "1815:22:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3365, - "name": "PropsRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1502, - "src": "1735:12:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_PropsRewards_$1502_$", - "typeString": "type(contract PropsRewards)" - } - }, - "id": 3367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "initializePostRewardsUpgrade1", - "nodeType": "MemberAccess", - "referencedDeclaration": 957, - "src": "1735:42:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_dc1293dc14d3554079e7b5475cd9e82b2b570be6ab0320d98d1adf48c388ae3b", + "typeString": "literal_string \"Props Token\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "initializePermitUpgrade", + "referencedDeclaration": 137, + "type": "function (string memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 373, + "type": "type(contract PropsRewards)", + "value": "PropsRewards" + }, + "id": 554, + "name": "Identifier", + "src": "1537:12:5" + } + ], + "id": 556, + "name": "MemberAccess", + "src": "1537:36:5" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "50726f707320546f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "string", + "type": "literal_string \"Props Token\"", + "value": "Props Token" + }, + "id": 557, + "name": "Literal", + "src": "1574:13:5" + } + ], + "id": 558, + "name": "FunctionCall", + "src": "1537:51:5" } - }, - "id": 3371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1735:103:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + ], + "id": 559, + "name": "ExpressionStatement", + "src": "1537:51:5" }, - "id": 3372, - "nodeType": "ExpressionStatement", - "src": "1735:103:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + { + "children": [ { - "argumentTypes": null, - "id": 3374, - "name": "_holder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3329, - "src": "1850:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3375, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3345, - "src": "1859:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3373, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3870, - "src": "1844:5:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1057, + "type": "function (address,uint256)", + "value": "_mint" + }, + "id": 560, + "name": "Identifier", + "src": "1598:5:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 516, + "type": "address", + "value": "_holder" + }, + "id": 561, + "name": "Identifier", + "src": "1604:7:5" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 528, + "type": "uint256", + "value": "totalSupply" + }, + "id": 562, + "name": "Identifier", + "src": "1613:11:5" + } + ], + "id": 563, + "name": "FunctionCall", + "src": "1598:27:5" } - }, - "id": 3376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1844:27:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3377, - "nodeType": "ExpressionStatement", - "src": "1844:27:5" - } - ] - }, - "documentation": "@dev Initializer function. Called only once when a proxy for the contract is created.\n@param _holder address that will receive its initial supply and be able to transfer before transfers start time\n@param _controller address that will have controller functionality on rewards protocol\n@param _minSecondsBetweenDays uint256 seconds required to pass between consecutive rewards day\n@param _rewardsStartTimestamp uint256 day 0 timestamp", - "id": 3379, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 3338, - "modifierName": { - "argumentTypes": null, - "id": 3337, - "name": "initializer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4164, - "src": "1496:11:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" + ], + "id": 564, + "name": "ExpressionStatement", + "src": "1598:27:5" } - }, - "nodeType": "ModifierInvocation", - "src": "1496:11:5" + ], + "id": 565, + "name": "Block", + "src": "1270:360:5" } ], - "name": "initialize", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3329, - "name": "_holder", - "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1364:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3328, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1364:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3331, - "name": "_controller", - "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1385:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3330, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1385:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3333, - "name": "_minSecondsBetweenDays", - "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1410:30:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3332, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1410:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3335, - "name": "_rewardsStartTimestamp", - "nodeType": "VariableDeclaration", - "scope": 3379, - "src": "1446:30:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3334, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1446:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1358:122:5" - }, - "payable": false, - "returnParameters": { - "id": 3339, - "nodeType": "ParameterList", - "parameters": [], - "src": "1510:0:5" - }, - "scope": 3380, - "src": "1339:537:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" + "id": 566, + "name": "FunctionDefinition", + "src": "1183:447:5" } ], - "scope": 3381, - "src": "759:1119:5" + "id": 567, + "name": "ContractDefinition", + "src": "759:873:5" } ], - "src": "0:1878:5" + "id": 568, + "name": "SourceUnit", + "src": "0:1632:5" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.4.25+commit.59dbf8f1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.1", - "updatedAt": "2019-08-15T18:51:44.478Z" + "schemaVersion": "3.3.4", + "updatedAt": "2021-04-02T09:51:14.571Z", + "devdoc": { + "methods": { + "allowance(address,address)": { + "details": "Function to check the amount of tokens that an owner allowed to a spender.", + "params": { + "owner": "address The address which owns the funds.", + "spender": "address The address which will spend the funds." + }, + "return": "A uint256 specifying the amount of tokens still available for the spender." + }, + "approve(address,uint256)": { + "details": "Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729", + "params": { + "spender": "The address which will spend the funds.", + "value": "The amount of tokens to be spent." + } + }, + "balanceOf(address)": { + "details": "Gets the balance of the specified address.", + "params": { + "owner": "The address to query the the balance of." + }, + "return": "An uint256 representing the amount owned by the passed address." + }, + "decimals()": { + "return": "the number of decimals of the token." + }, + "decreaseAllowance(address,uint256)": { + "details": "Decrease the amount of tokens that an owner allowed to a spender. approve should be called when allowed_[_spender] == 0. To decrement allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol", + "params": { + "spender": "The address which will spend the funds.", + "subtractedValue": "The amount of tokens to decrease the allowance by." + } + }, + "increaseAllowance(address,uint256)": { + "details": "Increase the amount of tokens that an owner allowed to a spender. approve should be called when allowed_[_spender] == 0. To increment allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol", + "params": { + "addedValue": "The amount of tokens to increase the allowance by.", + "spender": "The address which will spend the funds." + } + }, + "initialize(address)": { + "details": "The initializer function for upgrade as initialize was already called, get the decimals used in the token to initialize the params", + "params": { + "_controller": "address that will have controller functionality on token" + } + }, + "initialize(address,address)": { + "details": "Initializer function. Called only once when a proxy for the contract is created.", + "params": { + "_controller": "address that will have controller functionality on rewards protocol ", + "_holder": "address that will receive its initial supply and be able to transfer before transfers start time" + } + }, + "initializePermitUpgrade(string)": { + "details": "Initialize post separation of rewards contract upgrade", + "params": { + "_tokenName": "string token name" + } + }, + "mint(address,uint256)": { + "details": "Allows minters to mint tokens to a given address", + "params": { + "_account": "address of the receiving account", + "_amount": "uint256 how much to mint" + } + }, + "name()": { + "return": "the name of the token." + }, + "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": { + "details": "Allows for approvals to be made via secp256k1 signatures", + "params": { + "_amount": "uint spender", + "_deadline": "uint spender", + "_owner": "address owner", + "_r": "bytes32 spender", + "_s": "bytes32 spender", + "_spender": "address spender", + "_v": "uint8 spender" + } + }, + "reclaimToken(address,address,uint256)": { + "details": "Reclaim all ERC20 compatible tokens", + "params": { + "_token": "ERC20 The address of the token contract" + } + }, + "symbol()": { + "return": "the symbol of the token." + }, + "totalSupply()": { + "details": "Total number of tokens in existence" + }, + "transfer(address,uint256)": { + "details": "Transfer token for a specified address", + "params": { + "to": "The address to transfer to.", + "value": "The amount to be transferred." + } + }, + "transferFrom(address,address,uint256)": { + "details": "Transfer tokens from one address to another", + "params": { + "from": "address The address which you want to send tokens from", + "to": "address The address which you want to transfer to", + "value": "uint256 the amount of tokens to be transferred" + } + }, + "updateController(address)": { + "details": "Allows the controller/owner to update to a new controller", + "params": { + "_controller": "address address of the new controller" + } + } + }, + "title": "PROPSToken" + }, + "userdoc": { + "methods": {} + } } \ No newline at end of file diff --git a/build/contracts/SafeERC20.json b/build/contracts/SafeERC20.json new file mode 100644 index 00000000..84efd826 --- /dev/null +++ b/build/contracts/SafeERC20.json @@ -0,0 +1,1768 @@ +{ + "contractName": "SafeERC20", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.4.25+commit.59dbf8f1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{},\"title\":\"SafeERC20\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-eth/contracts/token/ERC20/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-eth/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xca27427124232a675642ba45303b78d5a36e1207ee222030ef249e11eba5a224\",\"urls\":[\"bzzr://013c67962737acca577ecd24e6b6c80f85b05fd03c1c75ab68f65a084f4b4cfd\"]},\"openzeppelin-eth/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24252d4567a1cbf14d609a8308e491359c9200d58a2e78282938d945aeeb2bb3\",\"urls\":[\"bzzr://61401aaae518b765df91e443ef9dfb7af874341921829a063cb4804a6fb49c5e\"]},\"openzeppelin-eth/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x0786a09def412e5a92e1da8545114b39f9bbd8bd1ba6f62a5bf8b81f54ab25bf\",\"urls\":[\"bzzr://b35dbbf6dd505fcb601ca968d4628714a3af84024224228433eadf700e94f250\"]},\"openzeppelin-eth/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0x885962cc93b105975c112906fc38e50c1a170e3c5f08dc55328e90fd5b3734d1\",\"urls\":[\"bzzr://36483b11e610c19d02acda1e408bb5eb306db428c5f6071a7869afa95bde1904\"]},\"zos-lib/contracts/Initializable.sol\":{\"keccak256\":\"0xac4cc87395794e21e95549a1b4002881621d59878c4129d534a0089ce5cf7212\",\"urls\":[\"bzzr://1725ac3e1941f8e2bf5c1966abd66bd744d40c85ae8195eb697ec3256bc1fc39\"]}},\"version\":1}", + "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058207449aa1838e4ad846a38c51bf2b66404e56062b7b02ef737147d72892fe08f470029", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058207449aa1838e4ad846a38c51bf2b66404e56062b7b02ef737147d72892fe08f470029", + "sourceMap": "342:489:11:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "342:489:11:-;;;;;;;;", + "source": "pragma solidity ^0.4.24;\n\nimport \"./ERC20.sol\";\nimport \"./IERC20.sol\";\n\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure.\n * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n function safeTransfer(\n IERC20 token,\n address to,\n uint256 value\n )\n internal\n {\n require(token.transfer(to, value));\n }\n\n function safeTransferFrom(\n IERC20 token,\n address from,\n address to,\n uint256 value\n )\n internal\n {\n require(token.transferFrom(from, to, value));\n }\n\n function safeApprove(\n IERC20 token,\n address spender,\n uint256 value\n )\n internal\n {\n require(token.approve(spender, value));\n }\n}\n", + "sourcePath": "openzeppelin-eth/contracts/token/ERC20/SafeERC20.sol", + "ast": { + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/SafeERC20.sol", + "exportedSymbols": { + "SafeERC20": [ + 1376 + ] + }, + "id": 1377, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1316, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:11" + }, + { + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", + "file": "./ERC20.sol", + "id": 1317, + "nodeType": "ImportDirective", + "scope": 1377, + "sourceUnit": 1179, + "src": "26:21:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/IERC20.sol", + "file": "./IERC20.sol", + "id": 1318, + "nodeType": "ImportDirective", + "scope": 1377, + "sourceUnit": 1315, + "src": "48:22:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@title SafeERC20\n@dev Wrappers around ERC20 operations that throw on failure.\nTo use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,\nwhich allows you to call the safe operations as `token.safeTransfer(...)`, etc.", + "fullyImplemented": true, + "id": 1376, + "linearizedBaseContracts": [ + 1376 + ], + "name": "SafeERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1335, + "nodeType": "Block", + "src": "458:45:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1330, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1322, + "src": "487:2:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1331, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1324, + "src": "491:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1328, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1320, + "src": "472:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1314", + "typeString": "contract IERC20" + } + }, + "id": 1329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1277, + "src": "472:14:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "472:25:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1327, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1450, + "src": "464:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "464:34:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1334, + "nodeType": "ExpressionStatement", + "src": "464:34:11" + } + ] + }, + "documentation": null, + "id": 1336, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "safeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1325, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1320, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1336, + "src": "391:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1314", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 1319, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1314, + "src": "391:6:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1314", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1322, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 1336, + "src": "409:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1321, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "409:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1324, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1336, + "src": "425:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1323, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "425:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "385:57:11" + }, + "payable": false, + "returnParameters": { + "id": 1326, + "nodeType": "ParameterList", + "parameters": [], + "src": "458:0:11" + }, + "scope": 1376, + "src": "364:139:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1356, + "nodeType": "Block", + "src": "623:55:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1350, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1340, + "src": "656:4:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1351, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1342, + "src": "662:2:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1352, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1344, + "src": "666:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1348, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1338, + "src": "637:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1314", + "typeString": "contract IERC20" + } + }, + "id": 1349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 1297, + "src": "637:18:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 1353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "637:35:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1347, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1450, + "src": "629:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "629:44:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1355, + "nodeType": "ExpressionStatement", + "src": "629:44:11" + } + ] + }, + "documentation": null, + "id": 1357, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1345, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1338, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1357, + "src": "538:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1314", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 1337, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1314, + "src": "538:6:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1314", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1340, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 1357, + "src": "556:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1339, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "556:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1342, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 1357, + "src": "574:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1341, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "574:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1344, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1357, + "src": "590:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "590:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "532:75:11" + }, + "payable": false, + "returnParameters": { + "id": 1346, + "nodeType": "ParameterList", + "parameters": [], + "src": "623:0:11" + }, + "scope": 1376, + "src": "507:171:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1374, + "nodeType": "Block", + "src": "780:49:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1369, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1361, + "src": "808:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1370, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1363, + "src": "817:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1367, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1359, + "src": "794:5:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1314", + "typeString": "contract IERC20" + } + }, + "id": 1368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 1286, + "src": "794:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "794:29:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1366, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1450, + "src": "786:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "786:38:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1373, + "nodeType": "ExpressionStatement", + "src": "786:38:11" + } + ] + }, + "documentation": null, + "id": 1375, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "safeApprove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1364, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1359, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1375, + "src": "708:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1314", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 1358, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1314, + "src": "708:6:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1314", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1361, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1375, + "src": "726:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1360, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "726:7:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1363, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1375, + "src": "747:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1362, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "747:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "702:62:11" + }, + "payable": false, + "returnParameters": { + "id": 1365, + "nodeType": "ParameterList", + "parameters": [], + "src": "780:0:11" + }, + "scope": 1376, + "src": "682:147:11", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 1377, + "src": "342:489:11" + } + ], + "src": "0:832:11" + }, + "legacyAST": { + "attributes": { + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/SafeERC20.sol", + "exportedSymbols": { + "SafeERC20": [ + 1376 + ] + } + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ] + }, + "id": 1316, + "name": "PragmaDirective", + "src": "0:24:11" + }, + { + "attributes": { + "SourceUnit": 1179, + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", + "file": "./ERC20.sol", + "scope": 1377, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 1317, + "name": "ImportDirective", + "src": "26:21:11" + }, + { + "attributes": { + "SourceUnit": 1315, + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/IERC20.sol", + "file": "./IERC20.sol", + "scope": 1377, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 1318, + "name": "ImportDirective", + "src": "48:22:11" + }, + { + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "documentation": "@title SafeERC20\n@dev Wrappers around ERC20 operations that throw on failure.\nTo use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,\nwhich allows you to call the safe operations as `token.safeTransfer(...)`, etc.", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1376 + ], + "name": "SafeERC20", + "scope": 1377 + }, + "children": [ + { + "attributes": { + "constant": false, + "documentation": null, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "safeTransfer", + "payable": false, + "scope": 1376, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "token", + "scope": 1336, + "stateVariable": false, + "storageLocation": "default", + "type": "contract IERC20", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IERC20", + "referencedDeclaration": 1314, + "type": "contract IERC20" + }, + "id": 1319, + "name": "UserDefinedTypeName", + "src": "391:6:11" + } + ], + "id": 1320, + "name": "VariableDeclaration", + "src": "391:12:11" + }, + { + "attributes": { + "constant": false, + "name": "to", + "scope": 1336, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1321, + "name": "ElementaryTypeName", + "src": "409:7:11" + } + ], + "id": 1322, + "name": "VariableDeclaration", + "src": "409:10:11" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 1336, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1323, + "name": "ElementaryTypeName", + "src": "425:7:11" + } + ], + "id": 1324, + "name": "VariableDeclaration", + "src": "425:13:11" + } + ], + "id": 1325, + "name": "ParameterList", + "src": "385:57:11" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1326, + "name": "ParameterList", + "src": "458:0:11" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1450, + "type": "function (bool) pure", + "value": "require" + }, + "id": 1327, + "name": "Identifier", + "src": "464:7:11" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "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": 1277, + "type": "function (address,uint256) external returns (bool)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1320, + "type": "contract IERC20", + "value": "token" + }, + "id": 1328, + "name": "Identifier", + "src": "472:5:11" + } + ], + "id": 1329, + "name": "MemberAccess", + "src": "472:14:11" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1322, + "type": "address", + "value": "to" + }, + "id": 1330, + "name": "Identifier", + "src": "487:2:11" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1324, + "type": "uint256", + "value": "value" + }, + "id": 1331, + "name": "Identifier", + "src": "491:5:11" + } + ], + "id": 1332, + "name": "FunctionCall", + "src": "472:25:11" + } + ], + "id": 1333, + "name": "FunctionCall", + "src": "464:34:11" + } + ], + "id": 1334, + "name": "ExpressionStatement", + "src": "464:34:11" + } + ], + "id": 1335, + "name": "Block", + "src": "458:45:11" + } + ], + "id": 1336, + "name": "FunctionDefinition", + "src": "364:139:11" + }, + { + "attributes": { + "constant": false, + "documentation": null, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "payable": false, + "scope": 1376, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "token", + "scope": 1357, + "stateVariable": false, + "storageLocation": "default", + "type": "contract IERC20", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IERC20", + "referencedDeclaration": 1314, + "type": "contract IERC20" + }, + "id": 1337, + "name": "UserDefinedTypeName", + "src": "538:6:11" + } + ], + "id": 1338, + "name": "VariableDeclaration", + "src": "538:12:11" + }, + { + "attributes": { + "constant": false, + "name": "from", + "scope": 1357, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1339, + "name": "ElementaryTypeName", + "src": "556:7:11" + } + ], + "id": 1340, + "name": "VariableDeclaration", + "src": "556:12:11" + }, + { + "attributes": { + "constant": false, + "name": "to", + "scope": 1357, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1341, + "name": "ElementaryTypeName", + "src": "574:7:11" + } + ], + "id": 1342, + "name": "VariableDeclaration", + "src": "574:10:11" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 1357, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1343, + "name": "ElementaryTypeName", + "src": "590:7:11" + } + ], + "id": 1344, + "name": "VariableDeclaration", + "src": "590:13:11" + } + ], + "id": 1345, + "name": "ParameterList", + "src": "532:75:11" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1346, + "name": "ParameterList", + "src": "623:0:11" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1450, + "type": "function (bool) pure", + "value": "require" + }, + "id": 1347, + "name": "Identifier", + "src": "629:7:11" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "transferFrom", + "referencedDeclaration": 1297, + "type": "function (address,address,uint256) external returns (bool)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1338, + "type": "contract IERC20", + "value": "token" + }, + "id": 1348, + "name": "Identifier", + "src": "637:5:11" + } + ], + "id": 1349, + "name": "MemberAccess", + "src": "637:18:11" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1340, + "type": "address", + "value": "from" + }, + "id": 1350, + "name": "Identifier", + "src": "656:4:11" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1342, + "type": "address", + "value": "to" + }, + "id": 1351, + "name": "Identifier", + "src": "662:2:11" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1344, + "type": "uint256", + "value": "value" + }, + "id": 1352, + "name": "Identifier", + "src": "666:5:11" + } + ], + "id": 1353, + "name": "FunctionCall", + "src": "637:35:11" + } + ], + "id": 1354, + "name": "FunctionCall", + "src": "629:44:11" + } + ], + "id": 1355, + "name": "ExpressionStatement", + "src": "629:44:11" + } + ], + "id": 1356, + "name": "Block", + "src": "623:55:11" + } + ], + "id": 1357, + "name": "FunctionDefinition", + "src": "507:171:11" + }, + { + "attributes": { + "constant": false, + "documentation": null, + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "safeApprove", + "payable": false, + "scope": 1376, + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "token", + "scope": 1375, + "stateVariable": false, + "storageLocation": "default", + "type": "contract IERC20", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "contractScope": null, + "name": "IERC20", + "referencedDeclaration": 1314, + "type": "contract IERC20" + }, + "id": 1358, + "name": "UserDefinedTypeName", + "src": "708:6:11" + } + ], + "id": 1359, + "name": "VariableDeclaration", + "src": "708:12:11" + }, + { + "attributes": { + "constant": false, + "name": "spender", + "scope": 1375, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 1360, + "name": "ElementaryTypeName", + "src": "726:7:11" + } + ], + "id": 1361, + "name": "VariableDeclaration", + "src": "726:15:11" + }, + { + "attributes": { + "constant": false, + "name": "value", + "scope": 1375, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1362, + "name": "ElementaryTypeName", + "src": "747:7:11" + } + ], + "id": 1363, + "name": "VariableDeclaration", + "src": "747:13:11" + } + ], + "id": 1364, + "name": "ParameterList", + "src": "702:62:11" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1365, + "name": "ParameterList", + "src": "780:0:11" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1450, + "type": "function (bool) pure", + "value": "require" + }, + "id": 1366, + "name": "Identifier", + "src": "786:7:11" + }, + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "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": "approve", + "referencedDeclaration": 1286, + "type": "function (address,uint256) external returns (bool)" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1359, + "type": "contract IERC20", + "value": "token" + }, + "id": 1367, + "name": "Identifier", + "src": "794:5:11" + } + ], + "id": 1368, + "name": "MemberAccess", + "src": "794:13:11" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1361, + "type": "address", + "value": "spender" + }, + "id": 1369, + "name": "Identifier", + "src": "808:7:11" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1363, + "type": "uint256", + "value": "value" + }, + "id": 1370, + "name": "Identifier", + "src": "817:5:11" + } + ], + "id": 1371, + "name": "FunctionCall", + "src": "794:29:11" + } + ], + "id": 1372, + "name": "FunctionCall", + "src": "786:38:11" + } + ], + "id": 1373, + "name": "ExpressionStatement", + "src": "786:38:11" + } + ], + "id": 1374, + "name": "Block", + "src": "780:49:11" + } + ], + "id": 1375, + "name": "FunctionDefinition", + "src": "682:147:11" + } + ], + "id": 1376, + "name": "ContractDefinition", + "src": "342:489:11" + } + ], + "id": 1377, + "name": "SourceUnit", + "src": "0:832:11" + }, + "compiler": { + "name": "solc", + "version": "0.4.25+commit.59dbf8f1.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.4", + "updatedAt": "2021-04-02T09:51:14.591Z", + "devdoc": { + "methods": {}, + "title": "SafeERC20" + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build/contracts/SafeMath.json b/build/contracts/SafeMath.json index 4d7eb1d2..8623c498 100644 --- a/build/contracts/SafeMath.json +++ b/build/contracts/SafeMath.json @@ -1,8 +1,9 @@ { "contractName": "SafeMath", "abi": [], - "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820bd8202de8d9b17b7defde8f51bd1bd633846da363ddc298598f819912ef19a7b0029", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820bd8202de8d9b17b7defde8f51bd1bd633846da363ddc298598f819912ef19a7b0029", + "metadata": "{\"compiler\":{\"version\":\"0.4.25+commit.59dbf8f1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{},\"title\":\"SafeMath\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-eth/contracts/math/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-eth/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xca27427124232a675642ba45303b78d5a36e1207ee222030ef249e11eba5a224\",\"urls\":[\"bzzr://013c67962737acca577ecd24e6b6c80f85b05fd03c1c75ab68f65a084f4b4cfd\"]}},\"version\":1}", + "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058201a29d23570ccf011d8d8a5aa81a63588d3aebfc577a0adefbffdb2f45c6ad1e40029", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058201a29d23570ccf011d8d8a5aa81a63588d3aebfc577a0adefbffdb2f45c6ad1e40029", "sourceMap": "118:1531:7:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", "deployedSourceMap": "118:1531:7:-;;;;;;;;", "source": "pragma solidity ^0.4.24;\n\n\n/**\n * @title SafeMath\n * @dev Math operations with safety checks that revert on error\n */\nlibrary SafeMath {\n\n /**\n * @dev Multiplies two numbers, reverts on overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\n if (a == 0) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b);\n\n return c;\n }\n\n /**\n * @dev Integer division of two numbers truncating the quotient, reverts on division by zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0); // Solidity only automatically asserts when dividing by 0\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a);\n uint256 c = a - b;\n\n return c;\n }\n\n /**\n * @dev Adds two numbers, reverts on overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a);\n\n return c;\n }\n\n /**\n * @dev Divides two numbers and returns the remainder (unsigned integer modulo),\n * reverts when dividing by zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b != 0);\n return a % b;\n }\n}\n", @@ -11,14 +12,14 @@ "absolutePath": "openzeppelin-eth/contracts/math/SafeMath.sol", "exportedSymbols": { "SafeMath": [ - 3589 + 776 ] }, - "id": 3590, + "id": 777, "nodeType": "SourceUnit", "nodes": [ { - "id": 3463, + "id": 650, "literals": [ "solidity", "^", @@ -34,16 +35,16 @@ "contractKind": "library", "documentation": "@title SafeMath\n@dev Math operations with safety checks that revert on error", "fullyImplemented": true, - "id": 3589, + "id": 776, "linearizedBaseContracts": [ - 3589 + 776 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3495, + "id": 682, "nodeType": "Block", "src": "272:314:7", "statements": [ @@ -54,18 +55,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3474, + "id": 661, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3472, + "id": 659, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3465, + "referencedDeclaration": 652, "src": "487:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -77,7 +78,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3473, + "id": 660, "isConstant": false, "isLValue": false, "isPure": true, @@ -99,11 +100,11 @@ } }, "falseBody": null, - "id": 3478, + "id": 665, "nodeType": "IfStatement", "src": "483:35:7", "trueBody": { - "id": 3477, + "id": 664, "nodeType": "Block", "src": "495:23:7", "statements": [ @@ -111,7 +112,7 @@ "expression": { "argumentTypes": null, "hexValue": "30", - "id": 3475, + "id": 662, "isConstant": false, "isLValue": false, "isPure": true, @@ -126,8 +127,8 @@ }, "value": "0" }, - "functionReturnParameters": 3471, - "id": 3476, + "functionReturnParameters": 658, + "id": 663, "nodeType": "Return", "src": "503:8:7" } @@ -136,15 +137,15 @@ }, { "assignments": [ - 3480 + 667 ], "declarations": [ { "constant": false, - "id": 3480, + "id": 667, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3496, + "scope": 683, "src": "524:9:7", "stateVariable": false, "storageLocation": "default", @@ -153,7 +154,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3479, + "id": 666, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "524:7:7", @@ -166,25 +167,25 @@ "visibility": "internal" } ], - "id": 3484, + "id": 671, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3483, + "id": 670, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3481, + "id": 668, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3465, + "referencedDeclaration": 652, "src": "536:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -195,11 +196,11 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 3482, + "id": 669, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3467, + "referencedDeclaration": 654, "src": "540:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -225,7 +226,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3490, + "id": 677, "isConstant": false, "isLValue": false, "isPure": false, @@ -236,18 +237,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3488, + "id": 675, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3486, + "id": 673, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3480, + "referencedDeclaration": 667, "src": "555:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -258,11 +259,11 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 3487, + "id": 674, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3465, + "referencedDeclaration": 652, "src": "559:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -279,11 +280,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 3489, + "id": 676, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3467, + "referencedDeclaration": 654, "src": "564:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -304,21 +305,21 @@ "typeString": "bool" } ], - "id": 3485, + "id": 672, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4201, - 4202 + 1450, + 1451 ], - "referencedDeclaration": 4201, + "referencedDeclaration": 1450, "src": "547:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3491, + "id": 678, "isConstant": false, "isLValue": false, "isPure": false, @@ -332,33 +333,33 @@ "typeString": "tuple()" } }, - "id": 3492, + "id": 679, "nodeType": "ExpressionStatement", "src": "547:19:7" }, { "expression": { "argumentTypes": null, - "id": 3493, + "id": 680, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3480, + "referencedDeclaration": 667, "src": "580:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3471, - "id": 3494, + "functionReturnParameters": 658, + "id": 681, "nodeType": "Return", "src": "573:8:7" } ] }, "documentation": "@dev Multiplies two numbers, reverts on overflow.", - "id": 3496, + "id": 683, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -366,15 +367,15 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 3468, + "id": 655, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3465, + "id": 652, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3496, + "scope": 683, "src": "218:9:7", "stateVariable": false, "storageLocation": "default", @@ -383,7 +384,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3464, + "id": 651, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "218:7:7", @@ -397,10 +398,10 @@ }, { "constant": false, - "id": 3467, + "id": 654, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3496, + "scope": 683, "src": "229:9:7", "stateVariable": false, "storageLocation": "default", @@ -409,7 +410,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3466, + "id": 653, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "229:7:7", @@ -426,15 +427,15 @@ }, "payable": false, "returnParameters": { - "id": 3471, + "id": 658, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3470, + "id": 657, "name": "", "nodeType": "VariableDeclaration", - "scope": 3496, + "scope": 683, "src": "263:7:7", "stateVariable": false, "storageLocation": "default", @@ -443,7 +444,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3469, + "id": 656, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "263:7:7", @@ -458,7 +459,7 @@ ], "src": "262:9:7" }, - "scope": 3589, + "scope": 776, "src": "205:381:7", "stateMutability": "pure", "superFunction": null, @@ -466,7 +467,7 @@ }, { "body": { - "id": 3519, + "id": 706, "nodeType": "Block", "src": "763:203:7", "statements": [ @@ -480,18 +481,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3508, + "id": 695, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3506, + "id": 693, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3500, + "referencedDeclaration": 687, "src": "777:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -503,7 +504,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3507, + "id": 694, "isConstant": false, "isLValue": false, "isPure": true, @@ -532,21 +533,21 @@ "typeString": "bool" } ], - "id": 3505, + "id": 692, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4201, - 4202 + 1450, + 1451 ], - "referencedDeclaration": 4201, + "referencedDeclaration": 1450, "src": "769:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3509, + "id": 696, "isConstant": false, "isLValue": false, "isPure": false, @@ -560,21 +561,21 @@ "typeString": "tuple()" } }, - "id": 3510, + "id": 697, "nodeType": "ExpressionStatement", "src": "769:14:7" }, { "assignments": [ - 3512 + 699 ], "declarations": [ { "constant": false, - "id": 3512, + "id": 699, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3520, + "scope": 707, "src": "847:9:7", "stateVariable": false, "storageLocation": "default", @@ -583,7 +584,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3511, + "id": 698, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "847:7:7", @@ -596,25 +597,25 @@ "visibility": "internal" } ], - "id": 3516, + "id": 703, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3515, + "id": 702, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3513, + "id": 700, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3498, + "referencedDeclaration": 685, "src": "859:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -625,11 +626,11 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 3514, + "id": 701, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3500, + "referencedDeclaration": 687, "src": "863:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -648,26 +649,26 @@ { "expression": { "argumentTypes": null, - "id": 3517, + "id": 704, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3512, + "referencedDeclaration": 699, "src": "960:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3504, - "id": 3518, + "functionReturnParameters": 691, + "id": 705, "nodeType": "Return", "src": "953:8:7" } ] }, "documentation": "@dev Integer division of two numbers truncating the quotient, reverts on division by zero.", - "id": 3520, + "id": 707, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -675,15 +676,15 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 3501, + "id": 688, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3498, + "id": 685, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3520, + "scope": 707, "src": "709:9:7", "stateVariable": false, "storageLocation": "default", @@ -692,7 +693,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3497, + "id": 684, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "709:7:7", @@ -706,10 +707,10 @@ }, { "constant": false, - "id": 3500, + "id": 687, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3520, + "scope": 707, "src": "720:9:7", "stateVariable": false, "storageLocation": "default", @@ -718,7 +719,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3499, + "id": 686, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "720:7:7", @@ -735,15 +736,15 @@ }, "payable": false, "returnParameters": { - "id": 3504, + "id": 691, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3503, + "id": 690, "name": "", "nodeType": "VariableDeclaration", - "scope": 3520, + "scope": 707, "src": "754:7:7", "stateVariable": false, "storageLocation": "default", @@ -752,7 +753,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3502, + "id": 689, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "754:7:7", @@ -767,7 +768,7 @@ ], "src": "753:9:7" }, - "scope": 3589, + "scope": 776, "src": "696:270:7", "stateMutability": "pure", "superFunction": null, @@ -775,7 +776,7 @@ }, { "body": { - "id": 3543, + "id": 730, "nodeType": "Block", "src": "1146:64:7", "statements": [ @@ -789,18 +790,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3532, + "id": 719, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3530, + "id": 717, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3524, + "referencedDeclaration": 711, "src": "1160:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -811,11 +812,11 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 3531, + "id": 718, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3522, + "referencedDeclaration": 709, "src": "1165:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -836,21 +837,21 @@ "typeString": "bool" } ], - "id": 3529, + "id": 716, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4201, - 4202 + 1450, + 1451 ], - "referencedDeclaration": 4201, + "referencedDeclaration": 1450, "src": "1152:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3533, + "id": 720, "isConstant": false, "isLValue": false, "isPure": false, @@ -864,21 +865,21 @@ "typeString": "tuple()" } }, - "id": 3534, + "id": 721, "nodeType": "ExpressionStatement", "src": "1152:15:7" }, { "assignments": [ - 3536 + 723 ], "declarations": [ { "constant": false, - "id": 3536, + "id": 723, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3544, + "scope": 731, "src": "1173:9:7", "stateVariable": false, "storageLocation": "default", @@ -887,7 +888,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3535, + "id": 722, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1173:7:7", @@ -900,25 +901,25 @@ "visibility": "internal" } ], - "id": 3540, + "id": 727, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3539, + "id": 726, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3537, + "id": 724, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3522, + "referencedDeclaration": 709, "src": "1185:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -929,11 +930,11 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 3538, + "id": 725, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3524, + "referencedDeclaration": 711, "src": "1189:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -952,26 +953,26 @@ { "expression": { "argumentTypes": null, - "id": 3541, + "id": 728, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3536, + "referencedDeclaration": 723, "src": "1204:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3528, - "id": 3542, + "functionReturnParameters": 715, + "id": 729, "nodeType": "Return", "src": "1197:8:7" } ] }, "documentation": "@dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).", - "id": 3544, + "id": 731, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -979,15 +980,15 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 3525, + "id": 712, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3522, + "id": 709, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3544, + "scope": 731, "src": "1092:9:7", "stateVariable": false, "storageLocation": "default", @@ -996,7 +997,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3521, + "id": 708, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1092:7:7", @@ -1010,10 +1011,10 @@ }, { "constant": false, - "id": 3524, + "id": 711, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3544, + "scope": 731, "src": "1103:9:7", "stateVariable": false, "storageLocation": "default", @@ -1022,7 +1023,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3523, + "id": 710, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1103:7:7", @@ -1039,15 +1040,15 @@ }, "payable": false, "returnParameters": { - "id": 3528, + "id": 715, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3527, + "id": 714, "name": "", "nodeType": "VariableDeclaration", - "scope": 3544, + "scope": 731, "src": "1137:7:7", "stateVariable": false, "storageLocation": "default", @@ -1056,7 +1057,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3526, + "id": 713, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1137:7:7", @@ -1071,7 +1072,7 @@ ], "src": "1136:9:7" }, - "scope": 3589, + "scope": 776, "src": "1079:131:7", "stateMutability": "pure", "superFunction": null, @@ -1079,21 +1080,21 @@ }, { "body": { - "id": 3567, + "id": 754, "nodeType": "Block", "src": "1340:64:7", "statements": [ { "assignments": [ - 3554 + 741 ], "declarations": [ { "constant": false, - "id": 3554, + "id": 741, "name": "c", "nodeType": "VariableDeclaration", - "scope": 3568, + "scope": 755, "src": "1346:9:7", "stateVariable": false, "storageLocation": "default", @@ -1102,7 +1103,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3553, + "id": 740, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1346:7:7", @@ -1115,25 +1116,25 @@ "visibility": "internal" } ], - "id": 3558, + "id": 745, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3557, + "id": 744, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3555, + "id": 742, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3546, + "referencedDeclaration": 733, "src": "1358:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1144,11 +1145,11 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 3556, + "id": 743, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3548, + "referencedDeclaration": 735, "src": "1362:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1174,18 +1175,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3562, + "id": 749, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3560, + "id": 747, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3554, + "referencedDeclaration": 741, "src": "1377:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1196,11 +1197,11 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 3561, + "id": 748, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3546, + "referencedDeclaration": 733, "src": "1382:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1221,21 +1222,21 @@ "typeString": "bool" } ], - "id": 3559, + "id": 746, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4201, - 4202 + 1450, + 1451 ], - "referencedDeclaration": 4201, + "referencedDeclaration": 1450, "src": "1369:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3563, + "id": 750, "isConstant": false, "isLValue": false, "isPure": false, @@ -1249,33 +1250,33 @@ "typeString": "tuple()" } }, - "id": 3564, + "id": 751, "nodeType": "ExpressionStatement", "src": "1369:15:7" }, { "expression": { "argumentTypes": null, - "id": 3565, + "id": 752, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3554, + "referencedDeclaration": 741, "src": "1398:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3552, - "id": 3566, + "functionReturnParameters": 739, + "id": 753, "nodeType": "Return", "src": "1391:8:7" } ] }, "documentation": "@dev Adds two numbers, reverts on overflow.", - "id": 3568, + "id": 755, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1283,15 +1284,15 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 3549, + "id": 736, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3546, + "id": 733, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3568, + "scope": 755, "src": "1286:9:7", "stateVariable": false, "storageLocation": "default", @@ -1300,7 +1301,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3545, + "id": 732, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1286:7:7", @@ -1314,10 +1315,10 @@ }, { "constant": false, - "id": 3548, + "id": 735, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3568, + "scope": 755, "src": "1297:9:7", "stateVariable": false, "storageLocation": "default", @@ -1326,7 +1327,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3547, + "id": 734, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1297:7:7", @@ -1343,15 +1344,15 @@ }, "payable": false, "returnParameters": { - "id": 3552, + "id": 739, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3551, + "id": 738, "name": "", "nodeType": "VariableDeclaration", - "scope": 3568, + "scope": 755, "src": "1331:7:7", "stateVariable": false, "storageLocation": "default", @@ -1360,7 +1361,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3550, + "id": 737, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1331:7:7", @@ -1375,7 +1376,7 @@ ], "src": "1330:9:7" }, - "scope": 3589, + "scope": 776, "src": "1273:131:7", "stateMutability": "pure", "superFunction": null, @@ -1383,7 +1384,7 @@ }, { "body": { - "id": 3587, + "id": 774, "nodeType": "Block", "src": "1603:44:7", "statements": [ @@ -1397,18 +1398,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3580, + "id": 767, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3578, + "id": 765, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3572, + "referencedDeclaration": 759, "src": "1617:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1420,7 +1421,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 3579, + "id": 766, "isConstant": false, "isLValue": false, "isPure": true, @@ -1449,21 +1450,21 @@ "typeString": "bool" } ], - "id": 3577, + "id": 764, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 4201, - 4202 + 1450, + 1451 ], - "referencedDeclaration": 4201, + "referencedDeclaration": 1450, "src": "1609:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 3581, + "id": 768, "isConstant": false, "isLValue": false, "isPure": false, @@ -1477,7 +1478,7 @@ "typeString": "tuple()" } }, - "id": 3582, + "id": 769, "nodeType": "ExpressionStatement", "src": "1609:15:7" }, @@ -1488,18 +1489,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3585, + "id": 772, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 3583, + "id": 770, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3570, + "referencedDeclaration": 757, "src": "1637:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1510,11 +1511,11 @@ "operator": "%", "rightExpression": { "argumentTypes": null, - "id": 3584, + "id": 771, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3572, + "referencedDeclaration": 759, "src": "1641:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1527,15 +1528,15 @@ "typeString": "uint256" } }, - "functionReturnParameters": 3576, - "id": 3586, + "functionReturnParameters": 763, + "id": 773, "nodeType": "Return", "src": "1630:12:7" } ] }, "documentation": "@dev Divides two numbers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.", - "id": 3588, + "id": 775, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1543,15 +1544,15 @@ "name": "mod", "nodeType": "FunctionDefinition", "parameters": { - "id": 3573, + "id": 760, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3570, + "id": 757, "name": "a", "nodeType": "VariableDeclaration", - "scope": 3588, + "scope": 775, "src": "1549:9:7", "stateVariable": false, "storageLocation": "default", @@ -1560,7 +1561,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3569, + "id": 756, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1549:7:7", @@ -1574,10 +1575,10 @@ }, { "constant": false, - "id": 3572, + "id": 759, "name": "b", "nodeType": "VariableDeclaration", - "scope": 3588, + "scope": 775, "src": "1560:9:7", "stateVariable": false, "storageLocation": "default", @@ -1586,7 +1587,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3571, + "id": 758, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1560:7:7", @@ -1603,15 +1604,15 @@ }, "payable": false, "returnParameters": { - "id": 3576, + "id": 763, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3575, + "id": 762, "name": "", "nodeType": "VariableDeclaration", - "scope": 3588, + "scope": 775, "src": "1594:7:7", "stateVariable": false, "storageLocation": "default", @@ -1620,7 +1621,7 @@ "typeString": "uint256" }, "typeName": { - "id": 3574, + "id": 761, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1594:7:7", @@ -1635,1665 +1636,1795 @@ ], "src": "1593:9:7" }, - "scope": 3589, + "scope": 776, "src": "1536:111:7", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 3590, + "scope": 777, "src": "118:1531:7" } ], "src": "0:1650:7" }, "legacyAST": { - "absolutePath": "openzeppelin-eth/contracts/math/SafeMath.sol", - "exportedSymbols": { - "SafeMath": [ - 3589 - ] + "attributes": { + "absolutePath": "openzeppelin-eth/contracts/math/SafeMath.sol", + "exportedSymbols": { + "SafeMath": [ + 776 + ] + } }, - "id": 3590, - "nodeType": "SourceUnit", - "nodes": [ + "children": [ { - "id": 3463, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", + "attributes": { + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ] + }, + "id": 650, + "name": "PragmaDirective", "src": "0:24:7" }, { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title SafeMath\n@dev Math operations with safety checks that revert on error", - "fullyImplemented": true, - "id": 3589, - "linearizedBaseContracts": [ - 3589 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ + "attributes": { + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "documentation": "@title SafeMath\n@dev Math operations with safety checks that revert on error", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 776 + ], + "name": "SafeMath", + "scope": 777 + }, + "children": [ { - "body": { - "id": 3495, - "nodeType": "Block", - "src": "272:314:7", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3472, + "attributes": { + "constant": true, + "documentation": "@dev Multiplies two numbers, reverts on overflow.", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "mul", + "payable": false, + "scope": 776, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "487:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3473, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "492:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "scope": 683, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" }, - "src": "487:6:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3478, - "nodeType": "IfStatement", - "src": "483:35:7", - "trueBody": { - "id": 3477, - "nodeType": "Block", - "src": "495:23:7", - "statements": [ + "children": [ { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3475, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "510:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "attributes": { + "name": "uint256", + "type": "uint256" }, - "functionReturnParameters": 3471, - "id": 3476, - "nodeType": "Return", - "src": "503:8:7" + "id": 651, + "name": "ElementaryTypeName", + "src": "218:7:7" } - ] - } - }, - { - "assignments": [ - 3480 - ], - "declarations": [ - { + ], + "id": 652, + "name": "VariableDeclaration", + "src": "218:9:7" + }, + { + "attributes": { "constant": false, - "id": 3480, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3496, - "src": "524:9:7", + "name": "b", + "scope": 683, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3479, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "524:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + "type": "uint256", "value": null, "visibility": "internal" - } - ], - "id": 3484, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" }, - "id": 3483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3481, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "536:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 653, + "name": "ElementaryTypeName", + "src": "229:7:7" } + ], + "id": 654, + "name": "VariableDeclaration", + "src": "229:9:7" + } + ], + "id": 655, + "name": "ParameterList", + "src": "217:22:7" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 683, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 3482, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "540:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 656, + "name": "ElementaryTypeName", + "src": "263:7:7" } + ], + "id": 657, + "name": "VariableDeclaration", + "src": "263:7:7" + } + ], + "id": 658, + "name": "ParameterList", + "src": "262:9:7" + }, + { + "children": [ + { + "attributes": { + "falseBody": null }, - "src": "536:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "524:17:7" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + "children": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "attributes": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3488, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3486, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3480, - "src": "555:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3487, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "559:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 652, + "type": "uint256", + "value": "a" + }, + "id": 659, + "name": "Identifier", + "src": "487:1:7" }, - "src": "555:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 660, + "name": "Literal", + "src": "492:1:7" + } + ], + "id": 661, + "name": "BinaryOperation", + "src": "487:6:7" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 658 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 662, + "name": "Literal", + "src": "510:1:7" + } + ], + "id": 663, + "name": "Return", + "src": "503:8:7" } + ], + "id": 664, + "name": "Block", + "src": "495:23:7" + } + ], + "id": 665, + "name": "IfStatement", + "src": "483:35:7" + }, + { + "attributes": { + "assignments": [ + 667 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "c", + "scope": 683, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 666, + "name": "ElementaryTypeName", + "src": "524:7:7" + } + ], + "id": 667, + "name": "VariableDeclaration", + "src": "524:9:7" + }, + { + "attributes": { "argumentTypes": null, - "id": 3489, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "564:1:7", - "typeDescriptions": { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" }, - "src": "555:10:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3485, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4201, - "src": "547:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "547:19:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3492, - "nodeType": "ExpressionStatement", - "src": "547:19:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 3493, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3480, - "src": "580:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3471, - "id": 3494, - "nodeType": "Return", - "src": "573:8:7" - } - ] - }, - "documentation": "@dev Multiplies two numbers, reverts on overflow.", - "id": 3496, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3468, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3465, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3496, - "src": "218:9:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3464, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "218:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3467, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3496, - "src": "229:9:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3466, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "229:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "217:22:7" - }, - "payable": false, - "returnParameters": { - "id": 3471, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3470, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3496, - "src": "263:7:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3469, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "263:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "262:9:7" - }, - "scope": 3589, - "src": "205:381:7", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3519, - "nodeType": "Block", - "src": "763:203:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3506, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3500, - "src": "777:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "781:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "777:5:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3505, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4201, - "src": "769:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "769:14:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3510, - "nodeType": "ExpressionStatement", - "src": "769:14:7" - }, - { - "assignments": [ - 3512 - ], - "declarations": [ - { - "constant": false, - "id": 3512, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3520, - "src": "847:9:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3511, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "847:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3516, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3513, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3498, - "src": "859:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3514, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3500, - "src": "863:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "859:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "847:17:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 3517, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3512, - "src": "960:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3504, - "id": 3518, - "nodeType": "Return", - "src": "953:8:7" - } - ] - }, - "documentation": "@dev Integer division of two numbers truncating the quotient, reverts on division by zero.", - "id": 3520, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3501, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3498, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3520, - "src": "709:9:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3497, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "709:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3500, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3520, - "src": "720:9:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3499, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "720:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "708:22:7" - }, - "payable": false, - "returnParameters": { - "id": 3504, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3503, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3520, - "src": "754:7:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3502, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "754:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "753:9:7" - }, - "scope": 3589, - "src": "696:270:7", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3543, - "nodeType": "Block", - "src": "1146:64:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3530, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3524, - "src": "1160:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3531, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3522, - "src": "1165:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1160:6:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3529, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4201, - "src": "1152:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3533, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1152:15:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3534, - "nodeType": "ExpressionStatement", - "src": "1152:15:7" - }, - { - "assignments": [ - 3536 - ], - "declarations": [ - { - "constant": false, - "id": 3536, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3544, - "src": "1173:9:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3535, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1173:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3540, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3537, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3522, - "src": "1185:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3538, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3524, - "src": "1189:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1185:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1173:17:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 3541, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3536, - "src": "1204:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3528, - "id": 3542, - "nodeType": "Return", - "src": "1197:8:7" - } - ] - }, - "documentation": "@dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).", - "id": 3544, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3525, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3522, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3544, - "src": "1092:9:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3521, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1092:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3524, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3544, - "src": "1103:9:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 652, + "type": "uint256", + "value": "a" + }, + "id": 668, + "name": "Identifier", + "src": "536:1:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 654, + "type": "uint256", + "value": "b" + }, + "id": 669, + "name": "Identifier", + "src": "540:1:7" + } + ], + "id": 670, + "name": "BinaryOperation", + "src": "536:5:7" + } + ], + "id": 671, + "name": "VariableDeclarationStatement", + "src": "524:17:7" }, - "typeName": { - "id": 3523, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1103:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1450, + "type": "function (bool) pure", + "value": "require" + }, + "id": 672, + "name": "Identifier", + "src": "547:7:7" + }, + { + "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": 667, + "type": "uint256", + "value": "c" + }, + "id": 673, + "name": "Identifier", + "src": "555:1:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 652, + "type": "uint256", + "value": "a" + }, + "id": 674, + "name": "Identifier", + "src": "559:1:7" + } + ], + "id": 675, + "name": "BinaryOperation", + "src": "555:5:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 654, + "type": "uint256", + "value": "b" + }, + "id": 676, + "name": "Identifier", + "src": "564:1:7" + } + ], + "id": 677, + "name": "BinaryOperation", + "src": "555:10:7" + } + ], + "id": 678, + "name": "FunctionCall", + "src": "547:19:7" + } + ], + "id": 679, + "name": "ExpressionStatement", + "src": "547:19:7" }, - "value": null, - "visibility": "internal" - } + { + "attributes": { + "functionReturnParameters": 658 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 667, + "type": "uint256", + "value": "c" + }, + "id": 680, + "name": "Identifier", + "src": "580:1:7" + } + ], + "id": 681, + "name": "Return", + "src": "573:8:7" + } + ], + "id": 682, + "name": "Block", + "src": "272:314:7" + } + ], + "id": 683, + "name": "FunctionDefinition", + "src": "205:381:7" + }, + { + "attributes": { + "constant": true, + "documentation": "@dev Integer division of two numbers truncating the quotient, reverts on division by zero.", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null ], - "src": "1091:22:7" + "name": "div", + "payable": false, + "scope": 776, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" }, - "payable": false, - "returnParameters": { - "id": 3528, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3527, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3544, - "src": "1137:7:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 707, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 684, + "name": "ElementaryTypeName", + "src": "709:7:7" + } + ], + "id": 685, + "name": "VariableDeclaration", + "src": "709:9:7" }, - "typeName": { - "id": 3526, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1137:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + { + "attributes": { + "constant": false, + "name": "b", + "scope": 707, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 686, + "name": "ElementaryTypeName", + "src": "720:7:7" + } + ], + "id": 687, + "name": "VariableDeclaration", + "src": "720:9:7" + } + ], + "id": 688, + "name": "ParameterList", + "src": "708:22:7" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 707, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 689, + "name": "ElementaryTypeName", + "src": "754:7:7" + } + ], + "id": 690, + "name": "VariableDeclaration", + "src": "754:7:7" + } + ], + "id": 691, + "name": "ParameterList", + "src": "753:9:7" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1450, + "type": "function (bool) pure", + "value": "require" + }, + "id": 692, + "name": "Identifier", + "src": "769:7:7" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 687, + "type": "uint256", + "value": "b" + }, + "id": 693, + "name": "Identifier", + "src": "777:1:7" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 694, + "name": "Literal", + "src": "781:1:7" + } + ], + "id": 695, + "name": "BinaryOperation", + "src": "777:5:7" + } + ], + "id": 696, + "name": "FunctionCall", + "src": "769:14:7" + } + ], + "id": 697, + "name": "ExpressionStatement", + "src": "769:14:7" + }, + { + "attributes": { + "assignments": [ + 699 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "c", + "scope": 707, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 698, + "name": "ElementaryTypeName", + "src": "847:7:7" + } + ], + "id": 699, + "name": "VariableDeclaration", + "src": "847:9:7" + }, + { + "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": 685, + "type": "uint256", + "value": "a" + }, + "id": 700, + "name": "Identifier", + "src": "859:1:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 687, + "type": "uint256", + "value": "b" + }, + "id": 701, + "name": "Identifier", + "src": "863:1:7" + } + ], + "id": 702, + "name": "BinaryOperation", + "src": "859:5:7" + } + ], + "id": 703, + "name": "VariableDeclarationStatement", + "src": "847:17:7" }, - "value": null, - "visibility": "internal" - } - ], - "src": "1136:9:7" - }, - "scope": 3589, - "src": "1079:131:7", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" + { + "attributes": { + "functionReturnParameters": 691 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 699, + "type": "uint256", + "value": "c" + }, + "id": 704, + "name": "Identifier", + "src": "960:1:7" + } + ], + "id": 705, + "name": "Return", + "src": "953:8:7" + } + ], + "id": 706, + "name": "Block", + "src": "763:203:7" + } + ], + "id": 707, + "name": "FunctionDefinition", + "src": "696:270:7" }, { - "body": { - "id": 3567, - "nodeType": "Block", - "src": "1340:64:7", - "statements": [ - { - "assignments": [ - 3554 - ], - "declarations": [ - { + "attributes": { + "constant": true, + "documentation": "@dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "sub", + "payable": false, + "scope": 776, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { "constant": false, - "id": 3554, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 3568, - "src": "1346:9:7", + "name": "a", + "scope": 731, "stateVariable": false, "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3553, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1346:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, + "type": "uint256", "value": null, "visibility": "internal" - } - ], - "id": 3558, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" }, - "id": 3557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3555, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3546, - "src": "1358:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 708, + "name": "ElementaryTypeName", + "src": "1092:7:7" } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 3556, + ], + "id": 709, + "name": "VariableDeclaration", + "src": "1092:9:7" + }, + { + "attributes": { + "constant": false, "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3548, - "src": "1362:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "scope": 731, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 710, + "name": "ElementaryTypeName", + "src": "1103:7:7" } + ], + "id": 711, + "name": "VariableDeclaration", + "src": "1103:9:7" + } + ], + "id": 712, + "name": "ParameterList", + "src": "1091:22:7" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 731, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" }, - "src": "1358:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1346:17:7" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ + "children": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "attributes": { + "name": "uint256", + "type": "uint256" }, - "id": 3562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "id": 713, + "name": "ElementaryTypeName", + "src": "1137:7:7" + } + ], + "id": 714, + "name": "VariableDeclaration", + "src": "1137:7:7" + } + ], + "id": 715, + "name": "ParameterList", + "src": "1136:9:7" + }, + { + "children": [ + { + "children": [ + { + "attributes": { "argumentTypes": null, - "id": 3560, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3554, - "src": "1377:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1450, + "type": "function (bool) pure", + "value": "require" + }, + "id": 716, + "name": "Identifier", + "src": "1152:7:7" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 711, + "type": "uint256", + "value": "b" + }, + "id": 717, + "name": "Identifier", + "src": "1160:1:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 709, + "type": "uint256", + "value": "a" + }, + "id": 718, + "name": "Identifier", + "src": "1165:1:7" + } + ], + "id": 719, + "name": "BinaryOperation", + "src": "1160:6:7" } + ], + "id": 720, + "name": "FunctionCall", + "src": "1152:15:7" + } + ], + "id": 721, + "name": "ExpressionStatement", + "src": "1152:15:7" + }, + { + "attributes": { + "assignments": [ + 723 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "c", + "scope": 731, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 722, + "name": "ElementaryTypeName", + "src": "1173:7:7" + } + ], + "id": 723, + "name": "VariableDeclaration", + "src": "1173:9:7" + }, + { + "attributes": { "argumentTypes": null, - "id": 3561, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3546, - "src": "1382:1:7", - "typeDescriptions": { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" }, - "src": "1377:6:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 709, + "type": "uint256", + "value": "a" + }, + "id": 724, + "name": "Identifier", + "src": "1185:1:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 711, + "type": "uint256", + "value": "b" + }, + "id": 725, + "name": "Identifier", + "src": "1189:1:7" + } + ], + "id": 726, + "name": "BinaryOperation", + "src": "1185:5:7" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3559, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4201, - "src": "1369:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1369:15:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3564, - "nodeType": "ExpressionStatement", - "src": "1369:15:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 3565, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3554, - "src": "1398:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3552, - "id": 3566, - "nodeType": "Return", - "src": "1391:8:7" - } - ] - }, - "documentation": "@dev Adds two numbers, reverts on overflow.", - "id": 3568, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3549, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3546, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3568, - "src": "1286:9:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3545, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1286:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3548, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3568, - "src": "1297:9:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3547, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1297:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "id": 727, + "name": "VariableDeclarationStatement", + "src": "1173:17:7" }, - "value": null, - "visibility": "internal" - } + { + "attributes": { + "functionReturnParameters": 715 + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 723, + "type": "uint256", + "value": "c" + }, + "id": 728, + "name": "Identifier", + "src": "1204:1:7" + } + ], + "id": 729, + "name": "Return", + "src": "1197:8:7" + } + ], + "id": 730, + "name": "Block", + "src": "1146:64:7" + } + ], + "id": 731, + "name": "FunctionDefinition", + "src": "1079:131:7" + }, + { + "attributes": { + "constant": true, + "documentation": "@dev Adds two numbers, reverts on overflow.", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null ], - "src": "1285:22:7" + "name": "add", + "payable": false, + "scope": 776, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" }, - "payable": false, - "returnParameters": { - "id": 3552, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3551, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3568, - "src": "1331:7:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3550, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1331:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 755, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 732, + "name": "ElementaryTypeName", + "src": "1286:7:7" + } + ], + "id": 733, + "name": "VariableDeclaration", + "src": "1286:9:7" }, - "value": null, - "visibility": "internal" - } - ], - "src": "1330:9:7" - }, - "scope": 3589, - "src": "1273:131:7", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 3587, - "nodeType": "Block", - "src": "1603:44:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ + { + "attributes": { + "constant": false, + "name": "b", + "scope": 755, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "attributes": { + "name": "uint256", + "type": "uint256" }, - "id": 3580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "id": 734, + "name": "ElementaryTypeName", + "src": "1297:7:7" + } + ], + "id": 735, + "name": "VariableDeclaration", + "src": "1297:9:7" + } + ], + "id": 736, + "name": "ParameterList", + "src": "1285:22:7" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 755, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 737, + "name": "ElementaryTypeName", + "src": "1331:7:7" + } + ], + "id": 738, + "name": "VariableDeclaration", + "src": "1331:7:7" + } + ], + "id": 739, + "name": "ParameterList", + "src": "1330:9:7" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 741 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "name": "c", + "scope": 755, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 740, + "name": "ElementaryTypeName", + "src": "1346:7:7" + } + ], + "id": 741, + "name": "VariableDeclaration", + "src": "1346:9:7" + }, + { + "attributes": { "argumentTypes": null, - "id": 3578, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3572, - "src": "1617:1:7", - "typeDescriptions": { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 733, + "type": "uint256", + "value": "a" + }, + "id": 742, + "name": "Identifier", + "src": "1358:1:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 735, + "type": "uint256", + "value": "b" + }, + "id": 743, + "name": "Identifier", + "src": "1362:1:7" + } + ], + "id": 744, + "name": "BinaryOperation", + "src": "1358:5:7" + } + ], + "id": 745, + "name": "VariableDeclarationStatement", + "src": "1346:17:7" + }, + { + "children": [ + { + "attributes": { "argumentTypes": null, - "hexValue": "30", - "id": 3579, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "isStructConstructorCall": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "1622:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false }, - "src": "1617:6:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1450, + "type": "function (bool) pure", + "value": "require" + }, + "id": 746, + "name": "Identifier", + "src": "1369:7:7" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 741, + "type": "uint256", + "value": "c" + }, + "id": 747, + "name": "Identifier", + "src": "1377:1:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 733, + "type": "uint256", + "value": "a" + }, + "id": 748, + "name": "Identifier", + "src": "1382:1:7" + } + ], + "id": 749, + "name": "BinaryOperation", + "src": "1377:6:7" + } + ], + "id": 750, + "name": "FunctionCall", + "src": "1369:15:7" } ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3577, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4201, - 4202 - ], - "referencedDeclaration": 4201, - "src": "1609:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1609:15:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } + "id": 751, + "name": "ExpressionStatement", + "src": "1369:15:7" }, - "id": 3582, - "nodeType": "ExpressionStatement", - "src": "1609:15:7" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "attributes": { + "functionReturnParameters": 739 }, - "id": 3585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3583, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3570, - "src": "1637:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 741, + "type": "uint256", + "value": "c" + }, + "id": 752, + "name": "Identifier", + "src": "1398:1:7" } + ], + "id": 753, + "name": "Return", + "src": "1391:8:7" + } + ], + "id": 754, + "name": "Block", + "src": "1340:64:7" + } + ], + "id": 755, + "name": "FunctionDefinition", + "src": "1273:131:7" + }, + { + "attributes": { + "constant": true, + "documentation": "@dev Divides two numbers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.", + "implemented": true, + "isConstructor": false, + "modifiers": [ + null + ], + "name": "mod", + "payable": false, + "scope": 776, + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "name": "a", + "scope": 775, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 3584, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 756, + "name": "ElementaryTypeName", + "src": "1549:7:7" + } + ], + "id": 757, + "name": "VariableDeclaration", + "src": "1549:9:7" + }, + { + "attributes": { + "constant": false, "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3572, - "src": "1641:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "scope": 775, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 758, + "name": "ElementaryTypeName", + "src": "1560:7:7" } + ], + "id": 759, + "name": "VariableDeclaration", + "src": "1560:9:7" + } + ], + "id": 760, + "name": "ParameterList", + "src": "1548:22:7" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "name": "", + "scope": 775, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "value": null, + "visibility": "internal" }, - "src": "1637:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3576, - "id": 3586, - "nodeType": "Return", - "src": "1630:12:7" - } - ] - }, - "documentation": "@dev Divides two numbers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.", - "id": 3588, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3573, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3570, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 3588, - "src": "1549:9:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3569, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1549:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3572, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 3588, - "src": "1560:9:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3571, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1560:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1548:22:7" - }, - "payable": false, - "returnParameters": { - "id": 3576, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3575, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3588, - "src": "1594:7:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3574, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1594:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 761, + "name": "ElementaryTypeName", + "src": "1594:7:7" + } + ], + "id": 762, + "name": "VariableDeclaration", + "src": "1594:7:7" + } + ], + "id": 763, + "name": "ParameterList", + "src": "1593:9:7" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "argumentTypes": null, + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 1450, + 1451 + ], + "referencedDeclaration": 1450, + "type": "function (bool) pure", + "value": "require" + }, + "id": 764, + "name": "Identifier", + "src": "1609:7:7" + }, + { + "attributes": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 759, + "type": "uint256", + "value": "b" + }, + "id": 765, + "name": "Identifier", + "src": "1617:1:7" + }, + { + "attributes": { + "argumentTypes": null, + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "subdenomination": null, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 766, + "name": "Literal", + "src": "1622:1:7" + } + ], + "id": 767, + "name": "BinaryOperation", + "src": "1617:6:7" + } + ], + "id": 768, + "name": "FunctionCall", + "src": "1609:15:7" + } + ], + "id": 769, + "name": "ExpressionStatement", + "src": "1609:15:7" }, - "value": null, - "visibility": "internal" - } - ], - "src": "1593:9:7" - }, - "scope": 3589, - "src": "1536:111:7", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" + { + "attributes": { + "functionReturnParameters": 763 + }, + "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": 757, + "type": "uint256", + "value": "a" + }, + "id": 770, + "name": "Identifier", + "src": "1637:1:7" + }, + { + "attributes": { + "argumentTypes": null, + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 759, + "type": "uint256", + "value": "b" + }, + "id": 771, + "name": "Identifier", + "src": "1641:1:7" + } + ], + "id": 772, + "name": "BinaryOperation", + "src": "1637:5:7" + } + ], + "id": 773, + "name": "Return", + "src": "1630:12:7" + } + ], + "id": 774, + "name": "Block", + "src": "1603:44:7" + } + ], + "id": 775, + "name": "FunctionDefinition", + "src": "1536:111:7" } ], - "scope": 3590, + "id": 776, + "name": "ContractDefinition", "src": "118:1531:7" } ], + "id": 777, + "name": "SourceUnit", "src": "0:1650:7" }, "compiler": { "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" + "version": "0.4.25+commit.59dbf8f1.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.1", - "updatedAt": "2019-08-15T18:51:44.480Z" + "schemaVersion": "3.3.4", + "updatedAt": "2021-04-02T09:51:14.575Z", + "devdoc": { + "methods": {}, + "title": "SafeMath" + }, + "userdoc": { + "methods": {} + } } \ No newline at end of file diff --git a/contracts/token/ERC865Token.sol b/contracts/token/ERC865Token.sol index b564d0b3..f92355b8 100644 --- a/contracts/token/ERC865Token.sol +++ b/contracts/token/ERC865Token.sol @@ -1,5 +1,7 @@ pragma solidity ^0.4.24; - +/* + THIS CONTRACT IS OBSOLETE AND REMAINS ONLY FOR UPGRADABILITY/STORAGE CONSIDERATIONS +*/ import "zos-lib/contracts/Initializable.sol"; import "openzeppelin-eth/contracts/token/ERC20/ERC20.sol"; import { ECDSA } from "openzeppelin-eth/contracts/cryptography/ECDSA.sol"; @@ -17,301 +19,301 @@ contract ERC865Token is Initializable, ERC20, IERC865 { /* hashed tx of transfers performed */ mapping(bytes32 => bool) hashedTxs; - /** - * @dev Submit a presigned transfer - * @notice fee will be given to sender if it's a smart contract make sure it can accept funds - * @param _signature bytes The signature, issued by the owner. - * @param _to address The address which you want to transfer to. - * @param _value uint256 The amount of tokens to be transferred. - * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner. - * @param _nonce uint256 Presigned transaction number. - */ - function transferPreSigned( - bytes _signature, - address _to, - uint256 _value, - uint256 _fee, - uint256 _nonce - ) - public - returns (bool) - { - require(_to != address(0), "Invalid _to address"); + // /** + // * @dev Submit a presigned transfer + // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds + // * @param _signature bytes The signature, issued by the owner. + // * @param _to address The address which you want to transfer to. + // * @param _value uint256 The amount of tokens to be transferred. + // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner. + // * @param _nonce uint256 Presigned transaction number. + // */ + // function transferPreSigned( + // bytes _signature, + // address _to, + // uint256 _value, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // returns (bool) + // { + // require(_to != address(0), "Invalid _to address"); - bytes32 hashedParams = getTransferPreSignedHash(address(this), _to, _value, _fee, _nonce); - address from = ECDSA.recover(hashedParams, _signature); - require(from != address(0), "Invalid from address recovered"); - bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams)); - require(hashedTxs[hashedTx] == false,"Transaction hash was already used"); - hashedTxs[hashedTx] = true; - _transfer(from, _to, _value); - _transfer(from, msg.sender, _fee); + // bytes32 hashedParams = getTransferPreSignedHash(address(this), _to, _value, _fee, _nonce); + // address from = ECDSA.recover(hashedParams, _signature); + // require(from != address(0), "Invalid from address recovered"); + // bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams)); + // require(hashedTxs[hashedTx] == false,"Transaction hash was already used"); + // hashedTxs[hashedTx] = true; + // _transfer(from, _to, _value); + // _transfer(from, msg.sender, _fee); - emit TransferPreSigned(from, _to, msg.sender, _value, _fee); - return true; - } + // emit TransferPreSigned(from, _to, msg.sender, _value, _fee); + // return true; + // } - /** - * @dev Submit a presigned approval - * @notice fee will be given to sender if it's a smart contract make sure it can accept funds - * @param _signature bytes The signature, issued by the owner. - * @param _spender address The address which will spend the funds. - * @param _value uint256 The amount of tokens to allow. - * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner. - * @param _nonce uint256 Presigned transaction number. - */ - function approvePreSigned( - bytes _signature, - address _spender, - uint256 _value, - uint256 _fee, - uint256 _nonce - ) - public - returns (bool) - { - require(_spender != address(0),"Invalid _spender address"); + // /** + // * @dev Submit a presigned approval + // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds + // * @param _signature bytes The signature, issued by the owner. + // * @param _spender address The address which will spend the funds. + // * @param _value uint256 The amount of tokens to allow. + // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner. + // * @param _nonce uint256 Presigned transaction number. + // */ + // function approvePreSigned( + // bytes _signature, + // address _spender, + // uint256 _value, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // returns (bool) + // { + // require(_spender != address(0),"Invalid _spender address"); - bytes32 hashedParams = getApprovePreSignedHash(address(this), _spender, _value, _fee, _nonce); - address from = ECDSA.recover(hashedParams, _signature); - require(from != address(0),"Invalid from address recovered"); - bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams)); - require(hashedTxs[hashedTx] == false,"Transaction hash was already used"); - hashedTxs[hashedTx] = true; - _approve(from, _spender, _value); - _transfer(from, msg.sender, _fee); + // bytes32 hashedParams = getApprovePreSignedHash(address(this), _spender, _value, _fee, _nonce); + // address from = ECDSA.recover(hashedParams, _signature); + // require(from != address(0),"Invalid from address recovered"); + // bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams)); + // require(hashedTxs[hashedTx] == false,"Transaction hash was already used"); + // hashedTxs[hashedTx] = true; + // _approve(from, _spender, _value); + // _transfer(from, msg.sender, _fee); - emit ApprovalPreSigned(from, _spender, msg.sender, _value, _fee); - return true; - } + // emit ApprovalPreSigned(from, _spender, msg.sender, _value, _fee); + // return true; + // } - /** - * @dev Increase the amount of tokens that an owner allowed to a spender. - * @notice fee will be given to sender if it's a smart contract make sure it can accept funds - * @param _signature bytes The signature, issued by the owner. - * @param _spender address The address which will spend the funds. - * @param _addedValue uint256 The amount of tokens to increase the allowance by. - * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner. - * @param _nonce uint256 Presigned transaction number. - */ - function increaseAllowancePreSigned( - bytes _signature, - address _spender, - uint256 _addedValue, - uint256 _fee, - uint256 _nonce - ) - public - returns (bool) - { - require(_spender != address(0),"Invalid _spender address"); + // /** + // * @dev Increase the amount of tokens that an owner allowed to a spender. + // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds + // * @param _signature bytes The signature, issued by the owner. + // * @param _spender address The address which will spend the funds. + // * @param _addedValue uint256 The amount of tokens to increase the allowance by. + // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner. + // * @param _nonce uint256 Presigned transaction number. + // */ + // function increaseAllowancePreSigned( + // bytes _signature, + // address _spender, + // uint256 _addedValue, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // returns (bool) + // { + // require(_spender != address(0),"Invalid _spender address"); - bytes32 hashedParams = getIncreaseAllowancePreSignedHash(address(this), _spender, _addedValue, _fee, _nonce); - address from = ECDSA.recover(hashedParams, _signature); - require(from != address(0),"Invalid from address recovered"); - bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams)); - require(hashedTxs[hashedTx] == false,"Transaction hash was already used"); - hashedTxs[hashedTx] = true; - _approve(from, _spender, allowance(from, _spender).add(_addedValue)); - _transfer(from, msg.sender, _fee); + // bytes32 hashedParams = getIncreaseAllowancePreSignedHash(address(this), _spender, _addedValue, _fee, _nonce); + // address from = ECDSA.recover(hashedParams, _signature); + // require(from != address(0),"Invalid from address recovered"); + // bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams)); + // require(hashedTxs[hashedTx] == false,"Transaction hash was already used"); + // hashedTxs[hashedTx] = true; + // _approve(from, _spender, allowance(from, _spender).add(_addedValue)); + // _transfer(from, msg.sender, _fee); - emit ApprovalPreSigned(from, _spender, msg.sender, allowance(from, _spender), _fee); - return true; - } + // emit ApprovalPreSigned(from, _spender, msg.sender, allowance(from, _spender), _fee); + // return true; + // } - /** - * @dev Decrease the amount of tokens that an owner allowed to a spender. - * @notice fee will be given to sender if it's a smart contract make sure it can accept funds - * @param _signature bytes The signature, issued by the owner - * @param _spender address The address which will spend the funds. - * @param _subtractedValue uint256 The amount of tokens to decrease the allowance by. - * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner. - * @param _nonce uint256 Presigned transaction number. - */ - function decreaseAllowancePreSigned( - bytes _signature, - address _spender, - uint256 _subtractedValue, - uint256 _fee, - uint256 _nonce - ) - public - returns (bool) - { - require(_spender != address(0),"Invalid _spender address"); + // /** + // * @dev Decrease the amount of tokens that an owner allowed to a spender. + // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds + // * @param _signature bytes The signature, issued by the owner + // * @param _spender address The address which will spend the funds. + // * @param _subtractedValue uint256 The amount of tokens to decrease the allowance by. + // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner. + // * @param _nonce uint256 Presigned transaction number. + // */ + // function decreaseAllowancePreSigned( + // bytes _signature, + // address _spender, + // uint256 _subtractedValue, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // returns (bool) + // { + // require(_spender != address(0),"Invalid _spender address"); - bytes32 hashedParams = getDecreaseAllowancePreSignedHash(address(this), _spender, _subtractedValue, _fee, _nonce); - address from = ECDSA.recover(hashedParams, _signature); - require(from != address(0),"Invalid from address recovered"); - bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams)); - require(hashedTxs[hashedTx] == false,"Transaction hash was already used"); - // if substractedValue is greater than allowance will fail as allowance is uint256 - hashedTxs[hashedTx] = true; - _approve(from, _spender, allowance(from,_spender).sub(_subtractedValue)); - _transfer(from, msg.sender, _fee); + // bytes32 hashedParams = getDecreaseAllowancePreSignedHash(address(this), _spender, _subtractedValue, _fee, _nonce); + // address from = ECDSA.recover(hashedParams, _signature); + // require(from != address(0),"Invalid from address recovered"); + // bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams)); + // require(hashedTxs[hashedTx] == false,"Transaction hash was already used"); + // // if substractedValue is greater than allowance will fail as allowance is uint256 + // hashedTxs[hashedTx] = true; + // _approve(from, _spender, allowance(from,_spender).sub(_subtractedValue)); + // _transfer(from, msg.sender, _fee); - emit ApprovalPreSigned(from, _spender, msg.sender, allowance(from, _spender), _fee); - return true; - } + // emit ApprovalPreSigned(from, _spender, msg.sender, allowance(from, _spender), _fee); + // return true; + // } - /** - * @dev Transfer tokens from one address to another - * @notice fee will be given to sender if it's a smart contract make sure it can accept funds - * @param _signature bytes The signature, issued by the spender. - * @param _from address The address which you want to send tokens from. - * @param _to address The address which you want to transfer to. - * @param _value uint256 The amount of tokens to be transferred. - * @param _fee uint256 The amount of tokens paid to msg.sender, by the spender. - * @param _nonce uint256 Presigned transaction number. - */ - function transferFromPreSigned( - bytes _signature, - address _from, - address _to, - uint256 _value, - uint256 _fee, - uint256 _nonce - ) - public - returns (bool) - { - require(_to != address(0),"Invalid _to address"); + // /** + // * @dev Transfer tokens from one address to another + // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds + // * @param _signature bytes The signature, issued by the spender. + // * @param _from address The address which you want to send tokens from. + // * @param _to address The address which you want to transfer to. + // * @param _value uint256 The amount of tokens to be transferred. + // * @param _fee uint256 The amount of tokens paid to msg.sender, by the spender. + // * @param _nonce uint256 Presigned transaction number. + // */ + // function transferFromPreSigned( + // bytes _signature, + // address _from, + // address _to, + // uint256 _value, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // returns (bool) + // { + // require(_to != address(0),"Invalid _to address"); - bytes32 hashedParams = getTransferFromPreSignedHash(address(this), _from, _to, _value, _fee, _nonce); + // bytes32 hashedParams = getTransferFromPreSignedHash(address(this), _from, _to, _value, _fee, _nonce); - address spender = ECDSA.recover(hashedParams, _signature); - require(spender != address(0),"Invalid spender address recovered"); - bytes32 hashedTx = keccak256(abi.encodePacked(spender, hashedParams)); - require(hashedTxs[hashedTx] == false,"Transaction hash was already used"); - hashedTxs[hashedTx] = true; - _transfer(_from, _to, _value); - _approve(_from, spender, allowance(_from, spender).sub(_value)); - _transfer(spender, msg.sender, _fee); + // address spender = ECDSA.recover(hashedParams, _signature); + // require(spender != address(0),"Invalid spender address recovered"); + // bytes32 hashedTx = keccak256(abi.encodePacked(spender, hashedParams)); + // require(hashedTxs[hashedTx] == false,"Transaction hash was already used"); + // hashedTxs[hashedTx] = true; + // _transfer(_from, _to, _value); + // _approve(_from, spender, allowance(_from, spender).sub(_value)); + // _transfer(spender, msg.sender, _fee); - emit TransferPreSigned(_from, _to, msg.sender, _value, _fee); - return true; - } + // emit TransferPreSigned(_from, _to, msg.sender, _value, _fee); + // return true; + // } - /** - * @dev Hash (keccak256) of the payload used by transferPreSigned - * @notice fee will be given to sender if it's a smart contract make sure it can accept funds - * @param _token address The address of the token. - * @param _to address The address which you want to transfer to. - * @param _value uint256 The amount of tokens to be transferred. - * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner. - * @param _nonce uint256 Presigned transaction number. - */ - function getTransferPreSignedHash( - address _token, - address _to, - uint256 _value, - uint256 _fee, - uint256 _nonce - ) - public - pure - returns (bytes32) - { - /* "0d98dcb1": getTransferPreSignedHash(address,address,uint256,uint256,uint256) */ - return keccak256(abi.encodePacked(bytes4(0x0d98dcb1), _token, _to, _value, _fee, _nonce)); - } + // /** + // * @dev Hash (keccak256) of the payload used by transferPreSigned + // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds + // * @param _token address The address of the token. + // * @param _to address The address which you want to transfer to. + // * @param _value uint256 The amount of tokens to be transferred. + // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner. + // * @param _nonce uint256 Presigned transaction number. + // */ + // function getTransferPreSignedHash( + // address _token, + // address _to, + // uint256 _value, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // pure + // returns (bytes32) + // { + // /* "0d98dcb1": getTransferPreSignedHash(address,address,uint256,uint256,uint256) */ + // return keccak256(abi.encodePacked(bytes4(0x0d98dcb1), _token, _to, _value, _fee, _nonce)); + // } - /** - * @dev Hash (keccak256) of the payload used by approvePreSigned - * @notice fee will be given to sender if it's a smart contract make sure it can accept funds - * @param _token address The address of the token - * @param _spender address The address which will spend the funds. - * @param _value uint256 The amount of tokens to allow. - * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner. - * @param _nonce uint256 Presigned transaction number. - */ - function getApprovePreSignedHash( - address _token, - address _spender, - uint256 _value, - uint256 _fee, - uint256 _nonce - ) - public - pure - returns (bytes32) - { - /* "79250dcf": getApprovePreSignedHash(address,address,uint256,uint256,uint256) */ - return keccak256(abi.encodePacked(bytes4(0x79250dcf), _token, _spender, _value, _fee, _nonce)); - } + // /** + // * @dev Hash (keccak256) of the payload used by approvePreSigned + // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds + // * @param _token address The address of the token + // * @param _spender address The address which will spend the funds. + // * @param _value uint256 The amount of tokens to allow. + // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner. + // * @param _nonce uint256 Presigned transaction number. + // */ + // function getApprovePreSignedHash( + // address _token, + // address _spender, + // uint256 _value, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // pure + // returns (bytes32) + // { + // /* "79250dcf": getApprovePreSignedHash(address,address,uint256,uint256,uint256) */ + // return keccak256(abi.encodePacked(bytes4(0x79250dcf), _token, _spender, _value, _fee, _nonce)); + // } - /** - * @dev Hash (keccak256) of the payload used by increaseAllowancePreSigned - * @notice fee will be given to sender if it's a smart contract make sure it can accept funds - * @param _token address The address of the token - * @param _spender address The address which will spend the funds. - * @param _addedValue uint256 The amount of tokens to increase the allowance by. - * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner. - * @param _nonce uint256 Presigned transaction number. - */ - function getIncreaseAllowancePreSignedHash( - address _token, - address _spender, - uint256 _addedValue, - uint256 _fee, - uint256 _nonce - ) - public - pure - returns (bytes32) - { - /* "138e8da1": getIncreaseAllowancePreSignedHash(address,address,uint256,uint256,uint256) */ - return keccak256(abi.encodePacked(bytes4(0x138e8da1), _token, _spender, _addedValue, _fee, _nonce)); - } + // /** + // * @dev Hash (keccak256) of the payload used by increaseAllowancePreSigned + // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds + // * @param _token address The address of the token + // * @param _spender address The address which will spend the funds. + // * @param _addedValue uint256 The amount of tokens to increase the allowance by. + // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner. + // * @param _nonce uint256 Presigned transaction number. + // */ + // function getIncreaseAllowancePreSignedHash( + // address _token, + // address _spender, + // uint256 _addedValue, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // pure + // returns (bytes32) + // { + // /* "138e8da1": getIncreaseAllowancePreSignedHash(address,address,uint256,uint256,uint256) */ + // return keccak256(abi.encodePacked(bytes4(0x138e8da1), _token, _spender, _addedValue, _fee, _nonce)); + // } - /** - * @dev Hash (keccak256) of the payload used by decreaseAllowancePreSigned - * @notice fee will be given to sender if it's a smart contract make sure it can accept funds - * @param _token address The address of the token - * @param _spender address The address which will spend the funds. - * @param _subtractedValue uint256 The amount of tokens to decrease the allowance by. - * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner. - * @param _nonce uint256 Presigned transaction number. - */ - function getDecreaseAllowancePreSignedHash( - address _token, - address _spender, - uint256 _subtractedValue, - uint256 _fee, - uint256 _nonce - ) - public - pure - returns (bytes32) - { - /* "5229c56f": getDecreaseAllowancePreSignedHash(address,address,uint256,uint256,uint256) */ - return keccak256(abi.encodePacked(bytes4(0x5229c56f), _token, _spender, _subtractedValue, _fee, _nonce)); - } + // /** + // * @dev Hash (keccak256) of the payload used by decreaseAllowancePreSigned + // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds + // * @param _token address The address of the token + // * @param _spender address The address which will spend the funds. + // * @param _subtractedValue uint256 The amount of tokens to decrease the allowance by. + // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner. + // * @param _nonce uint256 Presigned transaction number. + // */ + // function getDecreaseAllowancePreSignedHash( + // address _token, + // address _spender, + // uint256 _subtractedValue, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // pure + // returns (bytes32) + // { + // /* "5229c56f": getDecreaseAllowancePreSignedHash(address,address,uint256,uint256,uint256) */ + // return keccak256(abi.encodePacked(bytes4(0x5229c56f), _token, _spender, _subtractedValue, _fee, _nonce)); + // } - /** - * @dev Hash (keccak256) of the payload used by transferFromPreSigned - * @notice fee will be given to sender if it's a smart contract make sure it can accept funds - * @param _token address The address of the token - * @param _from address The address which you want to send tokens from. - * @param _to address The address which you want to transfer to. - * @param _value uint256 The amount of tokens to be transferred. - * @param _fee uint256 The amount of tokens paid to msg.sender, by the spender. - * @param _nonce uint256 Presigned transaction number. - */ - function getTransferFromPreSignedHash( - address _token, - address _from, - address _to, - uint256 _value, - uint256 _fee, - uint256 _nonce - ) - public - pure - returns (bytes32) - { - /* "a70c41b4": getTransferFromPreSignedHash(address,address,address,uint256,uint256,uint256) */ - return keccak256(abi.encodePacked(bytes4(0xa70c41b4), _token, _from, _to, _value, _fee, _nonce)); - } + // /** + // * @dev Hash (keccak256) of the payload used by transferFromPreSigned + // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds + // * @param _token address The address of the token + // * @param _from address The address which you want to send tokens from. + // * @param _to address The address which you want to transfer to. + // * @param _value uint256 The amount of tokens to be transferred. + // * @param _fee uint256 The amount of tokens paid to msg.sender, by the spender. + // * @param _nonce uint256 Presigned transaction number. + // */ + // function getTransferFromPreSignedHash( + // address _token, + // address _from, + // address _to, + // uint256 _value, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // pure + // returns (bytes32) + // { + // /* "a70c41b4": getTransferFromPreSignedHash(address,address,address,uint256,uint256,uint256) */ + // return keccak256(abi.encodePacked(bytes4(0xa70c41b4), _token, _from, _to, _value, _fee, _nonce)); + // } } \ No newline at end of file diff --git a/contracts/token/IERC865.sol b/contracts/token/IERC865.sol index 9d07d08d..ab398913 100644 --- a/contracts/token/IERC865.sol +++ b/contracts/token/IERC865.sol @@ -1,5 +1,7 @@ pragma solidity ^0.4.24; - +/* + THIS CONTRACT IS OBSOLETE AND REMAINS ONLY FOR UPGRADABILITY/STORAGE CONSIDERATIONS +*/ /** * @title ERC865 Interface * @dev see https://github.com/ethereum/EIPs/issues/865 @@ -8,57 +10,57 @@ pragma solidity ^0.4.24; contract IERC865 { - event TransferPreSigned(address indexed from, address indexed to, address indexed delegate, uint256 amount, uint256 fee); - event ApprovalPreSigned(address indexed from, address indexed to, address indexed delegate, uint256 amount, uint256 fee); + // event TransferPreSigned(address indexed from, address indexed to, address indexed delegate, uint256 amount, uint256 fee); + // event ApprovalPreSigned(address indexed from, address indexed to, address indexed delegate, uint256 amount, uint256 fee); - function transferPreSigned( - bytes _signature, - address _to, - uint256 _value, - uint256 _fee, - uint256 _nonce - ) - public - returns (bool); + // function transferPreSigned( + // bytes _signature, + // address _to, + // uint256 _value, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // returns (bool); - function approvePreSigned( - bytes _signature, - address _spender, - uint256 _value, - uint256 _fee, - uint256 _nonce - ) - public - returns (bool); + // function approvePreSigned( + // bytes _signature, + // address _spender, + // uint256 _value, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // returns (bool); - function increaseAllowancePreSigned( - bytes _signature, - address _spender, - uint256 _addedValue, - uint256 _fee, - uint256 _nonce - ) - public - returns (bool); + // function increaseAllowancePreSigned( + // bytes _signature, + // address _spender, + // uint256 _addedValue, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // returns (bool); - function decreaseAllowancePreSigned( - bytes _signature, - address _spender, - uint256 _subtractedValue, - uint256 _fee, - uint256 _nonce - ) - public - returns (bool); + // function decreaseAllowancePreSigned( + // bytes _signature, + // address _spender, + // uint256 _subtractedValue, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // returns (bool); - function transferFromPreSigned( - bytes _signature, - address _from, - address _to, - uint256 _value, - uint256 _fee, - uint256 _nonce - ) - public - returns (bool); + // function transferFromPreSigned( + // bytes _signature, + // address _from, + // address _to, + // uint256 _value, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // returns (bool); } \ No newline at end of file diff --git a/contracts/token/PropsRewards.sol b/contracts/token/PropsRewards.sol index 6d47bd44..e47961f8 100644 --- a/contracts/token/PropsRewards.sol +++ b/contracts/token/PropsRewards.sol @@ -3,6 +3,7 @@ pragma solidity ^0.4.24; import "zos-lib/contracts/Initializable.sol"; import "openzeppelin-eth/contracts/math/SafeMath.sol"; import "openzeppelin-eth/contracts/token/ERC20/ERC20.sol"; +import "openzeppelin-eth/contracts/token/ERC20/SafeERC20.sol"; import { PropsRewardsLib } from "./PropsRewardsLib.sol"; /** @@ -11,63 +12,13 @@ import { PropsRewardsLib } from "./PropsRewardsLib.sol"; **/ contract PropsRewards is Initializable, ERC20 { using SafeMath for uint256; + using SafeERC20 for ERC20; /* * Events - */ - event DailyRewardsSubmitted( - uint256 indexed rewardsDay, - bytes32 indexed rewardsHash, - address indexed validator - ); - - event DailyRewardsApplicationsMinted( - uint256 indexed rewardsDay, - bytes32 indexed rewardsHash, - uint256 numOfApplications, - uint256 amount - ); - - event DailyRewardsValidatorsMinted( - uint256 indexed rewardsDay, - bytes32 indexed rewardsHash, - uint256 numOfValidators, - uint256 amount - ); - - event EntityUpdated( - address indexed id, - PropsRewardsLib.RewardedEntityType indexed entityType, - bytes32 name, - address rewardsAddress, - address indexed sidechainAddress - ); - - event ParameterUpdated( - PropsRewardsLib.ParameterName param, - uint256 newValue, - uint256 oldValue, - uint256 rewardsDay - ); - - event ValidatorsListUpdated( - address[] validatorsList, - uint256 indexed rewardsDay - ); - - event ApplicationsListUpdated( - address[] applicationsList, - uint256 indexed rewardsDay - ); + */ event ControllerUpdated(address indexed newController); - event Settlement( - address indexed applicationId, - bytes32 indexed userId, - address indexed to, - uint256 amount, - address rewardsAddress - ); /* * Storage */ @@ -76,7 +27,12 @@ contract PropsRewards is Initializable, ERC20 { uint256 public maxTotalSupply; uint256 public rewardsStartTimestamp; address public controller; // controller entity - + mapping(address => bool) public minters; + bytes32 public DOMAIN_SEPARATOR; + // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"); + bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9; + mapping(address => uint256) public nonces; + uint256 public MY_CHAIN_ID; /* * Modifiers */ @@ -89,115 +45,105 @@ contract PropsRewards is Initializable, ERC20 { } /** - * @dev The initializer function for upgrade as initialize was already called, get the decimals used in the token to initialize the params - * @param _controller address that will have controller functionality on rewards protocol - * @param _minSecondsBetweenDays uint256 seconds required to pass between consecutive rewards day - * @param _rewardsStartTimestamp uint256 day 0 timestamp - */ - function initializePostRewardsUpgrade1( - address _controller, - uint256 _minSecondsBetweenDays, - uint256 _rewardsStartTimestamp - ) - public - { + * @dev The initializer function for upgrade as initialize was already called, get the decimals used in the token to initialize the params + * @param _controller address that will have controller functionality on token + */ + function initialize(address _controller) public { uint256 decimals = 18; - _initializePostRewardsUpgrade1(_controller, decimals, _minSecondsBetweenDays, _rewardsStartTimestamp); - } - - /** - * @dev Set new validators list - * @param _rewardsDay uint256 the rewards day from which this change should take effect - * @param _validators address[] array of validators - */ - function setValidators(uint256 _rewardsDay, address[] _validators) - public - onlyController - { - PropsRewardsLib.setValidators(rewardsLibData, _rewardsDay, _validators); - emit ValidatorsListUpdated(_validators, _rewardsDay); - } - - /** - * @dev Set new applications list - * @param _rewardsDay uint256 the rewards day from which this change should take effect - * @param _applications address[] array of applications - */ - function setApplications(uint256 _rewardsDay, address[] _applications) - public - onlyController - { - PropsRewardsLib.setApplications(rewardsLibData, _rewardsDay, _applications); - emit ApplicationsListUpdated(_applications, _rewardsDay); + _initialize(_controller, decimals); } /** - * @dev Get the applications or validators list - * @param _entityType RewardedEntityType either application (0) or validator (1) - * @param _rewardsDay uint256 the rewards day to use for this value - */ - function getEntities(PropsRewardsLib.RewardedEntityType _entityType, uint256 _rewardsDay) + * @dev Initialize post separation of rewards contract upgrade + * @param _tokenName string token name + */ + function initializePermitUpgrade(string memory _tokenName) public - view - returns (address[]) + initializer { - return PropsRewardsLib.getEntities(rewardsLibData, _entityType, _rewardsDay); + // We hardcode the chain id + uint256 chainId = 1; + string memory one = "1"; + + // Solidity 0.4 does not support chain ids + // assembly { + // chainId := chainid() + // } + + MY_CHAIN_ID = chainId; + DOMAIN_SEPARATOR = keccak256( + abi.encode( + keccak256( + "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)" + ), + keccak256(bytes(_tokenName)), + keccak256(bytes(one)), + chainId, + address(this) + ) + ); } /** - * @dev The function is called by validators with the calculation of the daily rewards - * @param _rewardsDay uint256 the rewards day - * @param _rewardsHash bytes32 hash of the rewards data - * @param _applications address[] array of application addresses getting the daily reward - * @param _amounts uint256[] array of amounts each app should get - */ - function submitDailyRewards( - uint256 _rewardsDay, - bytes32 _rewardsHash, - address[] _applications, - uint256[] _amounts - ) - public - { - // if submission is for a new day check if previous day validator rewards were given if not give to participating ones - if (_rewardsDay > rewardsLibData.dailyRewards.lastApplicationsRewardsDay) { - uint256 previousDayValidatorRewardsAmount = PropsRewardsLib.calculateValidatorRewards( - rewardsLibData, - rewardsLibData.dailyRewards.lastApplicationsRewardsDay, - rewardsLibData.dailyRewards.lastConfirmedRewardsHash, - false + * @dev Allows for approvals to be made via secp256k1 signatures + * @param _owner address owner + * @param _spender address spender + * @param _amount uint spender + * @param _deadline uint spender + * @param _v uint8 spender + * @param _r bytes32 spender + * @param _s bytes32 spender + */ + function permit( + address _owner, + address _spender, + uint256 _amount, + uint256 _deadline, + uint8 _v, + bytes32 _r, + bytes32 _s + ) external { + require(_deadline >= block.timestamp, "Permit Expired"); + bytes32 digest = + keccak256( + abi.encodePacked( + "\x19\x01", + DOMAIN_SEPARATOR, + keccak256( + abi.encode( + PERMIT_TYPEHASH, + _owner, + _spender, + _amount, + nonces[_owner]++, + _deadline + ) + ) + ) ); - if (previousDayValidatorRewardsAmount > 0) { - _mintDailyRewardsForValidators(rewardsLibData.dailyRewards.lastApplicationsRewardsDay, rewardsLibData.dailyRewards.lastConfirmedRewardsHash, previousDayValidatorRewardsAmount); - } - } - // check and give application rewards if majority of validators agree - uint256 appRewardsSum = PropsRewardsLib.calculateAndFinalizeApplicationRewards( - rewardsLibData, - _rewardsDay, - _rewardsHash, - _applications, - _amounts, - totalSupply() - ); - if (appRewardsSum > 0) { - _mintDailyRewardsForApps(_rewardsDay, _rewardsHash, _applications, _amounts, appRewardsSum); - } - - // check and give validator rewards if all validators submitted - uint256 validatorRewardsAmount = PropsRewardsLib.calculateValidatorRewards( - rewardsLibData, - _rewardsDay, - _rewardsHash, - true + address recoveredAddress = ecrecover(digest, _v, _r, _s); + require( + recoveredAddress != address(0) && recoveredAddress == _owner, + "Invalid Signature" ); - if (validatorRewardsAmount > 0) { - _mintDailyRewardsForValidators(_rewardsDay, _rewardsHash, validatorRewardsAmount); - } - - emit DailyRewardsSubmitted(_rewardsDay, _rewardsHash, msg.sender); + _approve(_owner, _spender, _amount); } + /** + * @dev Reclaim all ERC20 compatible tokens + * @param _token ERC20 The address of the token contract + */ + function reclaimToken( + ERC20 _token, + address _to, + uint256 _amount + ) external onlyController { + require(_to != address(0), "Must transfer to recipient"); + uint256 balance = _token.balanceOf(this); + require(_amount <= balance, "Cannot transfer more than balance"); + _token.safeTransfer(_to, _amount); + } + /** * @dev Allows the controller/owner to update to a new controller * @param _controller address address of the new controller @@ -216,161 +162,40 @@ contract PropsRewards is Initializable, ERC20 { ); } - /** - * @dev Allows getting a parameter value based on timestamp - * @param _name ParameterName name of the parameter - * @param _rewardsDay uint256 starting when should this parameter use the current value - */ - function getParameter( - PropsRewardsLib.ParameterName _name, - uint256 _rewardsDay - ) - public - view - returns (uint256) - { - return PropsRewardsLib.getParameterValue(rewardsLibData, _name, _rewardsDay); - } - - /** - * @dev Allows the controller/owner to update rewards parameters - * @param _name ParameterName name of the parameter - * @param _value uint256 new value for the parameter - * @param _rewardsDay uint256 starting when should this parameter use the current value - */ - function updateParameter( - PropsRewardsLib.ParameterName _name, - uint256 _value, - uint256 _rewardsDay - ) - public - onlyController - { - PropsRewardsLib.updateParameter(rewardsLibData, _name, _value, _rewardsDay); - emit ParameterUpdated( - _name, - rewardsLibData.parameters[uint256(_name)].currentValue, - rewardsLibData.parameters[uint256(_name)].previousValue, - rewardsLibData.parameters[uint256(_name)].rewardsDay - ); + function addMinter(address _minter) public onlyController { + minters[_minter] = true; } - /** - * @dev Allows an application or validator to add/update its details - * @param _entityType RewardedEntityType either application (0) or validator (1) - * @param _name bytes32 name of the app - * @param _rewardsAddress address an address for the app to receive the rewards - * @param _sidechainAddress address the address used for using the sidechain - */ - function updateEntity( - PropsRewardsLib.RewardedEntityType _entityType, - bytes32 _name, - address _rewardsAddress, - address _sidechainAddress - ) - public - { - PropsRewardsLib.updateEntity(rewardsLibData, _entityType, _name, _rewardsAddress, _sidechainAddress); - emit EntityUpdated(msg.sender, _entityType, _name, _rewardsAddress, _sidechainAddress); + function removeMinter(address _minter) public onlyController { + minters[_minter] = false; } /** - * @dev Allows an application to settle sidechain props. Should be called from an application rewards address - * @param _applicationAddress address the application main address (used to setup the application) - * @param _userId bytes32 identification of the user on the sidechain that was settled - * @param _to address where to send the props to - * @param _amount uint256 the address used for using the sidechain - */ - function settle( - address _applicationAddress, - bytes32 _userId, - address _to, - uint256 _amount - ) - public - { + * @dev Allows minters to mint tokens to a given address + * @param _account address of the receiving account + * @param _amount uint256 how much to mint + */ + function mint(address _account, uint256 _amount) public { + require(minters[msg.sender], "Mint fn can be called only by minter"); require( - rewardsLibData.applications[_applicationAddress].rewardsAddress == msg.sender, - "settle may only be called by an application" + totalSupply().add(_amount) <= maxTotalSupply, + "Max total supply exceeded" ); - _transfer(msg.sender, _to, _amount); - emit Settlement(_applicationAddress, _userId, _to, _amount, msg.sender); + _mint(_account, _amount); } + /** - * @dev internal intialize rewards upgrade1 - * @param _controller address that will have controller functionality on rewards protocol - * @param _decimals uint256 number of decimals used in total supply - * @param _minSecondsBetweenDays uint256 seconds required to pass between consecutive rewards day - * @param _rewardsStartTimestamp uint256 day 0 timestamp - */ - function _initializePostRewardsUpgrade1( - address _controller, - uint256 _decimals, - uint256 _minSecondsBetweenDays, - uint256 _rewardsStartTimestamp - ) - internal - { - require(maxTotalSupply==0, "Initialize rewards upgrade1 can happen only once"); + * @dev internal intialize + * @param _controller address that will have controller functionality on rewards protocol + * @param _decimals uint256 number of decimals used in total supply + */ + function _initialize(address _controller, uint256 _decimals) internal { + require( + maxTotalSupply == 0, + "Initialize rewards upgrade1 can happen only once" + ); controller = _controller; - // ApplicationRewardsPercent pphm ==> 0.03475% - PropsRewardsLib.updateParameter(rewardsLibData, PropsRewardsLib.ParameterName.ApplicationRewardsPercent, 34750, 0); - // // ApplicationRewardsMaxVariationPercent pphm ==> 150% - PropsRewardsLib.updateParameter(rewardsLibData, PropsRewardsLib.ParameterName.ApplicationRewardsMaxVariationPercent, 150 * 1e6, 0); - // // ValidatorMajorityPercent pphm ==> 50% - PropsRewardsLib.updateParameter(rewardsLibData, PropsRewardsLib.ParameterName.ValidatorMajorityPercent, 50 * 1e6, 0); - // // ValidatorRewardsPercent pphm ==> 0.001829% - PropsRewardsLib.updateParameter(rewardsLibData, PropsRewardsLib.ParameterName.ValidatorRewardsPercent, 1829, 0); - // max total supply is 1,000,000,000 PROPS specified in AttoPROPS - rewardsLibData.maxTotalSupply = maxTotalSupply = 1 * 1e9 * (10 ** _decimals); - rewardsLibData.rewardsStartTimestamp = rewardsStartTimestamp = _rewardsStartTimestamp; - rewardsLibData.minSecondsBetweenDays = _minSecondsBetweenDays; - - } - - /** - * @dev Mint rewards for validators - * @param _rewardsDay uint256 the rewards day - * @param _rewardsHash bytes32 hash of the rewards data - * @param _amount uint256 amount each validator should get - */ - function _mintDailyRewardsForValidators(uint256 _rewardsDay, bytes32 _rewardsHash, uint256 _amount) - internal - { - uint256 validatorsCount = rewardsLibData.dailyRewards.submissions[_rewardsHash].validatorsList.length; - for (uint256 i = 0; i < validatorsCount; i++) { - _mint(rewardsLibData.validators[rewardsLibData.dailyRewards.submissions[_rewardsHash].validatorsList[i]].rewardsAddress,_amount); - } - PropsRewardsLib._resetDailyRewards(rewardsLibData, _rewardsHash); - emit DailyRewardsValidatorsMinted( - _rewardsDay, - _rewardsHash, - validatorsCount, - (_amount * validatorsCount) - ); - } - - /** - * @dev Mint rewards for apps - * @param _rewardsDay uint256 the rewards day - * @param _rewardsHash bytes32 hash of the rewards data - * @param _applications address[] array of application addresses getting the daily reward - * @param _amounts uint256[] array of amounts each app should get - * @param _sum uint256 the sum of all application rewards given - */ - function _mintDailyRewardsForApps( - uint256 _rewardsDay, - bytes32 _rewardsHash, - address[] _applications, - uint256[] _amounts, - uint256 _sum - ) - internal - { - for (uint256 i = 0; i < _applications.length; i++) { - _mint(rewardsLibData.applications[_applications[i]].rewardsAddress, _amounts[i]); - } - emit DailyRewardsApplicationsMinted(_rewardsDay, _rewardsHash, _applications.length, _sum); + maxTotalSupply = 1 * 1e9 * (10**_decimals); } } \ No newline at end of file diff --git a/contracts/token/PropsRewardsLib.sol b/contracts/token/PropsRewardsLib.sol index 04a6bff1..863eb2b8 100644 --- a/contracts/token/PropsRewardsLib.sol +++ b/contracts/token/PropsRewardsLib.sol @@ -1,5 +1,7 @@ pragma solidity ^0.4.24; - +/* + THIS CONTRACT IS OBSOLETE AND REMAINS ONLY FOR UPGRADABILITY/STORAGE CONSIDERATIONS +*/ import "openzeppelin-eth/contracts/math/SafeMath.sol"; /** @@ -82,652 +84,5 @@ library PropsRewardsLib { uint256 rewardsStartTimestamp; uint256 maxTotalSupply; uint256 lastValidatorsRewardsDay; - } - /* - * Modifiers - */ - modifier onlyOneConfirmationPerValidatorPerRewardsHash(Data storage _self, bytes32 _rewardsHash) { - require( - !_self.dailyRewards.submissions[_rewardsHash].validators[msg.sender], - "Must be one submission per validator" - ); - _; - } - - modifier onlyExistingApplications(Data storage _self, address[] _entities) { - for (uint256 i = 0; i < _entities.length; i++) { - require( - _self.applications[_entities[i]].isInitializedState, - "Application must exist" - ); - } - _; - } - - modifier onlyExistingValidators(Data storage _self, address[] _entities) { - for (uint256 i = 0; i < _entities.length; i++) { - require( - _self.validators[_entities[i]].isInitializedState, - "Validator must exist" - ); - } - _; - } - - modifier onlySelectedValidators(Data storage _self, uint256 _rewardsDay) { - if (!_usePreviousSelectedRewardsEntityList(_self.selectedValidators, _rewardsDay)) { - require ( - _self.selectedValidators.current[msg.sender], - "Must be a current selected validator" - ); - } else { - require ( - _self.selectedValidators.previous[msg.sender], - "Must be a previous selected validator" - ); - } - _; - } - - modifier onlyValidRewardsDay(Data storage _self, uint256 _rewardsDay) { - require( - _currentRewardsDay(_self) > _rewardsDay && _rewardsDay > _self.lastValidatorsRewardsDay, - "Must be for a previous day but after the last rewards day" - ); - _; - } - - modifier onlyValidFutureRewardsDay(Data storage _self, uint256 _rewardsDay) { - require( - _rewardsDay >= _currentRewardsDay(_self), - "Must be future rewardsDay" - ); - _; - } - - modifier onlyValidAddresses(address _rewardsAddress, address _sidechainAddress) { - require( - _rewardsAddress != address(0) && - _sidechainAddress != address(0), - "Must have valid rewards and sidechain addresses" - ); - _; - } - - /** - * @dev The function is called by validators with the calculation of the daily rewards - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day - * @param _rewardsHash bytes32 hash of the rewards data - * @param _allValidators bool should the calculation be based on all the validators or just those which submitted - */ - function calculateValidatorRewards( - Data storage _self, - uint256 _rewardsDay, - bytes32 _rewardsHash, - bool _allValidators - ) - public - view - returns (uint256) - { - uint256 numOfValidators; - if (_self.dailyRewards.submissions[_rewardsHash].finalizedStatus == 1) - { - if (_allValidators) { - numOfValidators = _requiredValidatorsForValidatorsRewards(_self, _rewardsDay); - if (numOfValidators > _self.dailyRewards.submissions[_rewardsHash].confirmations) return 0; - } else { - numOfValidators = _self.dailyRewards.submissions[_rewardsHash].confirmations; - } - uint256 rewardsPerValidator = _getValidatorRewardsDailyAmountPerValidator(_self, _rewardsDay, numOfValidators); - return rewardsPerValidator; - } - return 0; - } - - /** - * @dev The function is called by validators with the calculation of the daily rewards - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day - * @param _rewardsHash bytes32 hash of the rewards data - * @param _applications address[] array of application addresses getting the daily reward - * @param _amounts uint256[] array of amounts each app should get - * @param _currentTotalSupply uint256 current total supply - */ - function calculateAndFinalizeApplicationRewards( - Data storage _self, - uint256 _rewardsDay, - bytes32 _rewardsHash, - address[] _applications, - uint256[] _amounts, - uint256 _currentTotalSupply - ) - public - onlyValidRewardsDay(_self, _rewardsDay) - onlyOneConfirmationPerValidatorPerRewardsHash(_self, _rewardsHash) - onlySelectedValidators(_self, _rewardsDay) - returns (uint256) - { - require( - _rewardsHashIsValid(_self, _rewardsDay, _rewardsHash, _applications, _amounts), - "Rewards Hash is invalid" - ); - if (!_self.dailyRewards.submissions[_rewardsHash].isInitializedState) { - _self.dailyRewards.submissions[_rewardsHash].isInitializedState = true; - _self.dailyRewards.submittedRewardsHashes.push(_rewardsHash); - } - _self.dailyRewards.submissions[_rewardsHash].validators[msg.sender] = true; - _self.dailyRewards.submissions[_rewardsHash].validatorsList.push(msg.sender); - _self.dailyRewards.submissions[_rewardsHash].confirmations++; - - if (_self.dailyRewards.submissions[_rewardsHash].confirmations == _requiredValidatorsForAppRewards(_self, _rewardsDay)) { - uint256 sum = _validateSubmittedData(_self, _applications, _amounts); - require( - sum <= _getMaxAppRewardsDailyAmount(_self, _rewardsDay, _currentTotalSupply), - "Rewards data is invalid - exceed daily variation" - ); - _finalizeDailyApplicationRewards(_self, _rewardsDay, _rewardsHash, _currentTotalSupply); - return sum; - } - return 0; - } - - /** - * @dev Finalizes the state, rewards Hash, total supply and block timestamp for the day - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day - * @param _rewardsHash bytes32 the daily rewards hash - * @param _currentTotalSupply uint256 the current total supply - */ - function _finalizeDailyApplicationRewards(Data storage _self, uint256 _rewardsDay, bytes32 _rewardsHash, uint256 _currentTotalSupply) - public - { - _self.dailyRewards.totalSupply = _currentTotalSupply; - _self.dailyRewards.lastConfirmedRewardsHash = _rewardsHash; - _self.dailyRewards.lastApplicationsRewardsDay = _rewardsDay; - _self.dailyRewards.submissions[_rewardsHash].finalizedStatus = 1; - } - - /** - * @dev Get parameter's value - * @param _self Data pointer to storage - * @param _name ParameterName name of the parameter - * @param _rewardsDay uint256 the rewards day - */ - function getParameterValue( - Data storage _self, - ParameterName _name, - uint256 _rewardsDay - ) - public - view - returns (uint256) - { - if (_rewardsDay >= _self.parameters[uint256(_name)].rewardsDay) { - return _self.parameters[uint256(_name)].currentValue; - } else { - return _self.parameters[uint256(_name)].previousValue; - } - } - - /** - * @dev Allows the controller/owner to update rewards parameters - * @param _self Data pointer to storage - * @param _name ParameterName name of the parameter - * @param _value uint256 new value for the parameter - * @param _rewardsDay uint256 the rewards day - */ - function updateParameter( - Data storage _self, - ParameterName _name, - uint256 _value, - uint256 _rewardsDay - ) - public - onlyValidFutureRewardsDay(_self, _rewardsDay) - { - if (_rewardsDay <= _self.parameters[uint256(_name)].rewardsDay) { - _self.parameters[uint256(_name)].currentValue = _value; - _self.parameters[uint256(_name)].rewardsDay = _rewardsDay; - } else { - _self.parameters[uint256(_name)].previousValue = _self.parameters[uint256(_name)].currentValue; - _self.parameters[uint256(_name)].currentValue = _value; - _self.parameters[uint256(_name)].rewardsDay = _rewardsDay; - } - } - - /** - * @dev Allows an application to add/update its details - * @param _self Data pointer to storage - * @param _entityType RewardedEntityType either application (0) or validator (1) - * @param _name bytes32 name of the app - * @param _rewardsAddress address an address for the app to receive the rewards - * @param _sidechainAddress address the address used for using the sidechain - */ - function updateEntity( - Data storage _self, - RewardedEntityType _entityType, - bytes32 _name, - address _rewardsAddress, - address _sidechainAddress - ) - public - onlyValidAddresses(_rewardsAddress, _sidechainAddress) - { - if (_entityType == RewardedEntityType.Application) { - updateApplication(_self, _name, _rewardsAddress, _sidechainAddress); - } else { - updateValidator(_self, _name, _rewardsAddress, _sidechainAddress); - } - } - - /** - * @dev Allows an application to add/update its details - * @param _self Data pointer to storage - * @param _name bytes32 name of the app - * @param _rewardsAddress address an address for the app to receive the rewards - * @param _sidechainAddress address the address used for using the sidechain - */ - function updateApplication( - Data storage _self, - bytes32 _name, - address _rewardsAddress, - address _sidechainAddress - ) - public - returns (uint256) - { - _self.applications[msg.sender].name = _name; - _self.applications[msg.sender].rewardsAddress = _rewardsAddress; - _self.applications[msg.sender].sidechainAddress = _sidechainAddress; - if (!_self.applications[msg.sender].isInitializedState) { - _self.applicationsList.push(msg.sender); - _self.applications[msg.sender].isInitializedState = true; - _self.applications[msg.sender].entityType = RewardedEntityType.Application; - } - return uint256(RewardedEntityType.Application); - } - - /** - * @dev Allows a validator to add/update its details - * @param _self Data pointer to storage - * @param _name bytes32 name of the validator - * @param _rewardsAddress address an address for the validator to receive the rewards - * @param _sidechainAddress address the address used for using the sidechain - */ - function updateValidator( - Data storage _self, - bytes32 _name, - address _rewardsAddress, - address _sidechainAddress - ) - public - returns (uint256) - { - _self.validators[msg.sender].name = _name; - _self.validators[msg.sender].rewardsAddress = _rewardsAddress; - _self.validators[msg.sender].sidechainAddress = _sidechainAddress; - if (!_self.validators[msg.sender].isInitializedState) { - _self.validatorsList.push(msg.sender); - _self.validators[msg.sender].isInitializedState = true; - _self.validators[msg.sender].entityType = RewardedEntityType.Validator; - } - return uint256(RewardedEntityType.Validator); - } - - /** - * @dev Set new validators list - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day from which the list should be active - * @param _validators address[] array of validators - */ - function setValidators( - Data storage _self, - uint256 _rewardsDay, - address[] _validators - ) - public - onlyValidFutureRewardsDay(_self, _rewardsDay) - onlyExistingValidators(_self, _validators) - { - // no need to update the previous if its' the first time or second update in the same day - if (_rewardsDay > _self.selectedValidators.rewardsDay && _self.selectedValidators.currentList.length > 0) - _updatePreviousEntityList(_self.selectedValidators); - - _updateCurrentEntityList(_self.selectedValidators, _validators); - _self.selectedValidators.rewardsDay = _rewardsDay; - } - - /** - * @dev Set new applications list - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day from which the list should be active - * @param _applications address[] array of applications - */ - function setApplications( - Data storage _self, - uint256 _rewardsDay, - address[] _applications - ) - public - onlyValidFutureRewardsDay(_self, _rewardsDay) - onlyExistingApplications(_self, _applications) - { - - if (_rewardsDay > _self.selectedApplications.rewardsDay && _self.selectedApplications.currentList.length > 0) - _updatePreviousEntityList(_self.selectedApplications); - _updateCurrentEntityList(_self.selectedApplications, _applications); - _self.selectedApplications.rewardsDay = _rewardsDay; - } - - /** - * @dev Get applications or validators list - * @param _self Data pointer to storage - * @param _entityType RewardedEntityType either application (0) or validator (1) - * @param _rewardsDay uint256 the rewards day to determine which list to get - */ - function getEntities( - Data storage _self, - RewardedEntityType _entityType, - uint256 _rewardsDay - ) - public - view - returns (address[]) - { - if (_entityType == RewardedEntityType.Application) { - if (!_usePreviousSelectedRewardsEntityList(_self.selectedApplications, _rewardsDay)) { - return _self.selectedApplications.currentList; - } else { - return _self.selectedApplications.previousList; - } - } else { - if (!_usePreviousSelectedRewardsEntityList(_self.selectedValidators, _rewardsDay)) { - return _self.selectedValidators.currentList; - } else { - return _self.selectedValidators.previousList; - } - } - } - - /** - * @dev Get which entity list to use. If true use previous if false use current - * @param _rewardedEntitylist RewardedEntityList pointer to storage - * @param _rewardsDay uint256 the rewards day to determine which list to get - */ - function _usePreviousSelectedRewardsEntityList(RewardedEntityList _rewardedEntitylist, uint256 _rewardsDay) - internal - pure - returns (bool) - { - if (_rewardsDay >= _rewardedEntitylist.rewardsDay) { - return false; - } else { - return true; - } - } - - /** - * @dev Checks how many validators are needed for app rewards - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day - * @param _currentTotalSupply uint256 current total supply - */ - function _getMaxAppRewardsDailyAmount( - Data storage _self, - uint256 _rewardsDay, - uint256 _currentTotalSupply - ) - public - view - returns (uint256) - { - return ((_self.maxTotalSupply.sub(_currentTotalSupply)).mul( - getParameterValue(_self, ParameterName.ApplicationRewardsPercent, _rewardsDay)).mul( - getParameterValue(_self, ParameterName.ApplicationRewardsMaxVariationPercent, _rewardsDay))).div(1e16); - } - - - /** - * @dev Checks how many validators are needed for app rewards - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day - * @param _numOfValidators uint256 number of validators - */ - function _getValidatorRewardsDailyAmountPerValidator( - Data storage _self, - uint256 _rewardsDay, - uint256 _numOfValidators - ) - public - view - returns (uint256) - { - return (((_self.maxTotalSupply.sub(_self.dailyRewards.totalSupply)).mul( - getParameterValue(_self, ParameterName.ValidatorRewardsPercent, _rewardsDay))).div(1e8)).div(_numOfValidators); - } - - /** - * @dev Checks if app daily rewards amount is valid - * @param _self Data pointer to storage - * @param _applications address[] array of application addresses getting the daily rewards - * @param _amounts uint256[] array of amounts each app should get - */ - function _validateSubmittedData( - Data storage _self, - address[] _applications, - uint256[] _amounts - ) - public - view - returns (uint256) - { - uint256 sum; - bool valid = true; - for (uint256 i = 0; i < _amounts.length; i++) { - sum = sum.add(_amounts[i]); - if (!_self.applications[_applications[i]].isInitializedState) valid = false; - } - require( - sum > 0 && valid, - "Sum zero or none existing app submitted" - ); - return sum; - } - - /** - * @dev Checks if submitted data matches rewards hash - * @param _rewardsDay uint256 the rewards day - * @param _rewardsHash bytes32 hash of the rewards data - * @param _applications address[] array of application addresses getting the daily rewards - * @param _amounts uint256[] array of amounts each app should get - */ - function _rewardsHashIsValid( - Data storage _self, - uint256 _rewardsDay, - bytes32 _rewardsHash, - address[] _applications, - uint256[] _amounts - ) - public - view - returns (bool) - { - bool nonActiveApplication = false; - if (!_usePreviousSelectedRewardsEntityList(_self.selectedApplications, _rewardsDay)) { - for (uint256 i = 0; i < _applications.length; i++) { - if (!_self.selectedApplications.current[_applications[i]]) { - nonActiveApplication = true; - } - } - } else { - for (uint256 j = 0; j < _applications.length; j++) { - if (!_self.selectedApplications.previous[_applications[j]]) { - nonActiveApplication = true; - } - } - } - return - _applications.length > 0 && - _applications.length == _amounts.length && - !nonActiveApplication && - keccak256(abi.encodePacked(_rewardsDay, _applications.length, _amounts.length, _applications, _amounts)) == _rewardsHash; - } - - /** - * @dev Checks how many validators are needed for app rewards - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day - */ - function _requiredValidatorsForValidatorsRewards(Data storage _self, uint256 _rewardsDay) - public - view - returns (uint256) - { - if (!_usePreviousSelectedRewardsEntityList(_self.selectedValidators, _rewardsDay)) { - return _self.selectedValidators.currentList.length; - } else { - return _self.selectedValidators.previousList.length; - } - } - - /** - * @dev Checks how many validators are needed for app rewards - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day - */ - function _requiredValidatorsForAppRewards(Data storage _self, uint256 _rewardsDay) - public - view - returns (uint256) - { - if (!_usePreviousSelectedRewardsEntityList(_self.selectedValidators, _rewardsDay)) { - return ((_self.selectedValidators.currentList.length.mul(getParameterValue(_self, ParameterName.ValidatorMajorityPercent, _rewardsDay))).div(1e8)).add(1); - } else { - return ((_self.selectedValidators.previousList.length.mul(getParameterValue(_self, ParameterName.ValidatorMajorityPercent, _rewardsDay))).div(1e8)).add(1); - } - } - - /** - * @dev Get rewards day from block.timestamp - * @param _self Data pointer to storage - */ - function _currentRewardsDay(Data storage _self) - public - view - returns (uint256) - { - //the the start time - floor timestamp to previous midnight divided by seconds in a day will give the rewards day number - if (_self.minSecondsBetweenDays > 0) { - return (block.timestamp.sub(_self.rewardsStartTimestamp)).div(_self.minSecondsBetweenDays).add(1); - } else { - return 0; - } - } - - /** - * @dev Update current daily applications list. - * If new, push. - * If same size, replace - * If different size, delete, and then push. - * @param _rewardedEntitylist RewardedEntityList pointer to storage - * @param _entities address[] array of entities - */ - //_updateCurrentEntityList(_rewardedEntitylist, _entities,_rewardedEntityType), - function _updateCurrentEntityList( - RewardedEntityList storage _rewardedEntitylist, - address[] _entities - ) - internal - { - bool emptyCurrentList = _rewardedEntitylist.currentList.length == 0; - if (!emptyCurrentList && _rewardedEntitylist.currentList.length != _entities.length) { - _deleteCurrentEntityList(_rewardedEntitylist); - emptyCurrentList = true; - } - - for (uint256 i = 0; i < _entities.length; i++) { - if (emptyCurrentList) { - _rewardedEntitylist.currentList.push(_entities[i]); - } else { - _rewardedEntitylist.currentList[i] = _entities[i]; - } - _rewardedEntitylist.current[_entities[i]] = true; - } - } - - /** - * @dev Update previous daily list - * @param _rewardedEntitylist RewardedEntityList pointer to storage - */ - function _updatePreviousEntityList(RewardedEntityList storage _rewardedEntitylist) - internal - { - bool emptyPreviousList = _rewardedEntitylist.previousList.length == 0; - if ( - !emptyPreviousList && - _rewardedEntitylist.previousList.length != _rewardedEntitylist.currentList.length - ) { - _deletePreviousEntityList(_rewardedEntitylist); - emptyPreviousList = true; - } - for (uint256 i = 0; i < _rewardedEntitylist.currentList.length; i++) { - if (emptyPreviousList) { - _rewardedEntitylist.previousList.push(_rewardedEntitylist.currentList[i]); - } else { - _rewardedEntitylist.previousList[i] = _rewardedEntitylist.currentList[i]; - } - _rewardedEntitylist.previous[_rewardedEntitylist.currentList[i]] = true; - } - } - - /** - * @dev Delete existing values from the current list - * @param _rewardedEntitylist RewardedEntityList pointer to storage - */ - function _deleteCurrentEntityList(RewardedEntityList storage _rewardedEntitylist) - internal - { - for (uint256 i = 0; i < _rewardedEntitylist.currentList.length ; i++) { - delete _rewardedEntitylist.current[_rewardedEntitylist.currentList[i]]; - } - delete _rewardedEntitylist.currentList; - } - - /** - * @dev Delete existing values from the previous applications list - * @param _rewardedEntitylist RewardedEntityList pointer to storage - */ - function _deletePreviousEntityList(RewardedEntityList storage _rewardedEntitylist) - internal - { - for (uint256 i = 0; i < _rewardedEntitylist.previousList.length ; i++) { - delete _rewardedEntitylist.previous[_rewardedEntitylist.previousList[i]]; - } - delete _rewardedEntitylist.previousList; - } - - /** - * @dev Deletes rewards day submission data - * @param _self Data pointer to storage - * @param _rewardsHash bytes32 rewardsHash - */ - function _resetDailyRewards( - Data storage _self, - bytes32 _rewardsHash - ) - public - { - _self.lastValidatorsRewardsDay = _self.dailyRewards.lastApplicationsRewardsDay; - for (uint256 j = 0; j < _self.dailyRewards.submissions[_rewardsHash].validatorsList.length; j++) { - delete( - _self.dailyRewards.submissions[_rewardsHash].validators[_self.dailyRewards.submissions[_rewardsHash].validatorsList[j]] - ); - } - delete _self.dailyRewards.submissions[_rewardsHash].validatorsList; - _self.dailyRewards.submissions[_rewardsHash].confirmations = 0; - _self.dailyRewards.submissions[_rewardsHash].finalizedStatus = 0; - _self.dailyRewards.submissions[_rewardsHash].isInitializedState = false; - } + } } \ No newline at end of file diff --git a/contracts/token/PropsTimeBasedTransfers.sol b/contracts/token/PropsTimeBasedTransfers.sol index f000e038..d33cf591 100644 --- a/contracts/token/PropsTimeBasedTransfers.sol +++ b/contracts/token/PropsTimeBasedTransfers.sol @@ -1,5 +1,7 @@ pragma solidity ^0.4.24; - +/* + THIS CONTRACT IS OBSOLETE AND REMAINS ONLY FOR UPGRADABILITY/STORAGE CONSIDERATIONS +*/ import "zos-lib/contracts/Initializable.sol"; import "openzeppelin-eth/contracts/token/ERC20/ERC20.sol"; diff --git a/contracts/token/PropsToken.sol b/contracts/token/PropsToken.sol index 82016c2c..bcd2468b 100644 --- a/contracts/token/PropsToken.sol +++ b/contracts/token/PropsToken.sol @@ -30,16 +30,9 @@ contract PropsToken is Initializable, ERC20Detailed, ERC865Token, PropsTimeBased /** * @dev Initializer function. Called only once when a proxy for the contract is created. * @param _holder address that will receive its initial supply and be able to transfer before transfers start time - * @param _controller address that will have controller functionality on rewards protocol - * @param _minSecondsBetweenDays uint256 seconds required to pass between consecutive rewards day - * @param _rewardsStartTimestamp uint256 day 0 timestamp + * @param _controller address that will have controller functionality on rewards protocol */ - function initialize( - address _holder, - address _controller, - uint256 _minSecondsBetweenDays, - uint256 _rewardsStartTimestamp - ) + function initialize(address _holder, address _controller) public initializer { @@ -48,7 +41,8 @@ contract PropsToken is Initializable, ERC20Detailed, ERC865Token, PropsTimeBased uint256 totalSupply = 0.6 * 1e9 * (10 ** uint256(decimals)); ERC20Detailed.initialize("Props Token", "PROPS", decimals); - PropsRewards.initializePostRewardsUpgrade1(_controller, _minSecondsBetweenDays, _rewardsStartTimestamp); + PropsRewards.initialize(_controller); + PropsRewards.initializePermitUpgrade("Props Token"); _mint(_holder, totalSupply); } } \ No newline at end of file diff --git a/contracts/token/readme.md b/contracts/token/readme.md deleted file mode 100644 index 371deb28..00000000 --- a/contracts/token/readme.md +++ /dev/null @@ -1,20 +0,0 @@ -## History -### March 2019 -Deployment and distribtion of token with ERC865 support for relays - -https://medium.com/@ZeppelinOrg/208e3b20d985 -### July 2019 -Upgrade of props token contract for supporting Props protocol and minting reward props to participating apps and validators. -- Selected validators transact daily and agree upon daily app rewards to be minted based upon app’s user activity. -- Apps can register themsleves with a rewards address -- Controller can whitelist new apps -- Parameters that control the rewards rate, and other settings controlled by Controller -- Participating validators: Coinbase, Peerstream and YouNow - -https://blog.openzeppelin.com/props-rewards-engine-contracts-audit/ -### March 2021 -Upgrade of props token contract to support the upgraded Props Protocol. -- Removed methods related to old protocol (storage remains) -- Added minter roles for the Protocol’s L2 > L1 bridge -- Added permit -- Added reclaimTokens for tokens accidently transferred to contract diff --git a/coverage.json b/coverage.json index 47d9ecd1..33ce8f99 100644 --- a/coverage.json +++ b/coverage.json @@ -1 +1 @@ -{"contracts/token/ERC865Token.sol":{"l":{"39":5,"41":5,"42":5,"43":5,"44":5,"45":5,"46":4,"47":4,"48":2,"50":2,"51":2,"73":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"84":1,"85":1,"107":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"118":1,"119":1,"141":2,"143":2,"144":2,"145":2,"146":2,"147":2,"149":2,"150":2,"151":1,"153":1,"154":1,"178":1,"180":1,"182":1,"183":1,"184":1,"185":1,"186":1,"187":1,"188":1,"189":1,"191":1,"192":1,"217":5,"241":1,"265":1,"289":2,"315":1},"path":"/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/ERC865Token.sol","s":{"1":5,"2":5,"3":5,"4":5,"5":5,"6":5,"7":4,"8":4,"9":2,"10":2,"11":2,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":2,"35":2,"36":2,"37":2,"38":2,"39":2,"40":2,"41":2,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":5,"58":1,"59":1,"60":2,"61":1},"b":{"1":[5,0],"2":[5,0],"3":[4,1],"4":[1,0],"5":[1,0],"6":[1,0],"7":[1,0],"8":[1,0],"9":[1,0],"10":[2,0],"11":[2,0],"12":[2,0],"13":[1,0],"14":[1,0],"15":[1,0]},"f":{"1":5,"2":1,"3":1,"4":2,"5":1,"6":5,"7":1,"8":1,"9":2,"10":1},"fnMap":{"1":{"name":"transferPreSigned","line":29,"loc":{"start":{"line":29,"column":4},"end":{"line":38,"column":5}}},"2":{"name":"approvePreSigned","line":63,"loc":{"start":{"line":63,"column":4},"end":{"line":72,"column":5}}},"3":{"name":"increaseAllowancePreSigned","line":97,"loc":{"start":{"line":97,"column":4},"end":{"line":106,"column":5}}},"4":{"name":"decreaseAllowancePreSigned","line":131,"loc":{"start":{"line":131,"column":4},"end":{"line":140,"column":5}}},"5":{"name":"transferFromPreSigned","line":167,"loc":{"start":{"line":167,"column":4},"end":{"line":177,"column":5}}},"6":{"name":"getTransferPreSignedHash","line":205,"loc":{"start":{"line":205,"column":4},"end":{"line":215,"column":5}}},"7":{"name":"getApprovePreSignedHash","line":229,"loc":{"start":{"line":229,"column":4},"end":{"line":239,"column":5}}},"8":{"name":"getIncreaseAllowancePreSignedHash","line":253,"loc":{"start":{"line":253,"column":4},"end":{"line":263,"column":5}}},"9":{"name":"getDecreaseAllowancePreSignedHash","line":277,"loc":{"start":{"line":277,"column":4},"end":{"line":287,"column":5}}},"10":{"name":"getTransferFromPreSignedHash","line":302,"loc":{"start":{"line":302,"column":4},"end":{"line":313,"column":5}}}},"statementMap":{"1":{"start":{"line":39,"column":8},"end":{"line":39,"column":56}},"2":{"start":{"line":41,"column":8},"end":{"line":41,"column":96}},"3":{"start":{"line":42,"column":8},"end":{"line":42,"column":61}},"4":{"start":{"line":43,"column":8},"end":{"line":43,"column":68}},"5":{"start":{"line":44,"column":8},"end":{"line":44,"column":73}},"6":{"start":{"line":45,"column":8},"end":{"line":45,"column":80}},"7":{"start":{"line":46,"column":8},"end":{"line":46,"column":33}},"8":{"start":{"line":47,"column":8},"end":{"line":47,"column":35}},"9":{"start":{"line":48,"column":8},"end":{"line":48,"column":40}},"10":{"start":{"line":50,"column":8},"end":{"line":50,"column":67}},"11":{"start":{"line":51,"column":8},"end":{"line":51,"column":19}},"12":{"start":{"line":73,"column":8},"end":{"line":73,"column":65}},"13":{"start":{"line":75,"column":8},"end":{"line":75,"column":100}},"14":{"start":{"line":76,"column":8},"end":{"line":76,"column":61}},"15":{"start":{"line":77,"column":8},"end":{"line":77,"column":67}},"16":{"start":{"line":78,"column":8},"end":{"line":78,"column":73}},"17":{"start":{"line":79,"column":8},"end":{"line":79,"column":80}},"18":{"start":{"line":80,"column":8},"end":{"line":80,"column":33}},"19":{"start":{"line":81,"column":8},"end":{"line":81,"column":39}},"20":{"start":{"line":82,"column":8},"end":{"line":82,"column":40}},"21":{"start":{"line":84,"column":8},"end":{"line":84,"column":72}},"22":{"start":{"line":85,"column":8},"end":{"line":85,"column":19}},"23":{"start":{"line":107,"column":8},"end":{"line":107,"column":65}},"24":{"start":{"line":109,"column":8},"end":{"line":109,"column":115}},"25":{"start":{"line":110,"column":8},"end":{"line":110,"column":61}},"26":{"start":{"line":111,"column":8},"end":{"line":111,"column":67}},"27":{"start":{"line":112,"column":8},"end":{"line":112,"column":73}},"28":{"start":{"line":113,"column":8},"end":{"line":113,"column":80}},"29":{"start":{"line":114,"column":8},"end":{"line":114,"column":33}},"30":{"start":{"line":115,"column":8},"end":{"line":115,"column":75}},"31":{"start":{"line":116,"column":8},"end":{"line":116,"column":40}},"32":{"start":{"line":118,"column":8},"end":{"line":118,"column":91}},"33":{"start":{"line":119,"column":8},"end":{"line":119,"column":19}},"34":{"start":{"line":141,"column":8},"end":{"line":141,"column":65}},"35":{"start":{"line":143,"column":8},"end":{"line":143,"column":120}},"36":{"start":{"line":144,"column":8},"end":{"line":144,"column":61}},"37":{"start":{"line":145,"column":8},"end":{"line":145,"column":67}},"38":{"start":{"line":146,"column":8},"end":{"line":146,"column":73}},"39":{"start":{"line":147,"column":8},"end":{"line":147,"column":80}},"40":{"start":{"line":149,"column":8},"end":{"line":149,"column":33}},"41":{"start":{"line":150,"column":8},"end":{"line":150,"column":79}},"42":{"start":{"line":151,"column":8},"end":{"line":151,"column":40}},"43":{"start":{"line":153,"column":8},"end":{"line":153,"column":91}},"44":{"start":{"line":154,"column":8},"end":{"line":154,"column":19}},"45":{"start":{"line":178,"column":8},"end":{"line":178,"column":55}},"46":{"start":{"line":180,"column":8},"end":{"line":180,"column":107}},"47":{"start":{"line":182,"column":8},"end":{"line":182,"column":64}},"48":{"start":{"line":183,"column":8},"end":{"line":183,"column":73}},"49":{"start":{"line":184,"column":8},"end":{"line":184,"column":76}},"50":{"start":{"line":185,"column":8},"end":{"line":185,"column":80}},"51":{"start":{"line":186,"column":8},"end":{"line":186,"column":33}},"52":{"start":{"line":187,"column":8},"end":{"line":187,"column":36}},"53":{"start":{"line":188,"column":8},"end":{"line":188,"column":70}},"54":{"start":{"line":189,"column":8},"end":{"line":189,"column":43}},"55":{"start":{"line":191,"column":8},"end":{"line":191,"column":68}},"56":{"start":{"line":192,"column":8},"end":{"line":192,"column":19}},"57":{"start":{"line":217,"column":8},"end":{"line":217,"column":97}},"58":{"start":{"line":241,"column":8},"end":{"line":241,"column":102}},"59":{"start":{"line":265,"column":8},"end":{"line":265,"column":107}},"60":{"start":{"line":289,"column":8},"end":{"line":289,"column":112}},"61":{"start":{"line":315,"column":8},"end":{"line":315,"column":104}}},"branchMap":{"1":{"line":39,"type":"if","locations":[{"start":{"line":39,"column":8},"end":{"line":39,"column":8}},{"start":{"line":39,"column":8},"end":{"line":39,"column":8}}]},"2":{"line":43,"type":"if","locations":[{"start":{"line":43,"column":8},"end":{"line":43,"column":8}},{"start":{"line":43,"column":8},"end":{"line":43,"column":8}}]},"3":{"line":45,"type":"if","locations":[{"start":{"line":45,"column":8},"end":{"line":45,"column":8}},{"start":{"line":45,"column":8},"end":{"line":45,"column":8}}]},"4":{"line":73,"type":"if","locations":[{"start":{"line":73,"column":8},"end":{"line":73,"column":8}},{"start":{"line":73,"column":8},"end":{"line":73,"column":8}}]},"5":{"line":77,"type":"if","locations":[{"start":{"line":77,"column":8},"end":{"line":77,"column":8}},{"start":{"line":77,"column":8},"end":{"line":77,"column":8}}]},"6":{"line":79,"type":"if","locations":[{"start":{"line":79,"column":8},"end":{"line":79,"column":8}},{"start":{"line":79,"column":8},"end":{"line":79,"column":8}}]},"7":{"line":107,"type":"if","locations":[{"start":{"line":107,"column":8},"end":{"line":107,"column":8}},{"start":{"line":107,"column":8},"end":{"line":107,"column":8}}]},"8":{"line":111,"type":"if","locations":[{"start":{"line":111,"column":8},"end":{"line":111,"column":8}},{"start":{"line":111,"column":8},"end":{"line":111,"column":8}}]},"9":{"line":113,"type":"if","locations":[{"start":{"line":113,"column":8},"end":{"line":113,"column":8}},{"start":{"line":113,"column":8},"end":{"line":113,"column":8}}]},"10":{"line":141,"type":"if","locations":[{"start":{"line":141,"column":8},"end":{"line":141,"column":8}},{"start":{"line":141,"column":8},"end":{"line":141,"column":8}}]},"11":{"line":145,"type":"if","locations":[{"start":{"line":145,"column":8},"end":{"line":145,"column":8}},{"start":{"line":145,"column":8},"end":{"line":145,"column":8}}]},"12":{"line":147,"type":"if","locations":[{"start":{"line":147,"column":8},"end":{"line":147,"column":8}},{"start":{"line":147,"column":8},"end":{"line":147,"column":8}}]},"13":{"line":178,"type":"if","locations":[{"start":{"line":178,"column":8},"end":{"line":178,"column":8}},{"start":{"line":178,"column":8},"end":{"line":178,"column":8}}]},"14":{"line":183,"type":"if","locations":[{"start":{"line":183,"column":8},"end":{"line":183,"column":8}},{"start":{"line":183,"column":8},"end":{"line":183,"column":8}}]},"15":{"line":185,"type":"if","locations":[{"start":{"line":185,"column":8},"end":{"line":185,"column":8}},{"start":{"line":185,"column":8},"end":{"line":185,"column":8}}]}}},"contracts/token/IERC865.sol":{"l":{},"path":"/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/IERC865.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}},"contracts/token/PropsRewards.sol":{"l":{"77":15,"81":12,"97":4,"98":4,"111":5,"112":4,"113":4,"126":4,"127":3,"128":3,"141":8,"161":22,"162":19,"168":19,"169":1,"173":22,"181":14,"182":4,"186":14,"192":14,"193":3,"196":14,"197":14,"211":1,"212":1,"216":1,"232":8,"250":2,"251":2,"257":2,"276":10,"277":10,"278":10,"296":4,"297":4,"299":4,"301":4,"303":4,"305":4,"308":4,"309":4,"310":4,"323":4,"324":4,"325":11,"327":4,"328":4,"353":4,"354":12,"356":4},"path":"/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsRewards.sol","s":{"1":15,"2":4,"3":4,"4":4,"5":4,"6":3,"7":3,"8":8,"9":22,"10":19,"11":19,"12":1,"13":22,"14":14,"15":4,"16":14,"17":14,"18":3,"19":14,"20":14,"21":1,"22":1,"23":1,"24":8,"25":2,"26":2,"27":10,"28":10,"29":4,"30":4,"31":4,"32":4,"33":4,"34":4,"35":4,"36":11,"37":4,"38":4,"39":12,"40":4},"b":{"1":[12,3],"2":[19,3],"3":[1,18],"4":[4,10],"5":[3,11],"6":[4,0]},"f":{"1":15,"2":4,"3":5,"4":4,"5":8,"6":22,"7":1,"8":8,"9":2,"10":10,"11":4,"12":4,"13":4},"fnMap":{"1":{"name":"onlyController","line":76,"loc":{"start":{"line":76,"column":4},"end":{"line":76,"column":27}}},"2":{"name":"initializePostRewardsUpgrade1","line":90,"loc":{"start":{"line":90,"column":4},"end":{"line":96,"column":5}}},"3":{"name":"setValidators","line":106,"loc":{"start":{"line":106,"column":4},"end":{"line":110,"column":5}}},"4":{"name":"setApplications","line":121,"loc":{"start":{"line":121,"column":4},"end":{"line":125,"column":5}}},"5":{"name":"getEntities","line":136,"loc":{"start":{"line":136,"column":4},"end":{"line":140,"column":5}}},"6":{"name":"submitDailyRewards","line":151,"loc":{"start":{"line":151,"column":4},"end":{"line":159,"column":5}}},"7":{"name":"updateController","line":204,"loc":{"start":{"line":204,"column":4},"end":{"line":210,"column":5}}},"8":{"name":"getParameter","line":224,"loc":{"start":{"line":224,"column":4},"end":{"line":231,"column":5}}},"9":{"name":"updateParameter","line":241,"loc":{"start":{"line":241,"column":4},"end":{"line":249,"column":5}}},"10":{"name":"updateEntity","line":267,"loc":{"start":{"line":267,"column":4},"end":{"line":275,"column":5}}},"11":{"name":"_initializePostRewardsUpgrade1","line":288,"loc":{"start":{"line":288,"column":4},"end":{"line":295,"column":5}}},"12":{"name":"_mintDailyRewardsForValidators","line":320,"loc":{"start":{"line":320,"column":4},"end":{"line":322,"column":5}}},"13":{"name":"_mintDailyRewardsForApps","line":344,"loc":{"start":{"line":344,"column":4},"end":{"line":352,"column":5}}}},"statementMap":{"1":{"start":{"line":77,"column":8},"end":{"line":77,"column":1933}},"2":{"start":{"line":97,"column":8},"end":{"line":97,"column":28}},"3":{"start":{"line":98,"column":8},"end":{"line":98,"column":108}},"4":{"start":{"line":112,"column":8},"end":{"line":112,"column":60}},"5":{"start":{"line":113,"column":8},"end":{"line":113,"column":19}},"6":{"start":{"line":127,"column":8},"end":{"line":127,"column":64}},"7":{"start":{"line":128,"column":8},"end":{"line":128,"column":19}},"8":{"start":{"line":141,"column":8},"end":{"line":141,"column":84}},"9":{"start":{"line":161,"column":8},"end":{"line":161,"column":4993}},"10":{"start":{"line":162,"column":12},"end":{"line":162,"column":5094}},"11":{"start":{"line":168,"column":12},"end":{"line":168,"column":5392}},"12":{"start":{"line":169,"column":16},"end":{"line":169,"column":178}},"13":{"start":{"line":173,"column":8},"end":{"line":173,"column":5724}},"14":{"start":{"line":181,"column":8},"end":{"line":181,"column":5966}},"15":{"start":{"line":182,"column":12},"end":{"line":182,"column":102}},"16":{"start":{"line":186,"column":8},"end":{"line":186,"column":6187}},"17":{"start":{"line":192,"column":8},"end":{"line":192,"column":6378}},"18":{"start":{"line":193,"column":12},"end":{"line":193,"column":92}},"19":{"start":{"line":196,"column":8},"end":{"line":196,"column":73}},"20":{"start":{"line":197,"column":8},"end":{"line":197,"column":19}},"21":{"start":{"line":211,"column":8},"end":{"line":211,"column":31}},"22":{"start":{"line":212,"column":8},"end":{"line":212,"column":6943}},"23":{"start":{"line":216,"column":8},"end":{"line":216,"column":19}},"24":{"start":{"line":232,"column":8},"end":{"line":232,"column":84}},"25":{"start":{"line":251,"column":8},"end":{"line":251,"column":8100}},"26":{"start":{"line":257,"column":8},"end":{"line":257,"column":19}},"27":{"start":{"line":277,"column":8},"end":{"line":277,"column":94}},"28":{"start":{"line":278,"column":8},"end":{"line":278,"column":19}},"29":{"start":{"line":296,"column":8},"end":{"line":296,"column":85}},"30":{"start":{"line":297,"column":8},"end":{"line":297,"column":31}},"31":{"start":{"line":308,"column":8},"end":{"line":308,"column":92}},"32":{"start":{"line":309,"column":8},"end":{"line":309,"column":92}},"33":{"start":{"line":310,"column":8},"end":{"line":310,"column":68}},"34":{"start":{"line":323,"column":8},"end":{"line":323,"column":108}},"35":{"start":{"line":324,"column":8},"end":{"line":324,"column":11490}},"36":{"start":{"line":325,"column":12},"end":{"line":325,"column":139}},"37":{"start":{"line":328,"column":8},"end":{"line":328,"column":11759}},"38":{"start":{"line":353,"column":8},"end":{"line":353,"column":12533}},"39":{"start":{"line":354,"column":12},"end":{"line":354,"column":91}},"40":{"start":{"line":356,"column":8},"end":{"line":356,"column":98}}},"branchMap":{"1":{"line":77,"type":"if","locations":[{"start":{"line":77,"column":8},"end":{"line":77,"column":8}},{"start":{"line":77,"column":8},"end":{"line":77,"column":8}}]},"2":{"line":161,"type":"if","locations":[{"start":{"line":161,"column":8},"end":{"line":161,"column":8}},{"start":{"line":161,"column":8},"end":{"line":161,"column":8}}]},"3":{"line":168,"type":"if","locations":[{"start":{"line":168,"column":12},"end":{"line":168,"column":12}},{"start":{"line":168,"column":12},"end":{"line":168,"column":12}}]},"4":{"line":181,"type":"if","locations":[{"start":{"line":181,"column":8},"end":{"line":181,"column":8}},{"start":{"line":181,"column":8},"end":{"line":181,"column":8}}]},"5":{"line":192,"type":"if","locations":[{"start":{"line":192,"column":8},"end":{"line":192,"column":8}},{"start":{"line":192,"column":8},"end":{"line":192,"column":8}}]},"6":{"line":296,"type":"if","locations":[{"start":{"line":296,"column":8},"end":{"line":296,"column":8}},{"start":{"line":296,"column":8},"end":{"line":296,"column":8}}]}}},"contracts/token/PropsRewardsLib.sol":{"l":{"90":20,"94":19,"98":4,"99":11,"104":3,"108":5,"109":14,"114":4,"118":19,"119":5,"124":14,"129":18,"133":22,"137":20,"141":27,"145":27,"149":10,"154":10,"174":33,"175":33,"177":7,"178":6,"179":6,"181":1,"183":4,"184":4,"186":26,"212":18,"216":17,"217":7,"218":7,"220":17,"221":17,"222":17,"224":17,"225":7,"226":6,"230":4,"231":4,"233":10,"247":4,"248":4,"249":4,"250":4,"251":4,"269":41,"270":35,"272":6,"293":18,"294":16,"295":16,"297":2,"298":2,"299":2,"301":18,"323":10,"324":5,"326":5,"328":10,"347":5,"348":5,"349":5,"350":5,"351":4,"352":4,"353":4,"355":5,"374":5,"375":5,"376":5,"377":5,"378":4,"379":4,"380":4,"382":5,"402":4,"403":2,"405":4,"406":4,"407":4,"427":3,"428":1,"429":3,"430":3,"431":3,"449":8,"450":4,"451":2,"453":2,"456":4,"457":2,"459":2,"474":50,"475":16,"477":34,"496":6,"517":4,"536":7,"537":7,"538":7,"539":21,"540":21,"542":7,"546":6,"566":18,"582":6,"583":2,"585":4,"599":17,"600":5,"602":12,"616":49,"617":33,"619":16,"639":7,"640":7,"641":3,"642":3,"645":7,"646":19,"647":13,"649":6,"651":19,"653":7,"664":3,"665":3,"669":1,"670":1,"672":3,"673":10,"674":10,"676":0,"678":10,"680":3,"691":3,"692":10,"694":3,"695":3,"706":1,"707":3,"709":1,"710":1,"723":4,"724":4,"725":4,"726":7,"727":14,"731":7,"732":7,"733":7,"734":7,"736":4},"path":"/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsRewardsLib.sol","s":{"1":20,"2":4,"3":11,"4":5,"5":14,"6":19,"7":5,"8":14,"9":22,"10":27,"11":10,"12":33,"13":7,"14":6,"15":6,"16":3,"17":1,"18":4,"19":4,"20":26,"21":18,"22":17,"23":7,"24":17,"25":17,"26":7,"27":6,"28":4,"29":4,"30":10,"31":4,"32":4,"33":4,"34":4,"35":4,"36":41,"37":35,"38":6,"39":18,"40":16,"41":16,"42":2,"43":2,"44":2,"45":18,"46":10,"47":5,"48":5,"49":10,"50":5,"51":5,"52":5,"53":5,"54":4,"55":4,"56":5,"57":5,"58":5,"59":5,"60":5,"61":4,"62":4,"63":5,"64":4,"65":2,"66":4,"67":4,"68":4,"69":3,"70":1,"71":3,"72":3,"73":3,"74":8,"75":4,"76":2,"77":2,"78":4,"79":2,"80":2,"81":50,"82":16,"83":34,"84":6,"85":4,"86":7,"87":7,"88":21,"89":21,"90":1,"91":7,"92":6,"93":18,"94":6,"95":2,"96":4,"97":17,"98":5,"99":12,"100":49,"101":33,"102":16,"103":7,"104":7,"105":3,"106":3,"107":7,"108":19,"109":6,"110":19,"111":7,"112":3,"113":3,"114":1,"115":1,"116":3,"117":10,"118":0,"119":10,"120":3,"121":3,"122":3,"123":1,"124":1,"125":4,"126":4,"127":4,"128":7,"129":7,"130":7,"131":7},"b":{"1":[19,1],"2":[10,1],"3":[13,1],"4":[5,14],"5":[5,0],"6":[13,1],"7":[20,2],"8":[27,0],"9":[10,0],"10":[7,26],"11":[6,1],"12":[3,3],"13":[17,1],"14":[7,10],"15":[7,10],"16":[4,2],"17":[35,6],"18":[16,2],"19":[5,5],"20":[4,1],"21":[4,1],"22":[2,2],"23":[1,2],"24":[4,4],"25":[2,2],"26":[2,2],"27":[16,34],"28":[1,20],"29":[6,1],"30":[2,4],"31":[5,12],"32":[33,16],"33":[3,4],"34":[13,6],"35":[1,2],"36":[10,0]},"f":{"1":20,"2":4,"3":5,"4":19,"5":22,"6":27,"7":10,"8":33,"9":18,"10":4,"11":41,"12":18,"13":10,"14":5,"15":5,"16":4,"17":3,"18":8,"19":50,"20":6,"21":4,"22":7,"23":18,"24":6,"25":17,"26":49,"27":7,"28":3,"29":3,"30":1,"31":4},"fnMap":{"1":{"name":"onlyOneRewardsHashPerValidator","line":89,"loc":{"start":{"line":89,"column":4},"end":{"line":89,"column":83}}},"2":{"name":"onlyExistingApplications","line":97,"loc":{"start":{"line":97,"column":4},"end":{"line":97,"column":76}}},"3":{"name":"onlyExistingValidators","line":107,"loc":{"start":{"line":107,"column":4},"end":{"line":107,"column":74}}},"4":{"name":"onlySelectedValidators","line":117,"loc":{"start":{"line":117,"column":4},"end":{"line":117,"column":74}}},"5":{"name":"onlyValidRewardsDay","line":132,"loc":{"start":{"line":132,"column":4},"end":{"line":132,"column":71}}},"6":{"name":"onlyValidFutureRewardsDay","line":140,"loc":{"start":{"line":140,"column":4},"end":{"line":140,"column":77}}},"7":{"name":"onlyValidAddresses","line":148,"loc":{"start":{"line":148,"column":4},"end":{"line":148,"column":81}}},"8":{"name":"calculateValidatorRewards","line":164,"loc":{"start":{"line":164,"column":4},"end":{"line":173,"column":5}}},"9":{"name":"calculateApplicationRewards","line":198,"loc":{"start":{"line":198,"column":4},"end":{"line":211,"column":5}}},"10":{"name":"_finalizeDailyApplicationRewards","line":243,"loc":{"start":{"line":243,"column":4},"end":{"line":246,"column":5}}},"11":{"name":"getParameterValue","line":260,"loc":{"start":{"line":260,"column":4},"end":{"line":268,"column":5}}},"12":{"name":"updateParameter","line":283,"loc":{"start":{"line":283,"column":4},"end":{"line":292,"column":5}}},"13":{"name":"updateEntity","line":312,"loc":{"start":{"line":312,"column":4},"end":{"line":322,"column":5}}},"14":{"name":"updateApplication","line":338,"loc":{"start":{"line":338,"column":4},"end":{"line":346,"column":5}}},"15":{"name":"updateValidator","line":365,"loc":{"start":{"line":365,"column":4},"end":{"line":373,"column":5}}},"16":{"name":"setValidators","line":391,"loc":{"start":{"line":391,"column":4},"end":{"line":400,"column":5}}},"17":{"name":"setApplications","line":416,"loc":{"start":{"line":416,"column":4},"end":{"line":425,"column":5}}},"18":{"name":"getEntities","line":440,"loc":{"start":{"line":440,"column":4},"end":{"line":448,"column":5}}},"19":{"name":"_getSelectedRewardedEntityListType","line":469,"loc":{"start":{"line":469,"column":4},"end":{"line":473,"column":5}}},"20":{"name":"_getMaxAppRewardsDailyAmount","line":487,"loc":{"start":{"line":487,"column":4},"end":{"line":495,"column":5}}},"21":{"name":"_getValidatorRewardsDailyAmountPerValidator","line":508,"loc":{"start":{"line":508,"column":4},"end":{"line":516,"column":5}}},"22":{"name":"_validateSubmittedData","line":527,"loc":{"start":{"line":527,"column":4},"end":{"line":535,"column":5}}},"23":{"name":"_rewardsHashIsValid","line":556,"loc":{"start":{"line":556,"column":4},"end":{"line":565,"column":5}}},"24":{"name":"_requiredValidatorsForValidatorsRewards","line":577,"loc":{"start":{"line":577,"column":4},"end":{"line":581,"column":5}}},"25":{"name":"_requiredValidatorsForAppRewards","line":594,"loc":{"start":{"line":594,"column":4},"end":{"line":598,"column":5}}},"26":{"name":"_currentRewardsDay","line":610,"loc":{"start":{"line":610,"column":4},"end":{"line":614,"column":5}}},"27":{"name":"_updateCurrentEntityList","line":632,"loc":{"start":{"line":632,"column":4},"end":{"line":638,"column":5}}},"28":{"name":"_updatePreviousEntityList","line":660,"loc":{"start":{"line":660,"column":4},"end":{"line":663,"column":5}}},"29":{"name":"_deleteCurrentEntityList","line":687,"loc":{"start":{"line":687,"column":4},"end":{"line":690,"column":5}}},"30":{"name":"_deletePreviousEntityList","line":702,"loc":{"start":{"line":702,"column":4},"end":{"line":705,"column":5}}},"31":{"name":"_resetDailyRewards","line":717,"loc":{"start":{"line":717,"column":4},"end":{"line":722,"column":5}}}},"statementMap":{"1":{"start":{"line":90,"column":8},"end":{"line":90,"column":3309}},"2":{"start":{"line":98,"column":8},"end":{"line":98,"column":3570}},"3":{"start":{"line":99,"column":12},"end":{"line":99,"column":3635}},"4":{"start":{"line":108,"column":8},"end":{"line":108,"column":3880}},"5":{"start":{"line":109,"column":12},"end":{"line":109,"column":3945}},"6":{"start":{"line":118,"column":8},"end":{"line":118,"column":4186}},"7":{"start":{"line":119,"column":12},"end":{"line":119,"column":4288}},"8":{"start":{"line":124,"column":12},"end":{"line":124,"column":4459}},"9":{"start":{"line":133,"column":8},"end":{"line":133,"column":4711}},"10":{"start":{"line":141,"column":8},"end":{"line":141,"column":4974}},"11":{"start":{"line":149,"column":8},"end":{"line":149,"column":5201}},"12":{"start":{"line":175,"column":8},"end":{"line":175,"column":6026}},"13":{"start":{"line":177,"column":12},"end":{"line":177,"column":6117}},"14":{"start":{"line":178,"column":16},"end":{"line":178,"column":92}},"15":{"start":{"line":179,"column":16},"end":{"line":179,"column":106}},"16":{"start":{"line":179,"column":98},"end":{"line":179,"column":106}},"17":{"start":{"line":181,"column":16},"end":{"line":181,"column":91}},"18":{"start":{"line":183,"column":12},"end":{"line":183,"column":121}},"19":{"start":{"line":184,"column":12},"end":{"line":184,"column":38}},"20":{"start":{"line":186,"column":8},"end":{"line":186,"column":16}},"21":{"start":{"line":212,"column":8},"end":{"line":212,"column":7592}},"22":{"start":{"line":216,"column":8},"end":{"line":216,"column":7751}},"23":{"start":{"line":217,"column":12},"end":{"line":217,"column":81}},"24":{"start":{"line":220,"column":8},"end":{"line":220,"column":81}},"25":{"start":{"line":224,"column":8},"end":{"line":224,"column":8240}},"26":{"start":{"line":225,"column":12},"end":{"line":225,"column":79}},"27":{"start":{"line":226,"column":12},"end":{"line":226,"column":8460}},"28":{"start":{"line":230,"column":12},"end":{"line":230,"column":98}},"29":{"start":{"line":231,"column":12},"end":{"line":231,"column":22}},"30":{"start":{"line":233,"column":8},"end":{"line":233,"column":16}},"31":{"start":{"line":247,"column":8},"end":{"line":247,"column":59}},"32":{"start":{"line":248,"column":8},"end":{"line":248,"column":65}},"33":{"start":{"line":249,"column":8},"end":{"line":249,"column":54}},"34":{"start":{"line":250,"column":8},"end":{"line":250,"column":65}},"35":{"start":{"line":251,"column":8},"end":{"line":251,"column":19}},"36":{"start":{"line":269,"column":8},"end":{"line":269,"column":9973}},"37":{"start":{"line":270,"column":12},"end":{"line":270,"column":64}},"38":{"start":{"line":272,"column":12},"end":{"line":272,"column":65}},"39":{"start":{"line":293,"column":8},"end":{"line":293,"column":10743}},"40":{"start":{"line":294,"column":11},"end":{"line":294,"column":64}},"41":{"start":{"line":295,"column":11},"end":{"line":295,"column":67}},"42":{"start":{"line":297,"column":12},"end":{"line":297,"column":105}},"43":{"start":{"line":298,"column":12},"end":{"line":298,"column":65}},"44":{"start":{"line":299,"column":11},"end":{"line":299,"column":67}},"45":{"start":{"line":301,"column":8},"end":{"line":301,"column":19}},"46":{"start":{"line":323,"column":8},"end":{"line":323,"column":11960}},"47":{"start":{"line":324,"column":12},"end":{"line":324,"column":78}},"48":{"start":{"line":326,"column":12},"end":{"line":326,"column":76}},"49":{"start":{"line":328,"column":8},"end":{"line":328,"column":19}},"50":{"start":{"line":347,"column":8},"end":{"line":347,"column":50}},"51":{"start":{"line":348,"column":8},"end":{"line":348,"column":70}},"52":{"start":{"line":349,"column":8},"end":{"line":349,"column":74}},"53":{"start":{"line":350,"column":8},"end":{"line":350,"column":12965}},"54":{"start":{"line":352,"column":12},"end":{"line":352,"column":67}},"55":{"start":{"line":353,"column":12},"end":{"line":353,"column":85}},"56":{"start":{"line":355,"column":8},"end":{"line":355,"column":54}},"57":{"start":{"line":374,"column":8},"end":{"line":374,"column":48}},"58":{"start":{"line":375,"column":8},"end":{"line":375,"column":68}},"59":{"start":{"line":376,"column":8},"end":{"line":376,"column":72}},"60":{"start":{"line":377,"column":8},"end":{"line":377,"column":14045}},"61":{"start":{"line":379,"column":12},"end":{"line":379,"column":65}},"62":{"start":{"line":380,"column":12},"end":{"line":380,"column":81}},"63":{"start":{"line":382,"column":8},"end":{"line":382,"column":52}},"64":{"start":{"line":402,"column":8},"end":{"line":402,"column":15040}},"65":{"start":{"line":403,"column":12},"end":{"line":403,"column":62}},"66":{"start":{"line":405,"column":8},"end":{"line":405,"column":70}},"67":{"start":{"line":406,"column":8},"end":{"line":406,"column":56}},"68":{"start":{"line":407,"column":8},"end":{"line":407,"column":19}},"69":{"start":{"line":427,"column":8},"end":{"line":427,"column":15904}},"70":{"start":{"line":428,"column":16},"end":{"line":428,"column":68}},"71":{"start":{"line":429,"column":8},"end":{"line":429,"column":74}},"72":{"start":{"line":430,"column":8},"end":{"line":430,"column":58}},"73":{"start":{"line":431,"column":8},"end":{"line":431,"column":19}},"74":{"start":{"line":449,"column":8},"end":{"line":449,"column":16657}},"75":{"start":{"line":450,"column":12},"end":{"line":450,"column":16726}},"76":{"start":{"line":451,"column":16},"end":{"line":451,"column":61}},"77":{"start":{"line":453,"column":16},"end":{"line":453,"column":62}},"78":{"start":{"line":456,"column":12},"end":{"line":456,"column":17005}},"79":{"start":{"line":457,"column":16},"end":{"line":457,"column":59}},"80":{"start":{"line":459,"column":16},"end":{"line":459,"column":60}},"81":{"start":{"line":474,"column":8},"end":{"line":474,"column":17674}},"82":{"start":{"line":475,"column":12},"end":{"line":475,"column":20}},"83":{"start":{"line":477,"column":12},"end":{"line":477,"column":20}},"84":{"start":{"line":496,"column":8},"end":{"line":496,"column":18351}},"85":{"start":{"line":517,"column":8},"end":{"line":517,"column":19086}},"86":{"start":{"line":537,"column":8},"end":{"line":537,"column":24}},"87":{"start":{"line":538,"column":8},"end":{"line":538,"column":19699}},"88":{"start":{"line":539,"column":12},"end":{"line":539,"column":37}},"89":{"start":{"line":540,"column":12},"end":{"line":540,"column":87}},"90":{"start":{"line":540,"column":74},"end":{"line":540,"column":86}},"91":{"start":{"line":542,"column":8},"end":{"line":542,"column":19894}},"92":{"start":{"line":546,"column":8},"end":{"line":546,"column":18}},"93":{"start":{"line":566,"column":8},"end":{"line":566,"column":20724}},"94":{"start":{"line":582,"column":8},"end":{"line":582,"column":21177}},"95":{"start":{"line":583,"column":12},"end":{"line":583,"column":62}},"96":{"start":{"line":585,"column":12},"end":{"line":585,"column":63}},"97":{"start":{"line":599,"column":8},"end":{"line":599,"column":21753}},"98":{"start":{"line":600,"column":12},"end":{"line":600,"column":165}},"99":{"start":{"line":602,"column":12},"end":{"line":602,"column":166}},"100":{"start":{"line":616,"column":7},"end":{"line":616,"column":22562}},"101":{"start":{"line":617,"column":12},"end":{"line":617,"column":109}},"102":{"start":{"line":619,"column":12},"end":{"line":619,"column":20}},"103":{"start":{"line":639,"column":8},"end":{"line":639,"column":74}},"104":{"start":{"line":640,"column":8},"end":{"line":640,"column":23396}},"105":{"start":{"line":641,"column":12},"end":{"line":641,"column":56}},"106":{"start":{"line":642,"column":12},"end":{"line":642,"column":34}},"107":{"start":{"line":645,"column":8},"end":{"line":645,"column":23598}},"108":{"start":{"line":646,"column":12},"end":{"line":646,"column":23663}},"109":{"start":{"line":649,"column":16},"end":{"line":649,"column":64}},"110":{"start":{"line":651,"column":12},"end":{"line":651,"column":59}},"111":{"start":{"line":653,"column":8},"end":{"line":653,"column":19}},"112":{"start":{"line":664,"column":8},"end":{"line":664,"column":76}},"113":{"start":{"line":665,"column":8},"end":{"line":665,"column":24297}},"114":{"start":{"line":669,"column":12},"end":{"line":669,"column":57}},"115":{"start":{"line":670,"column":12},"end":{"line":670,"column":35}},"116":{"start":{"line":672,"column":8},"end":{"line":672,"column":24558}},"117":{"start":{"line":673,"column":12},"end":{"line":673,"column":24645}},"118":{"start":{"line":676,"column":16},"end":{"line":676,"column":87}},"119":{"start":{"line":678,"column":12},"end":{"line":678,"column":82}},"120":{"start":{"line":680,"column":8},"end":{"line":680,"column":19}},"121":{"start":{"line":691,"column":8},"end":{"line":691,"column":25287}},"122":{"start":{"line":695,"column":8},"end":{"line":695,"column":19}},"123":{"start":{"line":706,"column":8},"end":{"line":706,"column":25828}},"124":{"start":{"line":710,"column":8},"end":{"line":710,"column":19}},"125":{"start":{"line":723,"column":9},"end":{"line":723,"column":64}},"126":{"start":{"line":724,"column":8},"end":{"line":724,"column":81}},"127":{"start":{"line":725,"column":8},"end":{"line":725,"column":26448}},"128":{"start":{"line":726,"column":12},"end":{"line":726,"column":26517}},"129":{"start":{"line":732,"column":12},"end":{"line":732,"column":77}},"130":{"start":{"line":733,"column":12},"end":{"line":733,"column":73}},"131":{"start":{"line":734,"column":12},"end":{"line":734,"column":86}}},"branchMap":{"1":{"line":90,"type":"if","locations":[{"start":{"line":90,"column":8},"end":{"line":90,"column":8}},{"start":{"line":90,"column":8},"end":{"line":90,"column":8}}]},"2":{"line":99,"type":"if","locations":[{"start":{"line":99,"column":12},"end":{"line":99,"column":12}},{"start":{"line":99,"column":12},"end":{"line":99,"column":12}}]},"3":{"line":109,"type":"if","locations":[{"start":{"line":109,"column":12},"end":{"line":109,"column":12}},{"start":{"line":109,"column":12},"end":{"line":109,"column":12}}]},"4":{"line":118,"type":"if","locations":[{"start":{"line":118,"column":8},"end":{"line":118,"column":8}},{"start":{"line":118,"column":8},"end":{"line":118,"column":8}}]},"5":{"line":119,"type":"if","locations":[{"start":{"line":119,"column":12},"end":{"line":119,"column":12}},{"start":{"line":119,"column":12},"end":{"line":119,"column":12}}]},"6":{"line":124,"type":"if","locations":[{"start":{"line":124,"column":12},"end":{"line":124,"column":12}},{"start":{"line":124,"column":12},"end":{"line":124,"column":12}}]},"7":{"line":133,"type":"if","locations":[{"start":{"line":133,"column":8},"end":{"line":133,"column":8}},{"start":{"line":133,"column":8},"end":{"line":133,"column":8}}]},"8":{"line":141,"type":"if","locations":[{"start":{"line":141,"column":8},"end":{"line":141,"column":8}},{"start":{"line":141,"column":8},"end":{"line":141,"column":8}}]},"9":{"line":149,"type":"if","locations":[{"start":{"line":149,"column":8},"end":{"line":149,"column":8}},{"start":{"line":149,"column":8},"end":{"line":149,"column":8}}]},"10":{"line":175,"type":"if","locations":[{"start":{"line":175,"column":8},"end":{"line":175,"column":8}},{"start":{"line":175,"column":8},"end":{"line":175,"column":8}}]},"11":{"line":177,"type":"if","locations":[{"start":{"line":177,"column":12},"end":{"line":177,"column":12}},{"start":{"line":177,"column":12},"end":{"line":177,"column":12}}]},"12":{"line":179,"type":"if","locations":[{"start":{"line":179,"column":16},"end":{"line":179,"column":16}},{"start":{"line":179,"column":16},"end":{"line":179,"column":16}}]},"13":{"line":212,"type":"if","locations":[{"start":{"line":212,"column":8},"end":{"line":212,"column":8}},{"start":{"line":212,"column":8},"end":{"line":212,"column":8}}]},"14":{"line":216,"type":"if","locations":[{"start":{"line":216,"column":8},"end":{"line":216,"column":8}},{"start":{"line":216,"column":8},"end":{"line":216,"column":8}}]},"15":{"line":224,"type":"if","locations":[{"start":{"line":224,"column":8},"end":{"line":224,"column":8}},{"start":{"line":224,"column":8},"end":{"line":224,"column":8}}]},"16":{"line":226,"type":"if","locations":[{"start":{"line":226,"column":12},"end":{"line":226,"column":12}},{"start":{"line":226,"column":12},"end":{"line":226,"column":12}}]},"17":{"line":269,"type":"if","locations":[{"start":{"line":269,"column":8},"end":{"line":269,"column":8}},{"start":{"line":269,"column":8},"end":{"line":269,"column":8}}]},"18":{"line":293,"type":"if","locations":[{"start":{"line":293,"column":8},"end":{"line":293,"column":8}},{"start":{"line":293,"column":8},"end":{"line":293,"column":8}}]},"19":{"line":323,"type":"if","locations":[{"start":{"line":323,"column":8},"end":{"line":323,"column":8}},{"start":{"line":323,"column":8},"end":{"line":323,"column":8}}]},"20":{"line":350,"type":"if","locations":[{"start":{"line":350,"column":8},"end":{"line":350,"column":8}},{"start":{"line":350,"column":8},"end":{"line":350,"column":8}}]},"21":{"line":377,"type":"if","locations":[{"start":{"line":377,"column":8},"end":{"line":377,"column":8}},{"start":{"line":377,"column":8},"end":{"line":377,"column":8}}]},"22":{"line":402,"type":"if","locations":[{"start":{"line":402,"column":8},"end":{"line":402,"column":8}},{"start":{"line":402,"column":8},"end":{"line":402,"column":8}}]},"23":{"line":427,"type":"if","locations":[{"start":{"line":427,"column":8},"end":{"line":427,"column":8}},{"start":{"line":427,"column":8},"end":{"line":427,"column":8}}]},"24":{"line":449,"type":"if","locations":[{"start":{"line":449,"column":8},"end":{"line":449,"column":8}},{"start":{"line":449,"column":8},"end":{"line":449,"column":8}}]},"25":{"line":450,"type":"if","locations":[{"start":{"line":450,"column":12},"end":{"line":450,"column":12}},{"start":{"line":450,"column":12},"end":{"line":450,"column":12}}]},"26":{"line":456,"type":"if","locations":[{"start":{"line":456,"column":12},"end":{"line":456,"column":12}},{"start":{"line":456,"column":12},"end":{"line":456,"column":12}}]},"27":{"line":474,"type":"if","locations":[{"start":{"line":474,"column":8},"end":{"line":474,"column":8}},{"start":{"line":474,"column":8},"end":{"line":474,"column":8}}]},"28":{"line":540,"type":"if","locations":[{"start":{"line":540,"column":12},"end":{"line":540,"column":12}},{"start":{"line":540,"column":12},"end":{"line":540,"column":12}}]},"29":{"line":542,"type":"if","locations":[{"start":{"line":542,"column":8},"end":{"line":542,"column":8}},{"start":{"line":542,"column":8},"end":{"line":542,"column":8}}]},"30":{"line":582,"type":"if","locations":[{"start":{"line":582,"column":8},"end":{"line":582,"column":8}},{"start":{"line":582,"column":8},"end":{"line":582,"column":8}}]},"31":{"line":599,"type":"if","locations":[{"start":{"line":599,"column":8},"end":{"line":599,"column":8}},{"start":{"line":599,"column":8},"end":{"line":599,"column":8}}]},"32":{"line":616,"type":"if","locations":[{"start":{"line":616,"column":7},"end":{"line":616,"column":7}},{"start":{"line":616,"column":7},"end":{"line":616,"column":7}}]},"33":{"line":640,"type":"if","locations":[{"start":{"line":640,"column":8},"end":{"line":640,"column":8}},{"start":{"line":640,"column":8},"end":{"line":640,"column":8}}]},"34":{"line":646,"type":"if","locations":[{"start":{"line":646,"column":12},"end":{"line":646,"column":12}},{"start":{"line":646,"column":12},"end":{"line":646,"column":12}}]},"35":{"line":665,"type":"if","locations":[{"start":{"line":665,"column":8},"end":{"line":665,"column":8}},{"start":{"line":665,"column":8},"end":{"line":665,"column":8}}]},"36":{"line":673,"type":"if","locations":[{"start":{"line":673,"column":12},"end":{"line":673,"column":12}},{"start":{"line":673,"column":12},"end":{"line":673,"column":12}}]}}},"contracts/token/PropsTimeBasedTransfers.sol":{"l":{},"path":"/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsTimeBasedTransfers.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}},"contracts/token/PropsToken.sol":{"l":{"46":4,"48":4,"50":4,"51":4,"52":4},"path":"/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsToken.sol","s":{"1":4,"2":4,"3":4},"b":{},"f":{"1":4},"fnMap":{"1":{"name":"initialize","line":37,"loc":{"start":{"line":37,"column":2},"end":{"line":45,"column":3}}}},"statementMap":{"1":{"start":{"line":46,"column":4},"end":{"line":46,"column":22}},"2":{"start":{"line":48,"column":4},"end":{"line":48,"column":62}},"3":{"start":{"line":52,"column":4},"end":{"line":52,"column":30}}},"branchMap":{}}} \ No newline at end of file +{"contracts/token/ERC865Token.sol":{"l":{},"path":"/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/ERC865Token.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}},"contracts/token/IERC865.sol":{"l":{},"path":"/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/IERC865.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}},"contracts/token/PropsRewards.sol":{"l":{"40":9,"44":5,"52":2,"53":2,"64":2,"65":2,"66":2,"70":2,"71":2,"103":1,"104":1,"121":1,"122":1,"126":1,"138":2,"139":2,"140":2,"141":1,"154":1,"155":1,"156":1,"163":1,"167":1,"176":3,"177":1,"181":1,"190":2,"194":2,"196":2},"path":"/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsRewards.sol","s":{"1":9,"2":2,"3":2,"4":2,"5":2,"6":2,"7":1,"8":1,"9":1,"10":1,"11":1,"12":2,"13":2,"14":2,"15":1,"16":1,"17":1,"18":1,"19":1,"20":3,"21":1,"22":1,"23":2,"24":2,"25":2},"b":{"1":[5,4],"2":[1,0],"3":[1,0],"4":[2,0],"5":[1,1],"6":[1,0],"7":[1,2],"8":[1,0],"9":[2,0]},"f":{"1":9,"2":2,"3":2,"4":1,"5":2,"6":1,"7":1,"8":1,"9":3,"10":2},"fnMap":{"1":{"name":"onlyController","line":39,"loc":{"start":{"line":39,"column":4},"end":{"line":39,"column":27}}},"2":{"name":"initialize","line":51,"loc":{"start":{"line":51,"column":4},"end":{"line":51,"column":49}}},"3":{"name":"initializePermitUpgrade","line":60,"loc":{"start":{"line":60,"column":4},"end":{"line":63,"column":5}}},"4":{"name":"permit","line":94,"loc":{"start":{"line":94,"column":4},"end":{"line":102,"column":16}}},"5":{"name":"reclaimToken","line":133,"loc":{"start":{"line":133,"column":4},"end":{"line":137,"column":31}}},"6":{"name":"updateController","line":148,"loc":{"start":{"line":148,"column":4},"end":{"line":153,"column":5}}},"7":{"name":"addMinter","line":162,"loc":{"start":{"line":162,"column":4},"end":{"line":162,"column":59}}},"8":{"name":"removeMinter","line":166,"loc":{"start":{"line":166,"column":4},"end":{"line":166,"column":62}}},"9":{"name":"mint","line":175,"loc":{"start":{"line":175,"column":4},"end":{"line":175,"column":57}}},"10":{"name":"_initialize","line":189,"loc":{"start":{"line":189,"column":4},"end":{"line":189,"column":71}}}},"statementMap":{"1":{"start":{"line":40,"column":8},"end":{"line":40,"column":1301}},"2":{"start":{"line":52,"column":8},"end":{"line":52,"column":28}},"3":{"start":{"line":53,"column":8},"end":{"line":53,"column":41}},"4":{"start":{"line":65,"column":8},"end":{"line":65,"column":30}},"5":{"start":{"line":70,"column":8},"end":{"line":70,"column":28}},"6":{"start":{"line":71,"column":8},"end":{"line":71,"column":2180}},"7":{"start":{"line":103,"column":8},"end":{"line":103,"column":62}},"8":{"start":{"line":104,"column":8},"end":{"line":104,"column":3159}},"9":{"start":{"line":121,"column":8},"end":{"line":121,"column":63}},"10":{"start":{"line":122,"column":8},"end":{"line":122,"column":3761}},"11":{"start":{"line":126,"column":8},"end":{"line":126,"column":42}},"12":{"start":{"line":138,"column":8},"end":{"line":138,"column":63}},"13":{"start":{"line":139,"column":8},"end":{"line":139,"column":47}},"14":{"start":{"line":140,"column":8},"end":{"line":140,"column":71}},"15":{"start":{"line":154,"column":8},"end":{"line":154,"column":82}},"16":{"start":{"line":155,"column":8},"end":{"line":155,"column":31}},"17":{"start":{"line":156,"column":8},"end":{"line":156,"column":4818}},"18":{"start":{"line":163,"column":8},"end":{"line":163,"column":30}},"19":{"start":{"line":167,"column":8},"end":{"line":167,"column":31}},"20":{"start":{"line":176,"column":8},"end":{"line":176,"column":75}},"21":{"start":{"line":177,"column":8},"end":{"line":177,"column":5432}},"22":{"start":{"line":181,"column":8},"end":{"line":181,"column":31}},"23":{"start":{"line":190,"column":8},"end":{"line":190,"column":5892}},"24":{"start":{"line":194,"column":8},"end":{"line":194,"column":31}},"25":{"start":{"line":196,"column":8},"end":{"line":196,"column":49}}},"branchMap":{"1":{"line":40,"type":"if","locations":[{"start":{"line":40,"column":8},"end":{"line":40,"column":8}},{"start":{"line":40,"column":8},"end":{"line":40,"column":8}}]},"2":{"line":103,"type":"if","locations":[{"start":{"line":103,"column":8},"end":{"line":103,"column":8}},{"start":{"line":103,"column":8},"end":{"line":103,"column":8}}]},"3":{"line":122,"type":"if","locations":[{"start":{"line":122,"column":8},"end":{"line":122,"column":8}},{"start":{"line":122,"column":8},"end":{"line":122,"column":8}}]},"4":{"line":138,"type":"if","locations":[{"start":{"line":138,"column":8},"end":{"line":138,"column":8}},{"start":{"line":138,"column":8},"end":{"line":138,"column":8}}]},"5":{"line":140,"type":"if","locations":[{"start":{"line":140,"column":8},"end":{"line":140,"column":8}},{"start":{"line":140,"column":8},"end":{"line":140,"column":8}}]},"6":{"line":154,"type":"if","locations":[{"start":{"line":154,"column":8},"end":{"line":154,"column":8}},{"start":{"line":154,"column":8},"end":{"line":154,"column":8}}]},"7":{"line":176,"type":"if","locations":[{"start":{"line":176,"column":8},"end":{"line":176,"column":8}},{"start":{"line":176,"column":8},"end":{"line":176,"column":8}}]},"8":{"line":177,"type":"if","locations":[{"start":{"line":177,"column":8},"end":{"line":177,"column":8}},{"start":{"line":177,"column":8},"end":{"line":177,"column":8}}]},"9":{"line":190,"type":"if","locations":[{"start":{"line":190,"column":8},"end":{"line":190,"column":8}},{"start":{"line":190,"column":8},"end":{"line":190,"column":8}}]}}},"contracts/token/PropsRewardsLib.sol":{"l":{},"path":"/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsRewardsLib.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}},"contracts/token/PropsTimeBasedTransfers.sol":{"l":{},"path":"/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsTimeBasedTransfers.sol","s":{},"b":{},"f":{},"fnMap":{},"statementMap":{},"branchMap":{}},"contracts/token/PropsToken.sol":{"l":{"39":2,"41":2,"43":2,"44":2,"45":2,"46":2},"path":"/Users/jretina/Programming/PROPSProject/props-token-distribution/contracts/token/PropsToken.sol","s":{"1":2,"2":2,"3":2},"b":{},"f":{"1":2},"fnMap":{"1":{"name":"initialize","line":35,"loc":{"start":{"line":35,"column":2},"end":{"line":38,"column":3}}}},"statementMap":{"1":{"start":{"line":39,"column":4},"end":{"line":39,"column":22}},"2":{"start":{"line":41,"column":4},"end":{"line":41,"column":62}},"3":{"start":{"line":46,"column":4},"end":{"line":46,"column":30}}},"branchMap":{}}} \ No newline at end of file diff --git a/coverage/index.html b/coverage/index.html index e5e76cc4..91e8698c 100644 --- a/coverage/index.html +++ b/coverage/index.html @@ -20,24 +20,24 @@
pragma solidity ^0.4.24;
-
+/*
+ THIS CONTRACT IS OBSOLETE AND REMAINS ONLY FOR UPGRADABILITY/STORAGE CONSIDERATIONS
+*/
import "zos-lib/contracts/Initializable.sol";
import "openzeppelin-eth/contracts/token/ERC20/ERC20.sol";
import { ECDSA } from "openzeppelin-eth/contracts/cryptography/ECDSA.sol";
@@ -694,310 +700,310 @@
/* hashed tx of transfers performed */
mapping(bytes32 => bool) hashedTxs;
- /**
- * @dev Submit a presigned transfer
- * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
- * @param _signature bytes The signature, issued by the owner.
- * @param _to address The address which you want to transfer to.
- * @param _value uint256 The amount of tokens to be transferred.
- * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
- * @param _nonce uint256 Presigned transaction number.
- */
- function transferPreSigned(
- bytes _signature,
- address _to,
- uint256 _value,
- uint256 _fee,
- uint256 _nonce
- )
- public
- returns (bool)
- {
- Erequire(_to != address(0), "Invalid _to address");
+ // /**
+ // * @dev Submit a presigned transfer
+ // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
+ // * @param _signature bytes The signature, issued by the owner.
+ // * @param _to address The address which you want to transfer to.
+ // * @param _value uint256 The amount of tokens to be transferred.
+ // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
+ // * @param _nonce uint256 Presigned transaction number.
+ // */
+ // function transferPreSigned(
+ // bytes _signature,
+ // address _to,
+ // uint256 _value,
+ // uint256 _fee,
+ // uint256 _nonce
+ // )
+ // public
+ // returns (bool)
+ // {
+ // require(_to != address(0), "Invalid _to address");
- bytes32 hashedParams = getTransferPreSignedHash(address(this), _to, _value, _fee, _nonce);
- address from = ECDSA.recover(hashedParams, _signature);
- Erequire(from != address(0), "Invalid from address recovered");
- bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams));
- require(hashedTxs[hashedTx] == false,"Transaction hash was already used");
- hashedTxs[hashedTx] = true;
- _transfer(from, _to, _value);
- _transfer(from, msg.sender, _fee);
+ // bytes32 hashedParams = getTransferPreSignedHash(address(this), _to, _value, _fee, _nonce);
+ // address from = ECDSA.recover(hashedParams, _signature);
+ // require(from != address(0), "Invalid from address recovered");
+ // bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams));
+ // require(hashedTxs[hashedTx] == false,"Transaction hash was already used");
+ // hashedTxs[hashedTx] = true;
+ // _transfer(from, _to, _value);
+ // _transfer(from, msg.sender, _fee);
- emit TransferPreSigned(from, _to, msg.sender, _value, _fee);
- return true;
- }
+ // emit TransferPreSigned(from, _to, msg.sender, _value, _fee);
+ // return true;
+ // }
- /**
- * @dev Submit a presigned approval
- * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
- * @param _signature bytes The signature, issued by the owner.
- * @param _spender address The address which will spend the funds.
- * @param _value uint256 The amount of tokens to allow.
- * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
- * @param _nonce uint256 Presigned transaction number.
- */
- function approvePreSigned(
- bytes _signature,
- address _spender,
- uint256 _value,
- uint256 _fee,
- uint256 _nonce
- )
- public
- returns (bool)
- {
- Erequire(_spender != address(0),"Invalid _spender address");
+ // /**
+ // * @dev Submit a presigned approval
+ // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
+ // * @param _signature bytes The signature, issued by the owner.
+ // * @param _spender address The address which will spend the funds.
+ // * @param _value uint256 The amount of tokens to allow.
+ // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
+ // * @param _nonce uint256 Presigned transaction number.
+ // */
+ // function approvePreSigned(
+ // bytes _signature,
+ // address _spender,
+ // uint256 _value,
+ // uint256 _fee,
+ // uint256 _nonce
+ // )
+ // public
+ // returns (bool)
+ // {
+ // require(_spender != address(0),"Invalid _spender address");
- bytes32 hashedParams = getApprovePreSignedHash(address(this), _spender, _value, _fee, _nonce);
- address from = ECDSA.recover(hashedParams, _signature);
- Erequire(from != address(0),"Invalid from address recovered");
- bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams));
- Erequire(hashedTxs[hashedTx] == false,"Transaction hash was already used");
- hashedTxs[hashedTx] = true;
- _approve(from, _spender, _value);
- _transfer(from, msg.sender, _fee);
+ // bytes32 hashedParams = getApprovePreSignedHash(address(this), _spender, _value, _fee, _nonce);
+ // address from = ECDSA.recover(hashedParams, _signature);
+ // require(from != address(0),"Invalid from address recovered");
+ // bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams));
+ // require(hashedTxs[hashedTx] == false,"Transaction hash was already used");
+ // hashedTxs[hashedTx] = true;
+ // _approve(from, _spender, _value);
+ // _transfer(from, msg.sender, _fee);
- emit ApprovalPreSigned(from, _spender, msg.sender, _value, _fee);
- return true;
- }
+ // emit ApprovalPreSigned(from, _spender, msg.sender, _value, _fee);
+ // return true;
+ // }
- /**
- * @dev Increase the amount of tokens that an owner allowed to a spender.
- * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
- * @param _signature bytes The signature, issued by the owner.
- * @param _spender address The address which will spend the funds.
- * @param _addedValue uint256 The amount of tokens to increase the allowance by.
- * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
- * @param _nonce uint256 Presigned transaction number.
- */
- function increaseAllowancePreSigned(
- bytes _signature,
- address _spender,
- uint256 _addedValue,
- uint256 _fee,
- uint256 _nonce
- )
- public
- returns (bool)
- {
- Erequire(_spender != address(0),"Invalid _spender address");
+ // /**
+ // * @dev Increase the amount of tokens that an owner allowed to a spender.
+ // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
+ // * @param _signature bytes The signature, issued by the owner.
+ // * @param _spender address The address which will spend the funds.
+ // * @param _addedValue uint256 The amount of tokens to increase the allowance by.
+ // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
+ // * @param _nonce uint256 Presigned transaction number.
+ // */
+ // function increaseAllowancePreSigned(
+ // bytes _signature,
+ // address _spender,
+ // uint256 _addedValue,
+ // uint256 _fee,
+ // uint256 _nonce
+ // )
+ // public
+ // returns (bool)
+ // {
+ // require(_spender != address(0),"Invalid _spender address");
- bytes32 hashedParams = getIncreaseAllowancePreSignedHash(address(this), _spender, _addedValue, _fee, _nonce);
- address from = ECDSA.recover(hashedParams, _signature);
- Erequire(from != address(0),"Invalid from address recovered");
- bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams));
- Erequire(hashedTxs[hashedTx] == false,"Transaction hash was already used");
- hashedTxs[hashedTx] = true;
- _approve(from, _spender, allowance(from, _spender).add(_addedValue));
- _transfer(from, msg.sender, _fee);
+ // bytes32 hashedParams = getIncreaseAllowancePreSignedHash(address(this), _spender, _addedValue, _fee, _nonce);
+ // address from = ECDSA.recover(hashedParams, _signature);
+ // require(from != address(0),"Invalid from address recovered");
+ // bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams));
+ // require(hashedTxs[hashedTx] == false,"Transaction hash was already used");
+ // hashedTxs[hashedTx] = true;
+ // _approve(from, _spender, allowance(from, _spender).add(_addedValue));
+ // _transfer(from, msg.sender, _fee);
- emit ApprovalPreSigned(from, _spender, msg.sender, allowance(from, _spender), _fee);
- return true;
- }
+ // emit ApprovalPreSigned(from, _spender, msg.sender, allowance(from, _spender), _fee);
+ // return true;
+ // }
- /**
- * @dev Decrease the amount of tokens that an owner allowed to a spender.
- * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
- * @param _signature bytes The signature, issued by the owner
- * @param _spender address The address which will spend the funds.
- * @param _subtractedValue uint256 The amount of tokens to decrease the allowance by.
- * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
- * @param _nonce uint256 Presigned transaction number.
- */
- function decreaseAllowancePreSigned(
- bytes _signature,
- address _spender,
- uint256 _subtractedValue,
- uint256 _fee,
- uint256 _nonce
- )
- public
- returns (bool)
- {
- Erequire(_spender != address(0),"Invalid _spender address");
+ // /**
+ // * @dev Decrease the amount of tokens that an owner allowed to a spender.
+ // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
+ // * @param _signature bytes The signature, issued by the owner
+ // * @param _spender address The address which will spend the funds.
+ // * @param _subtractedValue uint256 The amount of tokens to decrease the allowance by.
+ // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
+ // * @param _nonce uint256 Presigned transaction number.
+ // */
+ // function decreaseAllowancePreSigned(
+ // bytes _signature,
+ // address _spender,
+ // uint256 _subtractedValue,
+ // uint256 _fee,
+ // uint256 _nonce
+ // )
+ // public
+ // returns (bool)
+ // {
+ // require(_spender != address(0),"Invalid _spender address");
- bytes32 hashedParams = getDecreaseAllowancePreSignedHash(address(this), _spender, _subtractedValue, _fee, _nonce);
- address from = ECDSA.recover(hashedParams, _signature);
- Erequire(from != address(0),"Invalid from address recovered");
- bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams));
- Erequire(hashedTxs[hashedTx] == false,"Transaction hash was already used");
- // if substractedValue is greater than allowance will fail as allowance is uint256
- hashedTxs[hashedTx] = true;
- _approve(from, _spender, allowance(from,_spender).sub(_subtractedValue));
- _transfer(from, msg.sender, _fee);
+ // bytes32 hashedParams = getDecreaseAllowancePreSignedHash(address(this), _spender, _subtractedValue, _fee, _nonce);
+ // address from = ECDSA.recover(hashedParams, _signature);
+ // require(from != address(0),"Invalid from address recovered");
+ // bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams));
+ // require(hashedTxs[hashedTx] == false,"Transaction hash was already used");
+ // // if substractedValue is greater than allowance will fail as allowance is uint256
+ // hashedTxs[hashedTx] = true;
+ // _approve(from, _spender, allowance(from,_spender).sub(_subtractedValue));
+ // _transfer(from, msg.sender, _fee);
- emit ApprovalPreSigned(from, _spender, msg.sender, allowance(from, _spender), _fee);
- return true;
- }
+ // emit ApprovalPreSigned(from, _spender, msg.sender, allowance(from, _spender), _fee);
+ // return true;
+ // }
- /**
- * @dev Transfer tokens from one address to another
- * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
- * @param _signature bytes The signature, issued by the spender.
- * @param _from address The address which you want to send tokens from.
- * @param _to address The address which you want to transfer to.
- * @param _value uint256 The amount of tokens to be transferred.
- * @param _fee uint256 The amount of tokens paid to msg.sender, by the spender.
- * @param _nonce uint256 Presigned transaction number.
- */
- function transferFromPreSigned(
- bytes _signature,
- address _from,
- address _to,
- uint256 _value,
- uint256 _fee,
- uint256 _nonce
- )
- public
- returns (bool)
- {
- Erequire(_to != address(0),"Invalid _to address");
+ // /**
+ // * @dev Transfer tokens from one address to another
+ // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
+ // * @param _signature bytes The signature, issued by the spender.
+ // * @param _from address The address which you want to send tokens from.
+ // * @param _to address The address which you want to transfer to.
+ // * @param _value uint256 The amount of tokens to be transferred.
+ // * @param _fee uint256 The amount of tokens paid to msg.sender, by the spender.
+ // * @param _nonce uint256 Presigned transaction number.
+ // */
+ // function transferFromPreSigned(
+ // bytes _signature,
+ // address _from,
+ // address _to,
+ // uint256 _value,
+ // uint256 _fee,
+ // uint256 _nonce
+ // )
+ // public
+ // returns (bool)
+ // {
+ // require(_to != address(0),"Invalid _to address");
- bytes32 hashedParams = getTransferFromPreSignedHash(address(this), _from, _to, _value, _fee, _nonce);
+ // bytes32 hashedParams = getTransferFromPreSignedHash(address(this), _from, _to, _value, _fee, _nonce);
- address spender = ECDSA.recover(hashedParams, _signature);
- Erequire(spender != address(0),"Invalid spender address recovered");
- bytes32 hashedTx = keccak256(abi.encodePacked(spender, hashedParams));
- Erequire(hashedTxs[hashedTx] == false,"Transaction hash was already used");
- hashedTxs[hashedTx] = true;
- _transfer(_from, _to, _value);
- _approve(_from, spender, allowance(_from, spender).sub(_value));
- _transfer(spender, msg.sender, _fee);
+ // address spender = ECDSA.recover(hashedParams, _signature);
+ // require(spender != address(0),"Invalid spender address recovered");
+ // bytes32 hashedTx = keccak256(abi.encodePacked(spender, hashedParams));
+ // require(hashedTxs[hashedTx] == false,"Transaction hash was already used");
+ // hashedTxs[hashedTx] = true;
+ // _transfer(_from, _to, _value);
+ // _approve(_from, spender, allowance(_from, spender).sub(_value));
+ // _transfer(spender, msg.sender, _fee);
- emit TransferPreSigned(_from, _to, msg.sender, _value, _fee);
- return true;
- }
+ // emit TransferPreSigned(_from, _to, msg.sender, _value, _fee);
+ // return true;
+ // }
- /**
- * @dev Hash (keccak256) of the payload used by transferPreSigned
- * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
- * @param _token address The address of the token.
- * @param _to address The address which you want to transfer to.
- * @param _value uint256 The amount of tokens to be transferred.
- * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
- * @param _nonce uint256 Presigned transaction number.
- */
- function getTransferPreSignedHash(
- address _token,
- address _to,
- uint256 _value,
- uint256 _fee,
- uint256 _nonce
- )
- public
- pure
- returns (bytes32)
- {
- /* "0d98dcb1": getTransferPreSignedHash(address,address,uint256,uint256,uint256) */
- return keccak256(abi.encodePacked(bytes4(0x0d98dcb1), _token, _to, _value, _fee, _nonce));
- }
+ // /**
+ // * @dev Hash (keccak256) of the payload used by transferPreSigned
+ // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
+ // * @param _token address The address of the token.
+ // * @param _to address The address which you want to transfer to.
+ // * @param _value uint256 The amount of tokens to be transferred.
+ // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
+ // * @param _nonce uint256 Presigned transaction number.
+ // */
+ // function getTransferPreSignedHash(
+ // address _token,
+ // address _to,
+ // uint256 _value,
+ // uint256 _fee,
+ // uint256 _nonce
+ // )
+ // public
+ // pure
+ // returns (bytes32)
+ // {
+ // /* "0d98dcb1": getTransferPreSignedHash(address,address,uint256,uint256,uint256) */
+ // return keccak256(abi.encodePacked(bytes4(0x0d98dcb1), _token, _to, _value, _fee, _nonce));
+ // }
- /**
- * @dev Hash (keccak256) of the payload used by approvePreSigned
- * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
- * @param _token address The address of the token
- * @param _spender address The address which will spend the funds.
- * @param _value uint256 The amount of tokens to allow.
- * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
- * @param _nonce uint256 Presigned transaction number.
- */
- function getApprovePreSignedHash(
- address _token,
- address _spender,
- uint256 _value,
- uint256 _fee,
- uint256 _nonce
- )
- public
- pure
- returns (bytes32)
- {
- /* "79250dcf": getApprovePreSignedHash(address,address,uint256,uint256,uint256) */
- return keccak256(abi.encodePacked(bytes4(0x79250dcf), _token, _spender, _value, _fee, _nonce));
- }
+ // /**
+ // * @dev Hash (keccak256) of the payload used by approvePreSigned
+ // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
+ // * @param _token address The address of the token
+ // * @param _spender address The address which will spend the funds.
+ // * @param _value uint256 The amount of tokens to allow.
+ // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
+ // * @param _nonce uint256 Presigned transaction number.
+ // */
+ // function getApprovePreSignedHash(
+ // address _token,
+ // address _spender,
+ // uint256 _value,
+ // uint256 _fee,
+ // uint256 _nonce
+ // )
+ // public
+ // pure
+ // returns (bytes32)
+ // {
+ // /* "79250dcf": getApprovePreSignedHash(address,address,uint256,uint256,uint256) */
+ // return keccak256(abi.encodePacked(bytes4(0x79250dcf), _token, _spender, _value, _fee, _nonce));
+ // }
- /**
- * @dev Hash (keccak256) of the payload used by increaseAllowancePreSigned
- * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
- * @param _token address The address of the token
- * @param _spender address The address which will spend the funds.
- * @param _addedValue uint256 The amount of tokens to increase the allowance by.
- * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
- * @param _nonce uint256 Presigned transaction number.
- */
- function getIncreaseAllowancePreSignedHash(
- address _token,
- address _spender,
- uint256 _addedValue,
- uint256 _fee,
- uint256 _nonce
- )
- public
- pure
- returns (bytes32)
- {
- /* "138e8da1": getIncreaseAllowancePreSignedHash(address,address,uint256,uint256,uint256) */
- return keccak256(abi.encodePacked(bytes4(0x138e8da1), _token, _spender, _addedValue, _fee, _nonce));
- }
+ // /**
+ // * @dev Hash (keccak256) of the payload used by increaseAllowancePreSigned
+ // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
+ // * @param _token address The address of the token
+ // * @param _spender address The address which will spend the funds.
+ // * @param _addedValue uint256 The amount of tokens to increase the allowance by.
+ // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
+ // * @param _nonce uint256 Presigned transaction number.
+ // */
+ // function getIncreaseAllowancePreSignedHash(
+ // address _token,
+ // address _spender,
+ // uint256 _addedValue,
+ // uint256 _fee,
+ // uint256 _nonce
+ // )
+ // public
+ // pure
+ // returns (bytes32)
+ // {
+ // /* "138e8da1": getIncreaseAllowancePreSignedHash(address,address,uint256,uint256,uint256) */
+ // return keccak256(abi.encodePacked(bytes4(0x138e8da1), _token, _spender, _addedValue, _fee, _nonce));
+ // }
- /**
- * @dev Hash (keccak256) of the payload used by decreaseAllowancePreSigned
- * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
- * @param _token address The address of the token
- * @param _spender address The address which will spend the funds.
- * @param _subtractedValue uint256 The amount of tokens to decrease the allowance by.
- * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
- * @param _nonce uint256 Presigned transaction number.
- */
- function getDecreaseAllowancePreSignedHash(
- address _token,
- address _spender,
- uint256 _subtractedValue,
- uint256 _fee,
- uint256 _nonce
- )
- public
- pure
- returns (bytes32)
- {
- /* "5229c56f": getDecreaseAllowancePreSignedHash(address,address,uint256,uint256,uint256) */
- return keccak256(abi.encodePacked(bytes4(0x5229c56f), _token, _spender, _subtractedValue, _fee, _nonce));
- }
+ // /**
+ // * @dev Hash (keccak256) of the payload used by decreaseAllowancePreSigned
+ // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
+ // * @param _token address The address of the token
+ // * @param _spender address The address which will spend the funds.
+ // * @param _subtractedValue uint256 The amount of tokens to decrease the allowance by.
+ // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
+ // * @param _nonce uint256 Presigned transaction number.
+ // */
+ // function getDecreaseAllowancePreSignedHash(
+ // address _token,
+ // address _spender,
+ // uint256 _subtractedValue,
+ // uint256 _fee,
+ // uint256 _nonce
+ // )
+ // public
+ // pure
+ // returns (bytes32)
+ // {
+ // /* "5229c56f": getDecreaseAllowancePreSignedHash(address,address,uint256,uint256,uint256) */
+ // return keccak256(abi.encodePacked(bytes4(0x5229c56f), _token, _spender, _subtractedValue, _fee, _nonce));
+ // }
- /**
- * @dev Hash (keccak256) of the payload used by transferFromPreSigned
- * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
- * @param _token address The address of the token
- * @param _from address The address which you want to send tokens from.
- * @param _to address The address which you want to transfer to.
- * @param _value uint256 The amount of tokens to be transferred.
- * @param _fee uint256 The amount of tokens paid to msg.sender, by the spender.
- * @param _nonce uint256 Presigned transaction number.
- */
- function getTransferFromPreSignedHash(
- address _token,
- address _from,
- address _to,
- uint256 _value,
- uint256 _fee,
- uint256 _nonce
- )
- public
- pure
- returns (bytes32)
- {
- /* "a70c41b4": getTransferFromPreSignedHash(address,address,address,uint256,uint256,uint256) */
- return keccak256(abi.encodePacked(bytes4(0xa70c41b4), _token, _from, _to, _value, _fee, _nonce));
- }
+ // /**
+ // * @dev Hash (keccak256) of the payload used by transferFromPreSigned
+ // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
+ // * @param _token address The address of the token
+ // * @param _from address The address which you want to send tokens from.
+ // * @param _to address The address which you want to transfer to.
+ // * @param _value uint256 The amount of tokens to be transferred.
+ // * @param _fee uint256 The amount of tokens paid to msg.sender, by the spender.
+ // * @param _nonce uint256 Presigned transaction number.
+ // */
+ // function getTransferFromPreSignedHash(
+ // address _token,
+ // address _from,
+ // address _to,
+ // uint256 _value,
+ // uint256 _fee,
+ // uint256 _nonce
+ // )
+ // public
+ // pure
+ // returns (bytes32)
+ // {
+ // /* "a70c41b4": getTransferFromPreSignedHash(address,address,address,uint256,uint256,uint256) */
+ // return keccak256(abi.encodePacked(bytes4(0xa70c41b4), _token, _from, _to, _value, _fee, _nonce));
+ // }
}
pragma solidity ^0.4.24; - +/* + THIS CONTRACT IS OBSOLETE AND REMAINS ONLY FOR UPGRADABILITY/STORAGE CONSIDERATIONS +*/ /** * @title ERC865 Interface * @dev see https://github.com/ethereum/EIPs/issues/865 @@ -179,66 +185,66 @@contract IERC865 { - event TransferPreSigned(address indexed from, address indexed to, address indexed delegate, uint256 amount, uint256 fee); - event ApprovalPreSigned(address indexed from, address indexed to, address indexed delegate, uint256 amount, uint256 fee); + // event TransferPreSigned(address indexed from, address indexed to, address indexed delegate, uint256 amount, uint256 fee); + // event ApprovalPreSigned(address indexed from, address indexed to, address indexed delegate, uint256 amount, uint256 fee); - function transferPreSigned( - bytes _signature, - address _to, - uint256 _value, - uint256 _fee, - uint256 _nonce - ) - public - returns (bool); + // function transferPreSigned( + // bytes _signature, + // address _to, + // uint256 _value, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // returns (bool); - function approvePreSigned( - bytes _signature, - address _spender, - uint256 _value, - uint256 _fee, - uint256 _nonce - ) - public - returns (bool); + // function approvePreSigned( + // bytes _signature, + // address _spender, + // uint256 _value, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // returns (bool); - function increaseAllowancePreSigned( - bytes _signature, - address _spender, - uint256 _addedValue, - uint256 _fee, - uint256 _nonce - ) - public - returns (bool); + // function increaseAllowancePreSigned( + // bytes _signature, + // address _spender, + // uint256 _addedValue, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // returns (bool); - function decreaseAllowancePreSigned( - bytes _signature, - address _spender, - uint256 _subtractedValue, - uint256 _fee, - uint256 _nonce - ) - public - returns (bool); + // function decreaseAllowancePreSigned( + // bytes _signature, + // address _spender, + // uint256 _subtractedValue, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // returns (bool); - function transferFromPreSigned( - bytes _signature, - address _from, - address _to, - uint256 _value, - uint256 _fee, - uint256 _nonce - ) - public - returns (bool); + // function transferFromPreSigned( + // bytes _signature, + // address _from, + // address _to, + // uint256 _value, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // returns (bool); }
pragma solidity ^0.4.24;
import "zos-lib/contracts/Initializable.sol";
import "openzeppelin-eth/contracts/math/SafeMath.sol";
import "openzeppelin-eth/contracts/token/ERC20/ERC20.sol";
+import "openzeppelin-eth/contracts/token/ERC20/SafeERC20.sol";
import { PropsRewardsLib } from "./PropsRewardsLib.sol";
/**
@@ -770,53 +451,10 @@
**/
contract PropsRewards is Initializable, ERC20 {
using SafeMath for uint256;
+ using SafeERC20 for ERC20;
/*
* Events
- */
- event DailyRewardsSubmitted(
- uint256 indexed rewardsDay,
- bytes32 indexed rewardsHash,
- address indexed validator
- );
-
- event DailyRewardsApplicationsMinted(
- uint256 indexed rewardsDay,
- bytes32 indexed rewardsHash,
- uint256 numOfApplications,
- uint256 amount
- );
-
- event DailyRewardsValidatorsMinted(
- uint256 indexed rewardsDay,
- bytes32 indexed rewardsHash,
- uint256 numOfValidators,
- uint256 amount
- );
-
- event EntityUpdated(
- address indexed id,
- PropsRewardsLib.RewardedEntityType indexed entityType,
- bytes32 name,
- address rewardsAddress,
- address indexed sidechainAddress
- );
-
- event ParameterUpdated(
- PropsRewardsLib.ParameterName param,
- uint256 newValue,
- uint256 oldValue,
- uint256 rewardsDay
- );
-
- event ValidatorsListUpdated(
- address[] validatorsList,
- uint256 indexed rewardsDay
- );
-
- event ApplicationsListUpdated(
- address[] applicationsList,
- uint256 indexed rewardsDay
- );
+ */
event ControllerUpdated(address indexed newController);
@@ -828,7 +466,12 @@
uint256 public maxTotalSupply;
uint256 public rewardsStartTimestamp;
address public controller; // controller entity
-
+ mapping(address => bool) public minters;
+ bytes32 public DOMAIN_SEPARATOR;
+ // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
+ bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;
+ mapping(address => uint256) public nonces;
+ uint256 public MY_CHAIN_ID;
/*
* Modifiers
*/
@@ -841,121 +484,102 @@
}
/**
- * @dev The initializer function for upgrade as initialize was already called, get the decimals used in the token to initialize the params
- * @param _controller address that will have controller functionality on rewards protocol
- * @param _minSecondsBetweenDays uint256 seconds required to pass between consecutive rewards day
- * @param _rewardsStartTimestamp uint256 day 0 timestamp
- */
- function initializePostRewardsUpgrade1(
- address _controller,
- uint256 _minSecondsBetweenDays,
- uint256 _rewardsStartTimestamp
- )
- public
- {
+ * @dev The initializer function for upgrade as initialize was already called, get the decimals used in the token to initialize the params
+ * @param _controller address that will have controller functionality on token
+ */
+ function initialize(address _controller) public {
uint256 decimals = 18;
- _initializePostRewardsUpgrade1(_controller, decimals, _minSecondsBetweenDays, _rewardsStartTimestamp);
+ _initialize(_controller, decimals);
}
/**
- * @dev Set new validators list
- * @param _rewardsDay uint256 the rewards day from which this change should take effect
- * @param _validators address[] array of validators
- */
- function setValidators(uint256 _rewardsDay, address[] _validators)
+ * @dev Initialize post separation of rewards contract upgrade
+ * @param _tokenName string token name
+ */
+ function initializePermitUpgrade(string memory _tokenName)
public
- onlyController
- returns (bool)
+ initializer
{
- PropsRewardsLib.setValidators(rewardsLibData, _rewardsDay, _validators);
- emit ValidatorsListUpdated(_validators, _rewardsDay);
- return true;
- }
-
- /**
- * @dev Set new applications list
- * @param _rewardsDay uint256 the rewards day from which this change should take effect
- * @param _applications address[] array of validators
- */
- function setApplications(uint256 _rewardsDay, address[] _applications)
- public
- onlyController
- returns (bool)
- {
- PropsRewardsLib.setApplications(rewardsLibData, _rewardsDay, _applications);
- emit ApplicationsListUpdated(_applications, _rewardsDay);
- return true;
- }
+ uint256 chainId;
+ string memory one = "1";
+ assembly {
+ chainId := chainId
+ }
- /**
- * @dev Get the applications or validators list
- * @param _entityType RewardedEntityType either application (0) or validator (1)
- * @param _rewardsDay uint256 the rewards day to use for this value
- */
- function getEntities(PropsRewardsLib.RewardedEntityType _entityType, uint256 _rewardsDay)
- public
- view
- returns (address[])
- {
- return PropsRewardsLib.getEntities(rewardsLibData, _entityType, _rewardsDay);
+ MY_CHAIN_ID = chainId;
+ DOMAIN_SEPARATOR = keccak256(
+ abi.encode(
+ keccak256(
+ "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"
+ ),
+ keccak256(bytes(_tokenName)),
+ keccak256(bytes(one)),
+ chainId,
+ address(this)
+ )
+ );
}
/**
- * @dev The function is called by validators with the calculation of the daily rewards
- * @param _rewardsDay uint256 the rewards day
- * @param _rewardsHash bytes32 hash of the rewards data
- * @param _applications address[] array of application addresses getting the daily reward
- * @param _amounts uint256[] array of amounts each app should get
- */
- function submitDailyRewards(
- uint256 _rewardsDay,
- bytes32 _rewardsHash,
- address[] _applications,
- uint256[] _amounts
- )
- public
- returns (bool)
- {
- // if submission is for a new day check if previous day validator rewards were given if not give to participating ones
- if (_rewardsDay > 0 && (_rewardsDay > rewardsLibData.dailyRewards.lastRewardsDay)) {
- uint256 previousDayValidatorRewardsAmount = PropsRewardsLib.calculateValidatorRewards(
- rewardsLibData,
- rewardsLibData.dailyRewards.lastRewardsDay,
- rewardsLibData.dailyRewards.lastConfirmedRewardsHash,
- false
+ * @dev Allows for approvals to be made via secp256k1 signatures
+ * @param _owner address owner
+ * @param _spender address spender
+ * @param _amount uint spender
+ * @param _deadline uint spender
+ * @param _v uint8 spender
+ * @param _r bytes32 spender
+ * @param _s bytes32 spender
+ */
+ function permit(
+ address _owner,
+ address _spender,
+ uint256 _amount,
+ uint256 _deadline,
+ uint8 _v,
+ bytes32 _r,
+ bytes32 _s
+ ) external {
+ Erequire(_deadline >= block.timestamp, "Permit Expired");
+ bytes32 digest =
+ keccak256(
+ abi.encodePacked(
+ "\x19\x01",
+ DOMAIN_SEPARATOR,
+ keccak256(
+ abi.encode(
+ PERMIT_TYPEHASH,
+ _owner,
+ _spender,
+ _amount,
+ nonces[_owner]++,
+ _deadline
+ )
+ )
+ )
);
- if (previousDayValidatorRewardsAmount > 0) {
- _mintDailyRewardsForValidators(rewardsLibData.dailyRewards.lastRewardsDay, rewardsLibData.dailyRewards.lastConfirmedRewardsHash, previousDayValidatorRewardsAmount);
- }
- }
- // check and give application rewards if majority of validators agree
- uint256 appRewardsSum = PropsRewardsLib.calculateApplicationRewards(
- rewardsLibData,
- _rewardsDay,
- _rewardsHash,
- _applications,
- _amounts,
- totalSupply()
+ address recoveredAddress = ecrecover(digest, _v, _r, _s);
+ Erequire(
+ recoveredAddress != address(0) && recoveredAddress == _owner,
+ "Invalid Signature"
);
- if (appRewardsSum > 0) {
- _mintDailyRewardsForApps(_rewardsDay, _rewardsHash, _applications, _amounts, appRewardsSum);
- }
-
- // check and give validator rewards if all validators submitted
- uint256 validatorRewardsAmount = PropsRewardsLib.calculateValidatorRewards(
- rewardsLibData,
- _rewardsDay,
- _rewardsHash,
- true
- );
- if (validatorRewardsAmount > 0) {
- _mintDailyRewardsForValidators(_rewardsDay, _rewardsHash, validatorRewardsAmount);
- }
-
- emit DailyRewardsSubmitted(_rewardsDay, _rewardsHash, msg.sender);
- return true;
+ _approve(_owner, _spender, _amount);
}
+ /**
+ * @dev Reclaim all ERC20 compatible tokens
+ * @param _token ERC20 The address of the token contract
+ */
+ function reclaimToken(
+ ERC20 _token,
+ address _to,
+ uint256 _amount
+ ) external onlyController {
+ Erequire(_to != address(0), "Must transfer to recipient");
+ uint256 balance = _token.balanceOf(this);
+ require(_amount <= balance, "Cannot transfer more than balance");
+ _token.safeTransfer(_to, _amount);
+ }
+
/**
* @dev Allows the controller/owner to update to a new controller
* @param _controller address address of the new controller
@@ -965,154 +589,50 @@
)
public
onlyController
- returns (bool)
{
+ Erequire(_controller != address(0), "Controller cannot be the zero address");
controller = _controller;
emit ControllerUpdated
(
_controller
);
- return true;
}
- /**
- * @dev Allows getting a parameter value based on timestamp
- * @param _name ParameterName name of the parameter
- * @param _rewardsDay uint256 starting when should this parameter use the current value
- */
- function getParameter(
- PropsRewardsLib.ParameterName _name,
- uint256 _rewardsDay
- )
- public
- view
- returns (uint256)
- {
- return PropsRewardsLib.getParameterValue(rewardsLibData, _name, _rewardsDay);
+ function addMinter(address _minter) public onlyController {
+ minters[_minter] = true;
}
- /**
- * @dev Allows the controller/owner to update rewards parameters
- * @param _name ParameterName name of the parameter
- * @param _value uint256 new value for the parameter
- * @param _rewardsDay uint256 starting when should this parameter use the current value
- */
- function updateParameter(
- PropsRewardsLib.ParameterName _name,
- uint256 _value,
- uint256 _rewardsDay
- )
- public
- onlyController
- returns (bool)
- {
- PropsRewardsLib.updateParameter(rewardsLibData, _name, _value, _rewardsDay);
- emit ParameterUpdated(
- _name,
- rewardsLibData.parameters[uint256(_name)].currentValue,
- rewardsLibData.parameters[uint256(_name)].previousValue,
- rewardsLibData.parameters[uint256(_name)].rewardsDay
- );
- return true;
+ function removeMinter(address _minter) public onlyController {
+ minters[_minter] = false;
}
/**
- * @dev Allows an application or validator to add/update its details
- * @param _entityType RewardedEntityType either application (0) or validator (1)
- * @param _name bytes32 name of the app
- * @param _rewardsAddress address an address for the app to receive the rewards
- * @param _sidechainAddress address the address used for using the sidechain
- */
- function updateEntity(
- PropsRewardsLib.RewardedEntityType _entityType,
- bytes32 _name,
- address _rewardsAddress,
- address _sidechainAddress
- )
- public
- returns (bool)
- {
- PropsRewardsLib.updateEntity(rewardsLibData, _entityType, _name, _rewardsAddress, _sidechainAddress);
- emit EntityUpdated(msg.sender, _entityType, _name, _rewardsAddress, _sidechainAddress);
- return true;
+ * @dev Allows minters to mint tokens to a given address
+ * @param _account address of the receiving account
+ * @param _amount uint256 how much to mint
+ */
+ function mint(address _account, uint256 _amount) public {
+ require(minters[msg.sender], "Mint fn can be called only by minter");
+ Erequire(
+ totalSupply().add(_amount) <= maxTotalSupply,
+ "Max total supply exceeded"
+ );
+ _mint(_account, _amount);
}
-
+
/**
- * @dev internal intialize rewards upgrade1
- * @param _controller address that will have controller functionality on rewards protocol
- * @param _decimals uint256 number of decimals used in total supply
- * @param _minSecondsBetweenDays uint256 seconds required to pass between consecutive rewards day
- * @param _rewardsStartTimestamp uint256 day 0 timestamp
- */
- function _initializePostRewardsUpgrade1(
- address _controller,
- uint256 _decimals,
- uint256 _minSecondsBetweenDays,
- uint256 _rewardsStartTimestamp
- )
- internal
- {
- Erequire(maxTotalSupply==0, "Initialize rewards upgrade1 can happen only once");
+ * @dev internal intialize
+ * @param _controller address that will have controller functionality on rewards protocol
+ * @param _decimals uint256 number of decimals used in total supply
+ */
+ function _initialize(address _controller, uint256 _decimals) internal {
+ Erequire(
+ maxTotalSupply == 0,
+ "Initialize rewards upgrade1 can happen only once"
+ );
controller = _controller;
- // ApplicationRewardsPercent pphm ==> 0.03475%
- PropsRewardsLib.updateParameter(rewardsLibData, PropsRewardsLib.ParameterName.ApplicationRewardsPercent, 34750, 0);
- // // ApplicationRewardsMaxVariationPercent pphm ==> 150%
- PropsRewardsLib.updateParameter(rewardsLibData, PropsRewardsLib.ParameterName.ApplicationRewardsMaxVariationPercent, 150 * 1e6, 0);
- // // ValidatorMajorityPercent pphm ==> 50%
- PropsRewardsLib.updateParameter(rewardsLibData, PropsRewardsLib.ParameterName.ValidatorMajorityPercent, 50 * 1e6, 0);
- // // ValidatorRewardsPercent pphm ==> 0.001829%
- PropsRewardsLib.updateParameter(rewardsLibData, PropsRewardsLib.ParameterName.ValidatorRewardsPercent, 1829, 0);
-
// max total supply is 1,000,000,000 PROPS specified in AttoPROPS
- rewardsLibData.maxTotalSupply = maxTotalSupply = 1 * 1e9 * (10 ** uint256(_decimals));
- rewardsLibData.rewardsStartTimestamp = rewardsStartTimestamp = _rewardsStartTimestamp;
- rewardsLibData.minSecondsBetweenDays = _minSecondsBetweenDays;
-
- }
-
- /**
- * @dev Mint rewards for validators
- * @param _rewardsDay uint256 the rewards day
- * @param _rewardsHash bytes32 hash of the rewards data
- * @param _amount uint256 amount each validator should get
- */
- function _mintDailyRewardsForValidators(uint256 _rewardsDay, bytes32 _rewardsHash, uint256 _amount)
- internal
- {
- uint256 validatorsCount = rewardsLibData.dailyRewards.submissions[_rewardsHash].validatorsList.length;
- for (uint256 i = 0; i < validatorsCount; i++) {
- _mint(rewardsLibData.validators[rewardsLibData.dailyRewards.submissions[_rewardsHash].validatorsList[i]].rewardsAddress,_amount);
- }
- PropsRewardsLib._resetDailyRewards(rewardsLibData);
- emit DailyRewardsValidatorsMinted(
- _rewardsDay,
- _rewardsHash,
- validatorsCount,
- (_amount * validatorsCount)
- );
- }
-
- /**
- * @dev Mint rewards for apps
- * @param _rewardsDay uint256 the rewards day
- * @param _rewardsHash bytes32 hash of the rewards data
- * @param _applications address[] array of application addresses getting the daily reward
- * @param _amounts uint256[] array of amounts each app should get
- * @param _sum uint256 the sum of all application rewards given
- */
- function _mintDailyRewardsForApps(
- uint256 _rewardsDay,
- bytes32 _rewardsHash,
- address[] _applications,
- uint256[] _amounts,
- uint256 _sum
- )
- internal
- {
- for (uint256 i = 0; i < _applications.length; i++) {
- _mint(rewardsLibData.applications[_applications[i]].rewardsAddress, _amounts[i]);
- }
- emit DailyRewardsApplicationsMinted(_rewardsDay, _rewardsHash, _applications.length, _sum);
+ maxTotalSupply = 1 * 1e9 * (10**_decimals);
}
}
pragma solidity ^0.4.24; - +/* + THIS CONTRACT IS OBSOLETE AND REMAINS ONLY FOR UPGRADABILITY/STORAGE CONSIDERATIONS +*/ import "openzeppelin-eth/contracts/math/SafeMath.sol"; /** @@ -1569,14 +271,14 @@bytes32[] submittedRewardsHashes; uint256 totalSupply; bytes32 lastConfirmedRewardsHash; - uint256 lastRewardsDay; + uint256 lastApplicationsRewardsDay; } struct Submission { mapping (address => bool) validators; address[] validatorsList; uint256 confirmations; - uint256 finalized; + uint256 finalizedStatus; // 0 - initialized, 1 - finalized bool isInitializedState; // A way to check if there's something in the map and whether it is already added to the list } @@ -1600,667 +302,15 @@
uint256 minSecondsBetweenDays; uint256 rewardsStartTimestamp; uint256 maxTotalSupply; - uint256 lastRewardsDay; - } - /* - * Modifiers - */ - modifier onlyOneRewardsHashPerValidator(Data storage _self, bytes32 _rewardsHash) { - require( - !_self.dailyRewards.submissions[_rewardsHash].validators[msg.sender], - "Must be one submission per validator" - ); - _; - } - - modifier onlyExistingApplications(Data storage _self, address[] _entities) { - for (uint256 i = 0; i < _entities.length; i++) { - require( - _self.applications[_entities[i]].isInitializedState, - "Application must exist" - ); - } - _; - } - - modifier onlyExistingValidators(Data storage _self, address[] _entities) { - for (uint256 i = 0; i < _entities.length; i++) { - require( - _self.validators[_entities[i]].isInitializedState, - "Validator must exist" - ); - } - _; - } - - modifier onlySelectedValidators(Data storage _self, uint256 _rewardsDay) { - if (_getSelectedRewardedEntityListType(_self.selectedValidators, _rewardsDay) == 0) { - Erequire ( - _self.selectedValidators.current[msg.sender], - "Must be a current selected validator" - ); - } else { - require ( - _self.selectedValidators.previous[msg.sender], - "Must be a previous selected validator" - ); - } - _; - } - - modifier onlyValidRewardsDay(Data storage _self, uint256 _rewardsDay) { - require( - _currentRewardsDay(_self) == _rewardsDay && _rewardsDay > _self.lastRewardsDay, - "Must be for current day" - ); - _; - } - - modifier onlyValidFutureRewardsDay(Data storage _self, uint256 _rewardsDay) { - Erequire( - _rewardsDay >= _currentRewardsDay(_self), - "Must be future rewardsDay" - ); - _; - } - - modifier onlyValidAddresses(address _rewardsAddress, address _sidechainAddress) { - Erequire( - _rewardsAddress != address(0) && - _sidechainAddress != address(0), - "Must have valid rewards and sidechain addresses" - ); - _; - } - - /** - * @dev The function is called by validators with the calculation of the daily rewards - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day - * @param _rewardsHash bytes32 hash of the rewards data - * @param _allValidators bool should the calculation be based on all the validators or just those which submitted - */ - function calculateValidatorRewards( - Data storage _self, - uint256 _rewardsDay, - bytes32 _rewardsHash, - bool _allValidators - ) - public - view - returns (uint256) - { - uint256 numOfValidators; - if (_self.dailyRewards.submissions[_rewardsHash].finalized == 1) - { - if (_allValidators) { - numOfValidators = _requiredValidatorsForValidatorsRewards(_self, _rewardsDay); - if (numOfValidators > _self.dailyRewards.submissions[_rewardsHash].confirmations) return 0; - } else { - numOfValidators = _self.dailyRewards.submissions[_rewardsHash].confirmations; - } - uint256 rewardsPerValidator = _getValidatorRewardsDailyAmountPerValidator(_self, _rewardsDay, numOfValidators); - return rewardsPerValidator; - } - return 0; - } - - /** - * @dev The function is called by validators with the calculation of the daily rewards - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day - * @param _rewardsHash bytes32 hash of the rewards data - * @param _applications address[] array of application addresses getting the daily reward - * @param _amounts uint256[] array of amounts each app should get - * @param _currentTotalSupply uint256 current total supply - */ - function calculateApplicationRewards( - Data storage _self, - uint256 _rewardsDay, - bytes32 _rewardsHash, - address[] _applications, - uint256[] _amounts, - uint256 _currentTotalSupply - ) - public - onlyValidRewardsDay(_self, _rewardsDay) - onlyOneRewardsHashPerValidator(_self, _rewardsHash) - onlySelectedValidators(_self, _rewardsDay) - returns (uint256) - { - require( - _rewardsHashIsValid(_rewardsDay, _rewardsHash, _applications, _amounts), - "Rewards Hash is invalid" - ); - if (!_self.dailyRewards.submissions[_rewardsHash].isInitializedState) { - _self.dailyRewards.submissions[_rewardsHash].isInitializedState = true; - _self.dailyRewards.submittedRewardsHashes.push(_rewardsHash); - } - _self.dailyRewards.submissions[_rewardsHash].validators[msg.sender] = true; - _self.dailyRewards.submissions[_rewardsHash].validatorsList.push(msg.sender); - _self.dailyRewards.submissions[_rewardsHash].confirmations++; - - if (_self.dailyRewards.submissions[_rewardsHash].confirmations == _requiredValidatorsForAppRewards(_self, _rewardsDay)) { - uint256 sum = _validateSubmittedData(_self, _applications, _amounts); - require( - sum <= _getMaxAppRewardsDailyAmount(_self, _rewardsDay, _currentTotalSupply), - "Rewards data is invalid - exceed daily variation" - ); - _finalizeDailyApplicationRewards(_self, _rewardsDay, _rewardsHash, _currentTotalSupply); - return sum; - } - return 0; - } - - /** - * @dev Finalizes the state, rewards Hash, total supply and block timestamp for the day - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day - * @param _rewardsHash bytes32 the daily rewards hash - * @param _currentTotalSupply uint256 the current total supply - */ - function _finalizeDailyApplicationRewards(Data storage _self, uint256 _rewardsDay, bytes32 _rewardsHash, uint256 _currentTotalSupply) - public - returns (bool) - { - _self.dailyRewards.totalSupply = _currentTotalSupply; - _self.dailyRewards.lastConfirmedRewardsHash = _rewardsHash; - _self.dailyRewards.lastRewardsDay = _rewardsDay; - _self.dailyRewards.submissions[_rewardsHash].finalized = 1; - return true; - } - - /** - * @dev Get parameter's value - * @param _self Data pointer to storage - * @param _name ParameterName name of the parameter - * @param _rewardsDay uint256 the rewards day - */ - function getParameterValue( - Data storage _self, - ParameterName _name, - uint256 _rewardsDay - ) - public - view - returns (uint256) - { - if (_rewardsDay >= _self.parameters[uint256(_name)].rewardsDay) { - return _self.parameters[uint256(_name)].currentValue; - } else { - return _self.parameters[uint256(_name)].previousValue; - } - } - - /** - * @dev Allows the controller/owner to update rewards parameters - * @param _self Data pointer to storage - * @param _name ParameterName name of the parameter - * @param _value uint256 new value for the parameter - * @param _rewardsDay uint256 the rewards day - */ - function updateParameter( - Data storage _self, - ParameterName _name, - uint256 _value, - uint256 _rewardsDay - ) - public - onlyValidFutureRewardsDay(_self, _rewardsDay) - returns (bool) - { - if (_rewardsDay <= _self.parameters[uint256(_name)].rewardsDay) { - _self.parameters[uint256(_name)].currentValue = _value; - _self.parameters[uint256(_name)].rewardsDay = _rewardsDay; - } else { - _self.parameters[uint256(_name)].previousValue = _self.parameters[uint256(_name)].currentValue; - _self.parameters[uint256(_name)].currentValue = _value; - _self.parameters[uint256(_name)].rewardsDay = _rewardsDay; - } - return true; - } - - /** - * @dev Allows an application to add/update its details - * @param _self Data pointer to storage - * @param _entityType RewardedEntityType either application (0) or validator (1) - * @param _name bytes32 name of the app - * @param _rewardsAddress address an address for the app to receive the rewards - * @param _sidechainAddress address the address used for using the sidechain - */ - function updateEntity( - Data storage _self, - RewardedEntityType _entityType, - bytes32 _name, - address _rewardsAddress, - address _sidechainAddress - ) - public - onlyValidAddresses(_rewardsAddress, _sidechainAddress) - returns (bool) - { - if (_entityType == RewardedEntityType.Application) { - updateApplication(_self, _name, _rewardsAddress, _sidechainAddress); - } else { - updateValidator(_self, _name, _rewardsAddress, _sidechainAddress); - } - return true; - } - - /** - * @dev Allows an application to add/update its details - * @param _self Data pointer to storage - * @param _name bytes32 name of the app - * @param _rewardsAddress address an address for the app to receive the rewards - * @param _sidechainAddress address the address used for using the sidechain - */ - function updateApplication( - Data storage _self, - bytes32 _name, - address _rewardsAddress, - address _sidechainAddress - ) - public - returns (uint256) - { - _self.applications[msg.sender].name = _name; - _self.applications[msg.sender].rewardsAddress = _rewardsAddress; - _self.applications[msg.sender].sidechainAddress = _sidechainAddress; - if (!_self.applications[msg.sender].isInitializedState) { - _self.applicationsList.push(msg.sender); - _self.applications[msg.sender].isInitializedState = true; - _self.applications[msg.sender].entityType = RewardedEntityType.Application; - } - return uint256(RewardedEntityType.Application); - } - - /** - * @dev Allows a validator to add/update its details - * @param _self Data pointer to storage - * @param _name bytes32 name of the validator - * @param _rewardsAddress address an address for the validator to receive the rewards - * @param _sidechainAddress address the address used for using the sidechain - */ - function updateValidator( - Data storage _self, - bytes32 _name, - address _rewardsAddress, - address _sidechainAddress - ) - public - returns (uint256) - { - _self.validators[msg.sender].name = _name; - _self.validators[msg.sender].rewardsAddress = _rewardsAddress; - _self.validators[msg.sender].sidechainAddress = _sidechainAddress; - if (!_self.validators[msg.sender].isInitializedState) { - _self.validatorsList.push(msg.sender); - _self.validators[msg.sender].isInitializedState = true; - _self.validators[msg.sender].entityType = RewardedEntityType.Validator; - } - return uint256(RewardedEntityType.Validator); - } - - /** - * @dev Set new validators list - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day from which the list should be active - * @param _validators address[] array of validators - */ - function setValidators( - Data storage _self, - uint256 _rewardsDay, - address[] _validators - ) - public - onlyValidFutureRewardsDay(_self, _rewardsDay) - onlyExistingValidators(_self, _validators) - returns (bool) - { - // no need to update the previous if its' the first time or second update in the same day - if (_rewardsDay > _self.selectedValidators.rewardsDay && _self.selectedValidators.currentList.length > 0) - _updatePreviousEntityList(_self.selectedValidators); - - _updateCurrentEntityList(_self.selectedValidators, _validators); - _self.selectedValidators.rewardsDay = _rewardsDay; - return true; - } - - /** - * @dev Set new applications list - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day from which the list should be active - * @param _applications address[] array of applications - */ - function setApplications( - Data storage _self, - uint256 _rewardsDay, - address[] _applications - ) - public - onlyValidFutureRewardsDay(_self, _rewardsDay) - onlyExistingApplications(_self, _applications) - returns (bool) - { - - if (_rewardsDay > _self.selectedApplications.rewardsDay && _self.selectedApplications.currentList.length > 0) - _updatePreviousEntityList(_self.selectedApplications); - _updateCurrentEntityList(_self.selectedApplications, _applications); - _self.selectedApplications.rewardsDay = _rewardsDay; - return true; - } - - /** - * @dev Get applications or validators list - * @param _self Data pointer to storage - * @param _entityType RewardedEntityType either application (0) or validator (1) - * @param _rewardsDay uint256 the rewards day to determine which list to get - */ - function getEntities( - Data storage _self, - RewardedEntityType _entityType, - uint256 _rewardsDay - ) - public - view - returns (address[]) - { - if (_entityType == RewardedEntityType.Application) { - if (_getSelectedRewardedEntityListType(_self.selectedApplications, _rewardsDay) == 0) { - return _self.selectedApplications.currentList; - } else { - return _self.selectedApplications.previousList; - } - } else { - if (_getSelectedRewardedEntityListType(_self.selectedValidators, _rewardsDay) == 0) { - return _self.selectedValidators.currentList; - } else { - return _self.selectedValidators.previousList; - } - } - } - - /** - * @dev Get which entity list to use. Current = 0, previous = 1 - * @param _rewardedEntitylist RewardedEntityList pointer to storage - * @param _rewardsDay uint256 the rewards day to determine which list to get - */ - function _getSelectedRewardedEntityListType(RewardedEntityList _rewardedEntitylist, uint256 _rewardsDay) - internal - pure - returns (uint256) - { - if (_rewardsDay >= _rewardedEntitylist.rewardsDay) { - return 0; - } else { - return 1; - } - } - - /** - * @dev Checks how many validators are needed for app rewards - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day - * @param _currentTotalSupply uint256 current total supply - */ - function _getMaxAppRewardsDailyAmount( - Data storage _self, - uint256 _rewardsDay, - uint256 _currentTotalSupply - ) - public - view - returns (uint256) - { - return ((_self.maxTotalSupply.sub(_currentTotalSupply)).mul( - getParameterValue(_self, ParameterName.ApplicationRewardsPercent, _rewardsDay)).mul( - getParameterValue(_self, ParameterName.ApplicationRewardsMaxVariationPercent, _rewardsDay))).div(1e16); - } - - - /** - * @dev Checks how many validators are needed for app rewards - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day - * @param _numOfValidators uint256 number of validators - */ - function _getValidatorRewardsDailyAmountPerValidator( - Data storage _self, - uint256 _rewardsDay, - uint256 _numOfValidators - ) - public - view - returns (uint256) - { - return (((_self.maxTotalSupply.sub(_self.dailyRewards.totalSupply)).mul( - getParameterValue(_self, ParameterName.ValidatorRewardsPercent, _rewardsDay))).div(1e8)).div(_numOfValidators); - } - - /** - * @dev Checks if app daily rewards amount is valid - * @param _self Data pointer to storage - * @param _applications address[] array of application addresses getting the daily rewards - * @param _amounts uint256[] array of amounts each app should get - */ - function _validateSubmittedData( - Data storage _self, - address[] _applications, - uint256[] _amounts - ) - public - view - returns (uint256) - { - uint256 sum; - bool valid = true; - for (uint256 i = 0; i < _amounts.length; i++) { - sum = sum.add(_amounts[i]); - if (!_self.applications[_applications[i]].isInitializedState) valid = false; - } - require( - sum > 0 && valid, - "Sum zero or none existing app submitted" - ); - return sum; - } - - /** - * @dev Checks if submitted data matches rewards hash - * @param _rewardsDay uint256 the rewards day - * @param _rewardsHash bytes32 hash of the rewards data - * @param _applications address[] array of application addresses getting the daily rewards - * @param _amounts uint256[] array of amounts each app should get - */ - function _rewardsHashIsValid( - uint256 _rewardsDay, - bytes32 _rewardsHash, - address[] _applications, - uint256[] _amounts - ) - public - pure - returns (bool) - { - return - _applications.length > 0 && - _applications.length == _amounts.length && - keccak256(abi.encodePacked(_rewardsDay, _applications.length, _amounts.length, _applications, _amounts)) == _rewardsHash; - } - - /** - * @dev Checks how many validators are needed for app rewards - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day - */ - function _requiredValidatorsForValidatorsRewards(Data storage _self, uint256 _rewardsDay) - public - view - returns (uint256) - { - if (_getSelectedRewardedEntityListType(_self.selectedValidators, _rewardsDay) == 0) { - return _self.selectedValidators.currentList.length; - } else { - return _self.selectedValidators.previousList.length; - } - } - - /** - * @dev Checks how many validators are needed for app rewards - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day - */ - function _requiredValidatorsForAppRewards(Data storage _self, uint256 _rewardsDay) - public - view - returns (uint256) - { - if (_getSelectedRewardedEntityListType(_self.selectedValidators, _rewardsDay) == 0) { - return ((_self.selectedValidators.currentList.length.mul(getParameterValue(_self, ParameterName.ValidatorMajorityPercent, _rewardsDay))).div(1e8)).add(1); - } else { - return ((_self.selectedValidators.previousList.length.mul(getParameterValue(_self, ParameterName.ValidatorMajorityPercent, _rewardsDay))).div(1e8)).add(1); - } - } - - /** - * @dev Get rewards day from block.timestamp - * @param _self Data pointer to storage - */ - function _currentRewardsDay(Data storage _self) - public - view - returns (uint256) - { - //the the start time - floor timestamp to previous midnight divided by seconds in a day will give the rewards day number - if (_self.minSecondsBetweenDays > 0) { - return (block.timestamp.sub(_self.rewardsStartTimestamp)).div(_self.minSecondsBetweenDays).add(1); - } else { - return 0; - } - } - - /** - * @dev Update current daily applications list. - * If new, push. - * If same size, replace - * If different size, delete, and then push. - * @param _rewardedEntitylist RewardedEntityList pointer to storage - * @param _entities address[] array of entities - */ - //_updateCurrentEntityList(_rewardedEntitylist, _entities,_rewardedEntityType), - function _updateCurrentEntityList( - RewardedEntityList storage _rewardedEntitylist, - address[] _entities - ) - internal - returns (bool) - { - bool emptyCurrentList = _rewardedEntitylist.currentList.length == 0; - if (!emptyCurrentList && _rewardedEntitylist.currentList.length != _entities.length) { - _deleteCurrentEntityList(_rewardedEntitylist); - emptyCurrentList = true; - } - - for (uint256 i = 0; i < _entities.length; i++) { - if (emptyCurrentList) { - _rewardedEntitylist.currentList.push(_entities[i]); - } else { - _rewardedEntitylist.currentList[i] = _entities[i]; - } - _rewardedEntitylist.current[_entities[i]] = true; - } - return true; - } - - /** - * @dev Update previous daily list - * @param _rewardedEntitylist RewardedEntityList pointer to storage - */ - function _updatePreviousEntityList(RewardedEntityList storage _rewardedEntitylist) - internal - returns (bool) - { - bool emptyPreviousList = _rewardedEntitylist.previousList.length == 0; - if ( - !emptyPreviousList && - _rewardedEntitylist.previousList.length != _rewardedEntitylist.currentList.length - ) { - _deletePreviousEntityList(_rewardedEntitylist); - emptyPreviousList = true; - } - for (uint256 i = 0; i < _rewardedEntitylist.currentList.length; i++) { - Eif (emptyPreviousList) { - _rewardedEntitylist.previousList.push(_rewardedEntitylist.currentList[i]); - } else { - _rewardedEntitylist.previousList[i] = _rewardedEntitylist.currentList[i]; - } - _rewardedEntitylist.previous[_rewardedEntitylist.currentList[i]] = true; - } - return true; - } - - /** - * @dev Delete existing values from the current list - * @param _rewardedEntitylist RewardedEntityList pointer to storage - */ - function _deleteCurrentEntityList(RewardedEntityList storage _rewardedEntitylist) - internal - returns (bool) - { - for (uint256 i = 0; i < _rewardedEntitylist.currentList.length ; i++) { - delete _rewardedEntitylist.current[_rewardedEntitylist.currentList[i]]; - } - delete _rewardedEntitylist.currentList; - return true; - } - - /** - * @dev Delete existing values from the previous applications list - * @param _rewardedEntitylist RewardedEntityList pointer to storage - */ - function _deletePreviousEntityList(RewardedEntityList storage _rewardedEntitylist) - internal - returns (bool) - { - for (uint256 i = 0; i < _rewardedEntitylist.previousList.length ; i++) { - delete _rewardedEntitylist.previous[_rewardedEntitylist.previousList[i]]; - } - delete _rewardedEntitylist.previousList; - return true; - } - - /** - * @dev Deletes rewards day submission data - * @param _self Data pointer to storage - */ - function _resetDailyRewards( - Data storage _self - ) - public - returns (bool) - { - _self.lastRewardsDay = _self.dailyRewards.lastRewardsDay; - bytes32[] memory rewardsHashes = _self.dailyRewards.submittedRewardsHashes; - for (uint256 i = 0; i < rewardsHashes.length; i++) { - for (uint256 j = 0; j < _self.dailyRewards.submissions[rewardsHashes[i]].validatorsList.length; j++) { - delete( - _self.dailyRewards.submissions[rewardsHashes[i]].validators[_self.dailyRewards.submissions[rewardsHashes[i]].validatorsList[j]] - ); - } - delete _self.dailyRewards.submissions[rewardsHashes[i]].validatorsList; - _self.dailyRewards.submissions[rewardsHashes[i]].confirmations = 0; - _self.dailyRewards.submissions[rewardsHashes[i]].finalized = 0; - _self.dailyRewards.submissions[rewardsHashes[i]].isInitializedState = false; - } - delete _self.dailyRewards.submittedRewardsHashes; - } + uint256 lastValidatorsRewardsDay; + } }
pragma solidity ^0.4.24; - +/* + THIS CONTRACT IS OBSOLETE AND REMAINS ONLY FOR UPGRADABILITY/STORAGE CONSIDERATIONS +*/ import "zos-lib/contracts/Initializable.sol"; import "openzeppelin-eth/contracts/token/ERC20/ERC20.sol"; @@ -280,7 +286,7 @@diff --git a/coverage/lcov-report/token/PropsToken.sol.html b/coverage/lcov-report/token/PropsToken.sol.html index a607c3e7..eaaa7438 100644 --- a/coverage/lcov-report/token/PropsToken.sol.html +++ b/coverage/lcov-report/token/PropsToken.sol.html @@ -37,7 +37,7 @@
100% Lines - 5/5 + 6/6@@ -90,13 +90,7 @@45 46 47 -48 -49 -50 -51 -52 -53 -54
pragma solidity ^0.4.24; @@ -181,16 +169,9 @@/** * @dev Initializer function. Called only once when a proxy for the contract is created. * @param _holder address that will receive its initial supply and be able to transfer before transfers start time - * @param _controller address that will have controller functionality on rewards protocol - * @param _minSecondsBetweenDays uint256 seconds required to pass between consecutive rewards day - * @param _rewardsStartTimestamp uint256 day 0 timestamp + * @param _controller address that will have controller functionality on rewards protocol */ - function initialize( - address _holder, - address _controller, - uint256 _minSecondsBetweenDays, - uint256 _rewardsStartTimestamp - ) + function initialize(address _holder, address _controller) public initializer { @@ -199,7 +180,8 @@
uint256 totalSupply = 0.6 * 1e9 * (10 ** uint256(decimals)); ERC20Detailed.initialize("Props Token", "PROPS", decimals); - PropsRewards.initializePostRewardsUpgrade1(_controller, _minSecondsBetweenDays, _rewardsStartTimestamp); + PropsRewards.initialize(_controller); + PropsRewards.initializePermitUpgrade("Props Token"); _mint(_holder, totalSupply); } }
pragma solidity ^0.4.24;
-
+/*
+ THIS CONTRACT IS OBSOLETE AND REMAINS ONLY FOR UPGRADABILITY/STORAGE CONSIDERATIONS
+*/
import "zos-lib/contracts/Initializable.sol";
import "openzeppelin-eth/contracts/token/ERC20/ERC20.sol";
import { ECDSA } from "openzeppelin-eth/contracts/cryptography/ECDSA.sol";
@@ -694,310 +700,310 @@
/* hashed tx of transfers performed */
mapping(bytes32 => bool) hashedTxs;
- /**
- * @dev Submit a presigned transfer
- * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
- * @param _signature bytes The signature, issued by the owner.
- * @param _to address The address which you want to transfer to.
- * @param _value uint256 The amount of tokens to be transferred.
- * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
- * @param _nonce uint256 Presigned transaction number.
- */
- function transferPreSigned(
- bytes _signature,
- address _to,
- uint256 _value,
- uint256 _fee,
- uint256 _nonce
- )
- public
- returns (bool)
- {
- Erequire(_to != address(0), "Invalid _to address");
+ // /**
+ // * @dev Submit a presigned transfer
+ // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
+ // * @param _signature bytes The signature, issued by the owner.
+ // * @param _to address The address which you want to transfer to.
+ // * @param _value uint256 The amount of tokens to be transferred.
+ // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
+ // * @param _nonce uint256 Presigned transaction number.
+ // */
+ // function transferPreSigned(
+ // bytes _signature,
+ // address _to,
+ // uint256 _value,
+ // uint256 _fee,
+ // uint256 _nonce
+ // )
+ // public
+ // returns (bool)
+ // {
+ // require(_to != address(0), "Invalid _to address");
- bytes32 hashedParams = getTransferPreSignedHash(address(this), _to, _value, _fee, _nonce);
- address from = ECDSA.recover(hashedParams, _signature);
- Erequire(from != address(0), "Invalid from address recovered");
- bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams));
- require(hashedTxs[hashedTx] == false,"Transaction hash was already used");
- hashedTxs[hashedTx] = true;
- _transfer(from, _to, _value);
- _transfer(from, msg.sender, _fee);
+ // bytes32 hashedParams = getTransferPreSignedHash(address(this), _to, _value, _fee, _nonce);
+ // address from = ECDSA.recover(hashedParams, _signature);
+ // require(from != address(0), "Invalid from address recovered");
+ // bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams));
+ // require(hashedTxs[hashedTx] == false,"Transaction hash was already used");
+ // hashedTxs[hashedTx] = true;
+ // _transfer(from, _to, _value);
+ // _transfer(from, msg.sender, _fee);
- emit TransferPreSigned(from, _to, msg.sender, _value, _fee);
- return true;
- }
+ // emit TransferPreSigned(from, _to, msg.sender, _value, _fee);
+ // return true;
+ // }
- /**
- * @dev Submit a presigned approval
- * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
- * @param _signature bytes The signature, issued by the owner.
- * @param _spender address The address which will spend the funds.
- * @param _value uint256 The amount of tokens to allow.
- * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
- * @param _nonce uint256 Presigned transaction number.
- */
- function approvePreSigned(
- bytes _signature,
- address _spender,
- uint256 _value,
- uint256 _fee,
- uint256 _nonce
- )
- public
- returns (bool)
- {
- Erequire(_spender != address(0),"Invalid _spender address");
+ // /**
+ // * @dev Submit a presigned approval
+ // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
+ // * @param _signature bytes The signature, issued by the owner.
+ // * @param _spender address The address which will spend the funds.
+ // * @param _value uint256 The amount of tokens to allow.
+ // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
+ // * @param _nonce uint256 Presigned transaction number.
+ // */
+ // function approvePreSigned(
+ // bytes _signature,
+ // address _spender,
+ // uint256 _value,
+ // uint256 _fee,
+ // uint256 _nonce
+ // )
+ // public
+ // returns (bool)
+ // {
+ // require(_spender != address(0),"Invalid _spender address");
- bytes32 hashedParams = getApprovePreSignedHash(address(this), _spender, _value, _fee, _nonce);
- address from = ECDSA.recover(hashedParams, _signature);
- Erequire(from != address(0),"Invalid from address recovered");
- bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams));
- Erequire(hashedTxs[hashedTx] == false,"Transaction hash was already used");
- hashedTxs[hashedTx] = true;
- _approve(from, _spender, _value);
- _transfer(from, msg.sender, _fee);
+ // bytes32 hashedParams = getApprovePreSignedHash(address(this), _spender, _value, _fee, _nonce);
+ // address from = ECDSA.recover(hashedParams, _signature);
+ // require(from != address(0),"Invalid from address recovered");
+ // bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams));
+ // require(hashedTxs[hashedTx] == false,"Transaction hash was already used");
+ // hashedTxs[hashedTx] = true;
+ // _approve(from, _spender, _value);
+ // _transfer(from, msg.sender, _fee);
- emit ApprovalPreSigned(from, _spender, msg.sender, _value, _fee);
- return true;
- }
+ // emit ApprovalPreSigned(from, _spender, msg.sender, _value, _fee);
+ // return true;
+ // }
- /**
- * @dev Increase the amount of tokens that an owner allowed to a spender.
- * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
- * @param _signature bytes The signature, issued by the owner.
- * @param _spender address The address which will spend the funds.
- * @param _addedValue uint256 The amount of tokens to increase the allowance by.
- * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
- * @param _nonce uint256 Presigned transaction number.
- */
- function increaseAllowancePreSigned(
- bytes _signature,
- address _spender,
- uint256 _addedValue,
- uint256 _fee,
- uint256 _nonce
- )
- public
- returns (bool)
- {
- Erequire(_spender != address(0),"Invalid _spender address");
+ // /**
+ // * @dev Increase the amount of tokens that an owner allowed to a spender.
+ // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
+ // * @param _signature bytes The signature, issued by the owner.
+ // * @param _spender address The address which will spend the funds.
+ // * @param _addedValue uint256 The amount of tokens to increase the allowance by.
+ // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
+ // * @param _nonce uint256 Presigned transaction number.
+ // */
+ // function increaseAllowancePreSigned(
+ // bytes _signature,
+ // address _spender,
+ // uint256 _addedValue,
+ // uint256 _fee,
+ // uint256 _nonce
+ // )
+ // public
+ // returns (bool)
+ // {
+ // require(_spender != address(0),"Invalid _spender address");
- bytes32 hashedParams = getIncreaseAllowancePreSignedHash(address(this), _spender, _addedValue, _fee, _nonce);
- address from = ECDSA.recover(hashedParams, _signature);
- Erequire(from != address(0),"Invalid from address recovered");
- bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams));
- Erequire(hashedTxs[hashedTx] == false,"Transaction hash was already used");
- hashedTxs[hashedTx] = true;
- _approve(from, _spender, allowance(from, _spender).add(_addedValue));
- _transfer(from, msg.sender, _fee);
+ // bytes32 hashedParams = getIncreaseAllowancePreSignedHash(address(this), _spender, _addedValue, _fee, _nonce);
+ // address from = ECDSA.recover(hashedParams, _signature);
+ // require(from != address(0),"Invalid from address recovered");
+ // bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams));
+ // require(hashedTxs[hashedTx] == false,"Transaction hash was already used");
+ // hashedTxs[hashedTx] = true;
+ // _approve(from, _spender, allowance(from, _spender).add(_addedValue));
+ // _transfer(from, msg.sender, _fee);
- emit ApprovalPreSigned(from, _spender, msg.sender, allowance(from, _spender), _fee);
- return true;
- }
+ // emit ApprovalPreSigned(from, _spender, msg.sender, allowance(from, _spender), _fee);
+ // return true;
+ // }
- /**
- * @dev Decrease the amount of tokens that an owner allowed to a spender.
- * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
- * @param _signature bytes The signature, issued by the owner
- * @param _spender address The address which will spend the funds.
- * @param _subtractedValue uint256 The amount of tokens to decrease the allowance by.
- * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
- * @param _nonce uint256 Presigned transaction number.
- */
- function decreaseAllowancePreSigned(
- bytes _signature,
- address _spender,
- uint256 _subtractedValue,
- uint256 _fee,
- uint256 _nonce
- )
- public
- returns (bool)
- {
- Erequire(_spender != address(0),"Invalid _spender address");
+ // /**
+ // * @dev Decrease the amount of tokens that an owner allowed to a spender.
+ // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
+ // * @param _signature bytes The signature, issued by the owner
+ // * @param _spender address The address which will spend the funds.
+ // * @param _subtractedValue uint256 The amount of tokens to decrease the allowance by.
+ // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
+ // * @param _nonce uint256 Presigned transaction number.
+ // */
+ // function decreaseAllowancePreSigned(
+ // bytes _signature,
+ // address _spender,
+ // uint256 _subtractedValue,
+ // uint256 _fee,
+ // uint256 _nonce
+ // )
+ // public
+ // returns (bool)
+ // {
+ // require(_spender != address(0),"Invalid _spender address");
- bytes32 hashedParams = getDecreaseAllowancePreSignedHash(address(this), _spender, _subtractedValue, _fee, _nonce);
- address from = ECDSA.recover(hashedParams, _signature);
- Erequire(from != address(0),"Invalid from address recovered");
- bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams));
- Erequire(hashedTxs[hashedTx] == false,"Transaction hash was already used");
- // if substractedValue is greater than allowance will fail as allowance is uint256
- hashedTxs[hashedTx] = true;
- _approve(from, _spender, allowance(from,_spender).sub(_subtractedValue));
- _transfer(from, msg.sender, _fee);
+ // bytes32 hashedParams = getDecreaseAllowancePreSignedHash(address(this), _spender, _subtractedValue, _fee, _nonce);
+ // address from = ECDSA.recover(hashedParams, _signature);
+ // require(from != address(0),"Invalid from address recovered");
+ // bytes32 hashedTx = keccak256(abi.encodePacked(from, hashedParams));
+ // require(hashedTxs[hashedTx] == false,"Transaction hash was already used");
+ // // if substractedValue is greater than allowance will fail as allowance is uint256
+ // hashedTxs[hashedTx] = true;
+ // _approve(from, _spender, allowance(from,_spender).sub(_subtractedValue));
+ // _transfer(from, msg.sender, _fee);
- emit ApprovalPreSigned(from, _spender, msg.sender, allowance(from, _spender), _fee);
- return true;
- }
+ // emit ApprovalPreSigned(from, _spender, msg.sender, allowance(from, _spender), _fee);
+ // return true;
+ // }
- /**
- * @dev Transfer tokens from one address to another
- * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
- * @param _signature bytes The signature, issued by the spender.
- * @param _from address The address which you want to send tokens from.
- * @param _to address The address which you want to transfer to.
- * @param _value uint256 The amount of tokens to be transferred.
- * @param _fee uint256 The amount of tokens paid to msg.sender, by the spender.
- * @param _nonce uint256 Presigned transaction number.
- */
- function transferFromPreSigned(
- bytes _signature,
- address _from,
- address _to,
- uint256 _value,
- uint256 _fee,
- uint256 _nonce
- )
- public
- returns (bool)
- {
- Erequire(_to != address(0),"Invalid _to address");
+ // /**
+ // * @dev Transfer tokens from one address to another
+ // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
+ // * @param _signature bytes The signature, issued by the spender.
+ // * @param _from address The address which you want to send tokens from.
+ // * @param _to address The address which you want to transfer to.
+ // * @param _value uint256 The amount of tokens to be transferred.
+ // * @param _fee uint256 The amount of tokens paid to msg.sender, by the spender.
+ // * @param _nonce uint256 Presigned transaction number.
+ // */
+ // function transferFromPreSigned(
+ // bytes _signature,
+ // address _from,
+ // address _to,
+ // uint256 _value,
+ // uint256 _fee,
+ // uint256 _nonce
+ // )
+ // public
+ // returns (bool)
+ // {
+ // require(_to != address(0),"Invalid _to address");
- bytes32 hashedParams = getTransferFromPreSignedHash(address(this), _from, _to, _value, _fee, _nonce);
+ // bytes32 hashedParams = getTransferFromPreSignedHash(address(this), _from, _to, _value, _fee, _nonce);
- address spender = ECDSA.recover(hashedParams, _signature);
- Erequire(spender != address(0),"Invalid spender address recovered");
- bytes32 hashedTx = keccak256(abi.encodePacked(spender, hashedParams));
- Erequire(hashedTxs[hashedTx] == false,"Transaction hash was already used");
- hashedTxs[hashedTx] = true;
- _transfer(_from, _to, _value);
- _approve(_from, spender, allowance(_from, spender).sub(_value));
- _transfer(spender, msg.sender, _fee);
+ // address spender = ECDSA.recover(hashedParams, _signature);
+ // require(spender != address(0),"Invalid spender address recovered");
+ // bytes32 hashedTx = keccak256(abi.encodePacked(spender, hashedParams));
+ // require(hashedTxs[hashedTx] == false,"Transaction hash was already used");
+ // hashedTxs[hashedTx] = true;
+ // _transfer(_from, _to, _value);
+ // _approve(_from, spender, allowance(_from, spender).sub(_value));
+ // _transfer(spender, msg.sender, _fee);
- emit TransferPreSigned(_from, _to, msg.sender, _value, _fee);
- return true;
- }
+ // emit TransferPreSigned(_from, _to, msg.sender, _value, _fee);
+ // return true;
+ // }
- /**
- * @dev Hash (keccak256) of the payload used by transferPreSigned
- * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
- * @param _token address The address of the token.
- * @param _to address The address which you want to transfer to.
- * @param _value uint256 The amount of tokens to be transferred.
- * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
- * @param _nonce uint256 Presigned transaction number.
- */
- function getTransferPreSignedHash(
- address _token,
- address _to,
- uint256 _value,
- uint256 _fee,
- uint256 _nonce
- )
- public
- pure
- returns (bytes32)
- {
- /* "0d98dcb1": getTransferPreSignedHash(address,address,uint256,uint256,uint256) */
- return keccak256(abi.encodePacked(bytes4(0x0d98dcb1), _token, _to, _value, _fee, _nonce));
- }
+ // /**
+ // * @dev Hash (keccak256) of the payload used by transferPreSigned
+ // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
+ // * @param _token address The address of the token.
+ // * @param _to address The address which you want to transfer to.
+ // * @param _value uint256 The amount of tokens to be transferred.
+ // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
+ // * @param _nonce uint256 Presigned transaction number.
+ // */
+ // function getTransferPreSignedHash(
+ // address _token,
+ // address _to,
+ // uint256 _value,
+ // uint256 _fee,
+ // uint256 _nonce
+ // )
+ // public
+ // pure
+ // returns (bytes32)
+ // {
+ // /* "0d98dcb1": getTransferPreSignedHash(address,address,uint256,uint256,uint256) */
+ // return keccak256(abi.encodePacked(bytes4(0x0d98dcb1), _token, _to, _value, _fee, _nonce));
+ // }
- /**
- * @dev Hash (keccak256) of the payload used by approvePreSigned
- * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
- * @param _token address The address of the token
- * @param _spender address The address which will spend the funds.
- * @param _value uint256 The amount of tokens to allow.
- * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
- * @param _nonce uint256 Presigned transaction number.
- */
- function getApprovePreSignedHash(
- address _token,
- address _spender,
- uint256 _value,
- uint256 _fee,
- uint256 _nonce
- )
- public
- pure
- returns (bytes32)
- {
- /* "79250dcf": getApprovePreSignedHash(address,address,uint256,uint256,uint256) */
- return keccak256(abi.encodePacked(bytes4(0x79250dcf), _token, _spender, _value, _fee, _nonce));
- }
+ // /**
+ // * @dev Hash (keccak256) of the payload used by approvePreSigned
+ // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
+ // * @param _token address The address of the token
+ // * @param _spender address The address which will spend the funds.
+ // * @param _value uint256 The amount of tokens to allow.
+ // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
+ // * @param _nonce uint256 Presigned transaction number.
+ // */
+ // function getApprovePreSignedHash(
+ // address _token,
+ // address _spender,
+ // uint256 _value,
+ // uint256 _fee,
+ // uint256 _nonce
+ // )
+ // public
+ // pure
+ // returns (bytes32)
+ // {
+ // /* "79250dcf": getApprovePreSignedHash(address,address,uint256,uint256,uint256) */
+ // return keccak256(abi.encodePacked(bytes4(0x79250dcf), _token, _spender, _value, _fee, _nonce));
+ // }
- /**
- * @dev Hash (keccak256) of the payload used by increaseAllowancePreSigned
- * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
- * @param _token address The address of the token
- * @param _spender address The address which will spend the funds.
- * @param _addedValue uint256 The amount of tokens to increase the allowance by.
- * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
- * @param _nonce uint256 Presigned transaction number.
- */
- function getIncreaseAllowancePreSignedHash(
- address _token,
- address _spender,
- uint256 _addedValue,
- uint256 _fee,
- uint256 _nonce
- )
- public
- pure
- returns (bytes32)
- {
- /* "138e8da1": getIncreaseAllowancePreSignedHash(address,address,uint256,uint256,uint256) */
- return keccak256(abi.encodePacked(bytes4(0x138e8da1), _token, _spender, _addedValue, _fee, _nonce));
- }
+ // /**
+ // * @dev Hash (keccak256) of the payload used by increaseAllowancePreSigned
+ // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
+ // * @param _token address The address of the token
+ // * @param _spender address The address which will spend the funds.
+ // * @param _addedValue uint256 The amount of tokens to increase the allowance by.
+ // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
+ // * @param _nonce uint256 Presigned transaction number.
+ // */
+ // function getIncreaseAllowancePreSignedHash(
+ // address _token,
+ // address _spender,
+ // uint256 _addedValue,
+ // uint256 _fee,
+ // uint256 _nonce
+ // )
+ // public
+ // pure
+ // returns (bytes32)
+ // {
+ // /* "138e8da1": getIncreaseAllowancePreSignedHash(address,address,uint256,uint256,uint256) */
+ // return keccak256(abi.encodePacked(bytes4(0x138e8da1), _token, _spender, _addedValue, _fee, _nonce));
+ // }
- /**
- * @dev Hash (keccak256) of the payload used by decreaseAllowancePreSigned
- * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
- * @param _token address The address of the token
- * @param _spender address The address which will spend the funds.
- * @param _subtractedValue uint256 The amount of tokens to decrease the allowance by.
- * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
- * @param _nonce uint256 Presigned transaction number.
- */
- function getDecreaseAllowancePreSignedHash(
- address _token,
- address _spender,
- uint256 _subtractedValue,
- uint256 _fee,
- uint256 _nonce
- )
- public
- pure
- returns (bytes32)
- {
- /* "5229c56f": getDecreaseAllowancePreSignedHash(address,address,uint256,uint256,uint256) */
- return keccak256(abi.encodePacked(bytes4(0x5229c56f), _token, _spender, _subtractedValue, _fee, _nonce));
- }
+ // /**
+ // * @dev Hash (keccak256) of the payload used by decreaseAllowancePreSigned
+ // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
+ // * @param _token address The address of the token
+ // * @param _spender address The address which will spend the funds.
+ // * @param _subtractedValue uint256 The amount of tokens to decrease the allowance by.
+ // * @param _fee uint256 The amount of tokens paid to msg.sender, by the owner.
+ // * @param _nonce uint256 Presigned transaction number.
+ // */
+ // function getDecreaseAllowancePreSignedHash(
+ // address _token,
+ // address _spender,
+ // uint256 _subtractedValue,
+ // uint256 _fee,
+ // uint256 _nonce
+ // )
+ // public
+ // pure
+ // returns (bytes32)
+ // {
+ // /* "5229c56f": getDecreaseAllowancePreSignedHash(address,address,uint256,uint256,uint256) */
+ // return keccak256(abi.encodePacked(bytes4(0x5229c56f), _token, _spender, _subtractedValue, _fee, _nonce));
+ // }
- /**
- * @dev Hash (keccak256) of the payload used by transferFromPreSigned
- * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
- * @param _token address The address of the token
- * @param _from address The address which you want to send tokens from.
- * @param _to address The address which you want to transfer to.
- * @param _value uint256 The amount of tokens to be transferred.
- * @param _fee uint256 The amount of tokens paid to msg.sender, by the spender.
- * @param _nonce uint256 Presigned transaction number.
- */
- function getTransferFromPreSignedHash(
- address _token,
- address _from,
- address _to,
- uint256 _value,
- uint256 _fee,
- uint256 _nonce
- )
- public
- pure
- returns (bytes32)
- {
- /* "a70c41b4": getTransferFromPreSignedHash(address,address,address,uint256,uint256,uint256) */
- return keccak256(abi.encodePacked(bytes4(0xa70c41b4), _token, _from, _to, _value, _fee, _nonce));
- }
+ // /**
+ // * @dev Hash (keccak256) of the payload used by transferFromPreSigned
+ // * @notice fee will be given to sender if it's a smart contract make sure it can accept funds
+ // * @param _token address The address of the token
+ // * @param _from address The address which you want to send tokens from.
+ // * @param _to address The address which you want to transfer to.
+ // * @param _value uint256 The amount of tokens to be transferred.
+ // * @param _fee uint256 The amount of tokens paid to msg.sender, by the spender.
+ // * @param _nonce uint256 Presigned transaction number.
+ // */
+ // function getTransferFromPreSignedHash(
+ // address _token,
+ // address _from,
+ // address _to,
+ // uint256 _value,
+ // uint256 _fee,
+ // uint256 _nonce
+ // )
+ // public
+ // pure
+ // returns (bytes32)
+ // {
+ // /* "a70c41b4": getTransferFromPreSignedHash(address,address,address,uint256,uint256,uint256) */
+ // return keccak256(abi.encodePacked(bytes4(0xa70c41b4), _token, _from, _to, _value, _fee, _nonce));
+ // }
}
pragma solidity ^0.4.24; - +/* + THIS CONTRACT IS OBSOLETE AND REMAINS ONLY FOR UPGRADABILITY/STORAGE CONSIDERATIONS +*/ /** * @title ERC865 Interface * @dev see https://github.com/ethereum/EIPs/issues/865 @@ -179,66 +185,66 @@contract IERC865 { - event TransferPreSigned(address indexed from, address indexed to, address indexed delegate, uint256 amount, uint256 fee); - event ApprovalPreSigned(address indexed from, address indexed to, address indexed delegate, uint256 amount, uint256 fee); + // event TransferPreSigned(address indexed from, address indexed to, address indexed delegate, uint256 amount, uint256 fee); + // event ApprovalPreSigned(address indexed from, address indexed to, address indexed delegate, uint256 amount, uint256 fee); - function transferPreSigned( - bytes _signature, - address _to, - uint256 _value, - uint256 _fee, - uint256 _nonce - ) - public - returns (bool); + // function transferPreSigned( + // bytes _signature, + // address _to, + // uint256 _value, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // returns (bool); - function approvePreSigned( - bytes _signature, - address _spender, - uint256 _value, - uint256 _fee, - uint256 _nonce - ) - public - returns (bool); + // function approvePreSigned( + // bytes _signature, + // address _spender, + // uint256 _value, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // returns (bool); - function increaseAllowancePreSigned( - bytes _signature, - address _spender, - uint256 _addedValue, - uint256 _fee, - uint256 _nonce - ) - public - returns (bool); + // function increaseAllowancePreSigned( + // bytes _signature, + // address _spender, + // uint256 _addedValue, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // returns (bool); - function decreaseAllowancePreSigned( - bytes _signature, - address _spender, - uint256 _subtractedValue, - uint256 _fee, - uint256 _nonce - ) - public - returns (bool); + // function decreaseAllowancePreSigned( + // bytes _signature, + // address _spender, + // uint256 _subtractedValue, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // returns (bool); - function transferFromPreSigned( - bytes _signature, - address _from, - address _to, - uint256 _value, - uint256 _fee, - uint256 _nonce - ) - public - returns (bool); + // function transferFromPreSigned( + // bytes _signature, + // address _from, + // address _to, + // uint256 _value, + // uint256 _fee, + // uint256 _nonce + // ) + // public + // returns (bool); }
pragma solidity ^0.4.24;
import "zos-lib/contracts/Initializable.sol";
import "openzeppelin-eth/contracts/math/SafeMath.sol";
import "openzeppelin-eth/contracts/token/ERC20/ERC20.sol";
+import "openzeppelin-eth/contracts/token/ERC20/SafeERC20.sol";
import { PropsRewardsLib } from "./PropsRewardsLib.sol";
/**
@@ -770,53 +451,10 @@
**/
contract PropsRewards is Initializable, ERC20 {
using SafeMath for uint256;
+ using SafeERC20 for ERC20;
/*
* Events
- */
- event DailyRewardsSubmitted(
- uint256 indexed rewardsDay,
- bytes32 indexed rewardsHash,
- address indexed validator
- );
-
- event DailyRewardsApplicationsMinted(
- uint256 indexed rewardsDay,
- bytes32 indexed rewardsHash,
- uint256 numOfApplications,
- uint256 amount
- );
-
- event DailyRewardsValidatorsMinted(
- uint256 indexed rewardsDay,
- bytes32 indexed rewardsHash,
- uint256 numOfValidators,
- uint256 amount
- );
-
- event EntityUpdated(
- address indexed id,
- PropsRewardsLib.RewardedEntityType indexed entityType,
- bytes32 name,
- address rewardsAddress,
- address indexed sidechainAddress
- );
-
- event ParameterUpdated(
- PropsRewardsLib.ParameterName param,
- uint256 newValue,
- uint256 oldValue,
- uint256 rewardsDay
- );
-
- event ValidatorsListUpdated(
- address[] validatorsList,
- uint256 indexed rewardsDay
- );
-
- event ApplicationsListUpdated(
- address[] applicationsList,
- uint256 indexed rewardsDay
- );
+ */
event ControllerUpdated(address indexed newController);
@@ -828,7 +466,12 @@
uint256 public maxTotalSupply;
uint256 public rewardsStartTimestamp;
address public controller; // controller entity
-
+ mapping(address => bool) public minters;
+ bytes32 public DOMAIN_SEPARATOR;
+ // keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
+ bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;
+ mapping(address => uint256) public nonces;
+ uint256 public MY_CHAIN_ID;
/*
* Modifiers
*/
@@ -841,121 +484,102 @@
}
/**
- * @dev The initializer function for upgrade as initialize was already called, get the decimals used in the token to initialize the params
- * @param _controller address that will have controller functionality on rewards protocol
- * @param _minSecondsBetweenDays uint256 seconds required to pass between consecutive rewards day
- * @param _rewardsStartTimestamp uint256 day 0 timestamp
- */
- function initializePostRewardsUpgrade1(
- address _controller,
- uint256 _minSecondsBetweenDays,
- uint256 _rewardsStartTimestamp
- )
- public
- {
+ * @dev The initializer function for upgrade as initialize was already called, get the decimals used in the token to initialize the params
+ * @param _controller address that will have controller functionality on token
+ */
+ function initialize(address _controller) public {
uint256 decimals = 18;
- _initializePostRewardsUpgrade1(_controller, decimals, _minSecondsBetweenDays, _rewardsStartTimestamp);
+ _initialize(_controller, decimals);
}
/**
- * @dev Set new validators list
- * @param _rewardsDay uint256 the rewards day from which this change should take effect
- * @param _validators address[] array of validators
- */
- function setValidators(uint256 _rewardsDay, address[] _validators)
+ * @dev Initialize post separation of rewards contract upgrade
+ * @param _tokenName string token name
+ */
+ function initializePermitUpgrade(string memory _tokenName)
public
- onlyController
- returns (bool)
+ initializer
{
- PropsRewardsLib.setValidators(rewardsLibData, _rewardsDay, _validators);
- emit ValidatorsListUpdated(_validators, _rewardsDay);
- return true;
- }
-
- /**
- * @dev Set new applications list
- * @param _rewardsDay uint256 the rewards day from which this change should take effect
- * @param _applications address[] array of validators
- */
- function setApplications(uint256 _rewardsDay, address[] _applications)
- public
- onlyController
- returns (bool)
- {
- PropsRewardsLib.setApplications(rewardsLibData, _rewardsDay, _applications);
- emit ApplicationsListUpdated(_applications, _rewardsDay);
- return true;
- }
+ uint256 chainId;
+ string memory one = "1";
+ assembly {
+ chainId := chainId
+ }
- /**
- * @dev Get the applications or validators list
- * @param _entityType RewardedEntityType either application (0) or validator (1)
- * @param _rewardsDay uint256 the rewards day to use for this value
- */
- function getEntities(PropsRewardsLib.RewardedEntityType _entityType, uint256 _rewardsDay)
- public
- view
- returns (address[])
- {
- return PropsRewardsLib.getEntities(rewardsLibData, _entityType, _rewardsDay);
+ MY_CHAIN_ID = chainId;
+ DOMAIN_SEPARATOR = keccak256(
+ abi.encode(
+ keccak256(
+ "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"
+ ),
+ keccak256(bytes(_tokenName)),
+ keccak256(bytes(one)),
+ chainId,
+ address(this)
+ )
+ );
}
/**
- * @dev The function is called by validators with the calculation of the daily rewards
- * @param _rewardsDay uint256 the rewards day
- * @param _rewardsHash bytes32 hash of the rewards data
- * @param _applications address[] array of application addresses getting the daily reward
- * @param _amounts uint256[] array of amounts each app should get
- */
- function submitDailyRewards(
- uint256 _rewardsDay,
- bytes32 _rewardsHash,
- address[] _applications,
- uint256[] _amounts
- )
- public
- returns (bool)
- {
- // if submission is for a new day check if previous day validator rewards were given if not give to participating ones
- if (_rewardsDay > 0 && (_rewardsDay > rewardsLibData.dailyRewards.lastRewardsDay)) {
- uint256 previousDayValidatorRewardsAmount = PropsRewardsLib.calculateValidatorRewards(
- rewardsLibData,
- rewardsLibData.dailyRewards.lastRewardsDay,
- rewardsLibData.dailyRewards.lastConfirmedRewardsHash,
- false
+ * @dev Allows for approvals to be made via secp256k1 signatures
+ * @param _owner address owner
+ * @param _spender address spender
+ * @param _amount uint spender
+ * @param _deadline uint spender
+ * @param _v uint8 spender
+ * @param _r bytes32 spender
+ * @param _s bytes32 spender
+ */
+ function permit(
+ address _owner,
+ address _spender,
+ uint256 _amount,
+ uint256 _deadline,
+ uint8 _v,
+ bytes32 _r,
+ bytes32 _s
+ ) external {
+ Erequire(_deadline >= block.timestamp, "Permit Expired");
+ bytes32 digest =
+ keccak256(
+ abi.encodePacked(
+ "\x19\x01",
+ DOMAIN_SEPARATOR,
+ keccak256(
+ abi.encode(
+ PERMIT_TYPEHASH,
+ _owner,
+ _spender,
+ _amount,
+ nonces[_owner]++,
+ _deadline
+ )
+ )
+ )
);
- if (previousDayValidatorRewardsAmount > 0) {
- _mintDailyRewardsForValidators(rewardsLibData.dailyRewards.lastRewardsDay, rewardsLibData.dailyRewards.lastConfirmedRewardsHash, previousDayValidatorRewardsAmount);
- }
- }
- // check and give application rewards if majority of validators agree
- uint256 appRewardsSum = PropsRewardsLib.calculateApplicationRewards(
- rewardsLibData,
- _rewardsDay,
- _rewardsHash,
- _applications,
- _amounts,
- totalSupply()
+ address recoveredAddress = ecrecover(digest, _v, _r, _s);
+ Erequire(
+ recoveredAddress != address(0) && recoveredAddress == _owner,
+ "Invalid Signature"
);
- if (appRewardsSum > 0) {
- _mintDailyRewardsForApps(_rewardsDay, _rewardsHash, _applications, _amounts, appRewardsSum);
- }
-
- // check and give validator rewards if all validators submitted
- uint256 validatorRewardsAmount = PropsRewardsLib.calculateValidatorRewards(
- rewardsLibData,
- _rewardsDay,
- _rewardsHash,
- true
- );
- if (validatorRewardsAmount > 0) {
- _mintDailyRewardsForValidators(_rewardsDay, _rewardsHash, validatorRewardsAmount);
- }
-
- emit DailyRewardsSubmitted(_rewardsDay, _rewardsHash, msg.sender);
- return true;
+ _approve(_owner, _spender, _amount);
}
+ /**
+ * @dev Reclaim all ERC20 compatible tokens
+ * @param _token ERC20 The address of the token contract
+ */
+ function reclaimToken(
+ ERC20 _token,
+ address _to,
+ uint256 _amount
+ ) external onlyController {
+ Erequire(_to != address(0), "Must transfer to recipient");
+ uint256 balance = _token.balanceOf(this);
+ require(_amount <= balance, "Cannot transfer more than balance");
+ _token.safeTransfer(_to, _amount);
+ }
+
/**
* @dev Allows the controller/owner to update to a new controller
* @param _controller address address of the new controller
@@ -965,154 +589,50 @@
)
public
onlyController
- returns (bool)
{
+ Erequire(_controller != address(0), "Controller cannot be the zero address");
controller = _controller;
emit ControllerUpdated
(
_controller
);
- return true;
}
- /**
- * @dev Allows getting a parameter value based on timestamp
- * @param _name ParameterName name of the parameter
- * @param _rewardsDay uint256 starting when should this parameter use the current value
- */
- function getParameter(
- PropsRewardsLib.ParameterName _name,
- uint256 _rewardsDay
- )
- public
- view
- returns (uint256)
- {
- return PropsRewardsLib.getParameterValue(rewardsLibData, _name, _rewardsDay);
+ function addMinter(address _minter) public onlyController {
+ minters[_minter] = true;
}
- /**
- * @dev Allows the controller/owner to update rewards parameters
- * @param _name ParameterName name of the parameter
- * @param _value uint256 new value for the parameter
- * @param _rewardsDay uint256 starting when should this parameter use the current value
- */
- function updateParameter(
- PropsRewardsLib.ParameterName _name,
- uint256 _value,
- uint256 _rewardsDay
- )
- public
- onlyController
- returns (bool)
- {
- PropsRewardsLib.updateParameter(rewardsLibData, _name, _value, _rewardsDay);
- emit ParameterUpdated(
- _name,
- rewardsLibData.parameters[uint256(_name)].currentValue,
- rewardsLibData.parameters[uint256(_name)].previousValue,
- rewardsLibData.parameters[uint256(_name)].rewardsDay
- );
- return true;
+ function removeMinter(address _minter) public onlyController {
+ minters[_minter] = false;
}
/**
- * @dev Allows an application or validator to add/update its details
- * @param _entityType RewardedEntityType either application (0) or validator (1)
- * @param _name bytes32 name of the app
- * @param _rewardsAddress address an address for the app to receive the rewards
- * @param _sidechainAddress address the address used for using the sidechain
- */
- function updateEntity(
- PropsRewardsLib.RewardedEntityType _entityType,
- bytes32 _name,
- address _rewardsAddress,
- address _sidechainAddress
- )
- public
- returns (bool)
- {
- PropsRewardsLib.updateEntity(rewardsLibData, _entityType, _name, _rewardsAddress, _sidechainAddress);
- emit EntityUpdated(msg.sender, _entityType, _name, _rewardsAddress, _sidechainAddress);
- return true;
+ * @dev Allows minters to mint tokens to a given address
+ * @param _account address of the receiving account
+ * @param _amount uint256 how much to mint
+ */
+ function mint(address _account, uint256 _amount) public {
+ require(minters[msg.sender], "Mint fn can be called only by minter");
+ Erequire(
+ totalSupply().add(_amount) <= maxTotalSupply,
+ "Max total supply exceeded"
+ );
+ _mint(_account, _amount);
}
-
+
/**
- * @dev internal intialize rewards upgrade1
- * @param _controller address that will have controller functionality on rewards protocol
- * @param _decimals uint256 number of decimals used in total supply
- * @param _minSecondsBetweenDays uint256 seconds required to pass between consecutive rewards day
- * @param _rewardsStartTimestamp uint256 day 0 timestamp
- */
- function _initializePostRewardsUpgrade1(
- address _controller,
- uint256 _decimals,
- uint256 _minSecondsBetweenDays,
- uint256 _rewardsStartTimestamp
- )
- internal
- {
- Erequire(maxTotalSupply==0, "Initialize rewards upgrade1 can happen only once");
+ * @dev internal intialize
+ * @param _controller address that will have controller functionality on rewards protocol
+ * @param _decimals uint256 number of decimals used in total supply
+ */
+ function _initialize(address _controller, uint256 _decimals) internal {
+ Erequire(
+ maxTotalSupply == 0,
+ "Initialize rewards upgrade1 can happen only once"
+ );
controller = _controller;
- // ApplicationRewardsPercent pphm ==> 0.03475%
- PropsRewardsLib.updateParameter(rewardsLibData, PropsRewardsLib.ParameterName.ApplicationRewardsPercent, 34750, 0);
- // // ApplicationRewardsMaxVariationPercent pphm ==> 150%
- PropsRewardsLib.updateParameter(rewardsLibData, PropsRewardsLib.ParameterName.ApplicationRewardsMaxVariationPercent, 150 * 1e6, 0);
- // // ValidatorMajorityPercent pphm ==> 50%
- PropsRewardsLib.updateParameter(rewardsLibData, PropsRewardsLib.ParameterName.ValidatorMajorityPercent, 50 * 1e6, 0);
- // // ValidatorRewardsPercent pphm ==> 0.001829%
- PropsRewardsLib.updateParameter(rewardsLibData, PropsRewardsLib.ParameterName.ValidatorRewardsPercent, 1829, 0);
-
// max total supply is 1,000,000,000 PROPS specified in AttoPROPS
- rewardsLibData.maxTotalSupply = maxTotalSupply = 1 * 1e9 * (10 ** uint256(_decimals));
- rewardsLibData.rewardsStartTimestamp = rewardsStartTimestamp = _rewardsStartTimestamp;
- rewardsLibData.minSecondsBetweenDays = _minSecondsBetweenDays;
-
- }
-
- /**
- * @dev Mint rewards for validators
- * @param _rewardsDay uint256 the rewards day
- * @param _rewardsHash bytes32 hash of the rewards data
- * @param _amount uint256 amount each validator should get
- */
- function _mintDailyRewardsForValidators(uint256 _rewardsDay, bytes32 _rewardsHash, uint256 _amount)
- internal
- {
- uint256 validatorsCount = rewardsLibData.dailyRewards.submissions[_rewardsHash].validatorsList.length;
- for (uint256 i = 0; i < validatorsCount; i++) {
- _mint(rewardsLibData.validators[rewardsLibData.dailyRewards.submissions[_rewardsHash].validatorsList[i]].rewardsAddress,_amount);
- }
- PropsRewardsLib._resetDailyRewards(rewardsLibData);
- emit DailyRewardsValidatorsMinted(
- _rewardsDay,
- _rewardsHash,
- validatorsCount,
- (_amount * validatorsCount)
- );
- }
-
- /**
- * @dev Mint rewards for apps
- * @param _rewardsDay uint256 the rewards day
- * @param _rewardsHash bytes32 hash of the rewards data
- * @param _applications address[] array of application addresses getting the daily reward
- * @param _amounts uint256[] array of amounts each app should get
- * @param _sum uint256 the sum of all application rewards given
- */
- function _mintDailyRewardsForApps(
- uint256 _rewardsDay,
- bytes32 _rewardsHash,
- address[] _applications,
- uint256[] _amounts,
- uint256 _sum
- )
- internal
- {
- for (uint256 i = 0; i < _applications.length; i++) {
- _mint(rewardsLibData.applications[_applications[i]].rewardsAddress, _amounts[i]);
- }
- emit DailyRewardsApplicationsMinted(_rewardsDay, _rewardsHash, _applications.length, _sum);
+ maxTotalSupply = 1 * 1e9 * (10**_decimals);
}
}
pragma solidity ^0.4.24; - +/* + THIS CONTRACT IS OBSOLETE AND REMAINS ONLY FOR UPGRADABILITY/STORAGE CONSIDERATIONS +*/ import "openzeppelin-eth/contracts/math/SafeMath.sol"; /** @@ -1569,14 +271,14 @@bytes32[] submittedRewardsHashes; uint256 totalSupply; bytes32 lastConfirmedRewardsHash; - uint256 lastRewardsDay; + uint256 lastApplicationsRewardsDay; } struct Submission { mapping (address => bool) validators; address[] validatorsList; uint256 confirmations; - uint256 finalized; + uint256 finalizedStatus; // 0 - initialized, 1 - finalized bool isInitializedState; // A way to check if there's something in the map and whether it is already added to the list } @@ -1600,667 +302,15 @@
uint256 minSecondsBetweenDays; uint256 rewardsStartTimestamp; uint256 maxTotalSupply; - uint256 lastRewardsDay; - } - /* - * Modifiers - */ - modifier onlyOneRewardsHashPerValidator(Data storage _self, bytes32 _rewardsHash) { - require( - !_self.dailyRewards.submissions[_rewardsHash].validators[msg.sender], - "Must be one submission per validator" - ); - _; - } - - modifier onlyExistingApplications(Data storage _self, address[] _entities) { - for (uint256 i = 0; i < _entities.length; i++) { - require( - _self.applications[_entities[i]].isInitializedState, - "Application must exist" - ); - } - _; - } - - modifier onlyExistingValidators(Data storage _self, address[] _entities) { - for (uint256 i = 0; i < _entities.length; i++) { - require( - _self.validators[_entities[i]].isInitializedState, - "Validator must exist" - ); - } - _; - } - - modifier onlySelectedValidators(Data storage _self, uint256 _rewardsDay) { - if (_getSelectedRewardedEntityListType(_self.selectedValidators, _rewardsDay) == 0) { - Erequire ( - _self.selectedValidators.current[msg.sender], - "Must be a current selected validator" - ); - } else { - require ( - _self.selectedValidators.previous[msg.sender], - "Must be a previous selected validator" - ); - } - _; - } - - modifier onlyValidRewardsDay(Data storage _self, uint256 _rewardsDay) { - require( - _currentRewardsDay(_self) == _rewardsDay && _rewardsDay > _self.lastRewardsDay, - "Must be for current day" - ); - _; - } - - modifier onlyValidFutureRewardsDay(Data storage _self, uint256 _rewardsDay) { - Erequire( - _rewardsDay >= _currentRewardsDay(_self), - "Must be future rewardsDay" - ); - _; - } - - modifier onlyValidAddresses(address _rewardsAddress, address _sidechainAddress) { - Erequire( - _rewardsAddress != address(0) && - _sidechainAddress != address(0), - "Must have valid rewards and sidechain addresses" - ); - _; - } - - /** - * @dev The function is called by validators with the calculation of the daily rewards - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day - * @param _rewardsHash bytes32 hash of the rewards data - * @param _allValidators bool should the calculation be based on all the validators or just those which submitted - */ - function calculateValidatorRewards( - Data storage _self, - uint256 _rewardsDay, - bytes32 _rewardsHash, - bool _allValidators - ) - public - view - returns (uint256) - { - uint256 numOfValidators; - if (_self.dailyRewards.submissions[_rewardsHash].finalized == 1) - { - if (_allValidators) { - numOfValidators = _requiredValidatorsForValidatorsRewards(_self, _rewardsDay); - if (numOfValidators > _self.dailyRewards.submissions[_rewardsHash].confirmations) return 0; - } else { - numOfValidators = _self.dailyRewards.submissions[_rewardsHash].confirmations; - } - uint256 rewardsPerValidator = _getValidatorRewardsDailyAmountPerValidator(_self, _rewardsDay, numOfValidators); - return rewardsPerValidator; - } - return 0; - } - - /** - * @dev The function is called by validators with the calculation of the daily rewards - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day - * @param _rewardsHash bytes32 hash of the rewards data - * @param _applications address[] array of application addresses getting the daily reward - * @param _amounts uint256[] array of amounts each app should get - * @param _currentTotalSupply uint256 current total supply - */ - function calculateApplicationRewards( - Data storage _self, - uint256 _rewardsDay, - bytes32 _rewardsHash, - address[] _applications, - uint256[] _amounts, - uint256 _currentTotalSupply - ) - public - onlyValidRewardsDay(_self, _rewardsDay) - onlyOneRewardsHashPerValidator(_self, _rewardsHash) - onlySelectedValidators(_self, _rewardsDay) - returns (uint256) - { - require( - _rewardsHashIsValid(_rewardsDay, _rewardsHash, _applications, _amounts), - "Rewards Hash is invalid" - ); - if (!_self.dailyRewards.submissions[_rewardsHash].isInitializedState) { - _self.dailyRewards.submissions[_rewardsHash].isInitializedState = true; - _self.dailyRewards.submittedRewardsHashes.push(_rewardsHash); - } - _self.dailyRewards.submissions[_rewardsHash].validators[msg.sender] = true; - _self.dailyRewards.submissions[_rewardsHash].validatorsList.push(msg.sender); - _self.dailyRewards.submissions[_rewardsHash].confirmations++; - - if (_self.dailyRewards.submissions[_rewardsHash].confirmations == _requiredValidatorsForAppRewards(_self, _rewardsDay)) { - uint256 sum = _validateSubmittedData(_self, _applications, _amounts); - require( - sum <= _getMaxAppRewardsDailyAmount(_self, _rewardsDay, _currentTotalSupply), - "Rewards data is invalid - exceed daily variation" - ); - _finalizeDailyApplicationRewards(_self, _rewardsDay, _rewardsHash, _currentTotalSupply); - return sum; - } - return 0; - } - - /** - * @dev Finalizes the state, rewards Hash, total supply and block timestamp for the day - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day - * @param _rewardsHash bytes32 the daily rewards hash - * @param _currentTotalSupply uint256 the current total supply - */ - function _finalizeDailyApplicationRewards(Data storage _self, uint256 _rewardsDay, bytes32 _rewardsHash, uint256 _currentTotalSupply) - public - returns (bool) - { - _self.dailyRewards.totalSupply = _currentTotalSupply; - _self.dailyRewards.lastConfirmedRewardsHash = _rewardsHash; - _self.dailyRewards.lastRewardsDay = _rewardsDay; - _self.dailyRewards.submissions[_rewardsHash].finalized = 1; - return true; - } - - /** - * @dev Get parameter's value - * @param _self Data pointer to storage - * @param _name ParameterName name of the parameter - * @param _rewardsDay uint256 the rewards day - */ - function getParameterValue( - Data storage _self, - ParameterName _name, - uint256 _rewardsDay - ) - public - view - returns (uint256) - { - if (_rewardsDay >= _self.parameters[uint256(_name)].rewardsDay) { - return _self.parameters[uint256(_name)].currentValue; - } else { - return _self.parameters[uint256(_name)].previousValue; - } - } - - /** - * @dev Allows the controller/owner to update rewards parameters - * @param _self Data pointer to storage - * @param _name ParameterName name of the parameter - * @param _value uint256 new value for the parameter - * @param _rewardsDay uint256 the rewards day - */ - function updateParameter( - Data storage _self, - ParameterName _name, - uint256 _value, - uint256 _rewardsDay - ) - public - onlyValidFutureRewardsDay(_self, _rewardsDay) - returns (bool) - { - if (_rewardsDay <= _self.parameters[uint256(_name)].rewardsDay) { - _self.parameters[uint256(_name)].currentValue = _value; - _self.parameters[uint256(_name)].rewardsDay = _rewardsDay; - } else { - _self.parameters[uint256(_name)].previousValue = _self.parameters[uint256(_name)].currentValue; - _self.parameters[uint256(_name)].currentValue = _value; - _self.parameters[uint256(_name)].rewardsDay = _rewardsDay; - } - return true; - } - - /** - * @dev Allows an application to add/update its details - * @param _self Data pointer to storage - * @param _entityType RewardedEntityType either application (0) or validator (1) - * @param _name bytes32 name of the app - * @param _rewardsAddress address an address for the app to receive the rewards - * @param _sidechainAddress address the address used for using the sidechain - */ - function updateEntity( - Data storage _self, - RewardedEntityType _entityType, - bytes32 _name, - address _rewardsAddress, - address _sidechainAddress - ) - public - onlyValidAddresses(_rewardsAddress, _sidechainAddress) - returns (bool) - { - if (_entityType == RewardedEntityType.Application) { - updateApplication(_self, _name, _rewardsAddress, _sidechainAddress); - } else { - updateValidator(_self, _name, _rewardsAddress, _sidechainAddress); - } - return true; - } - - /** - * @dev Allows an application to add/update its details - * @param _self Data pointer to storage - * @param _name bytes32 name of the app - * @param _rewardsAddress address an address for the app to receive the rewards - * @param _sidechainAddress address the address used for using the sidechain - */ - function updateApplication( - Data storage _self, - bytes32 _name, - address _rewardsAddress, - address _sidechainAddress - ) - public - returns (uint256) - { - _self.applications[msg.sender].name = _name; - _self.applications[msg.sender].rewardsAddress = _rewardsAddress; - _self.applications[msg.sender].sidechainAddress = _sidechainAddress; - if (!_self.applications[msg.sender].isInitializedState) { - _self.applicationsList.push(msg.sender); - _self.applications[msg.sender].isInitializedState = true; - _self.applications[msg.sender].entityType = RewardedEntityType.Application; - } - return uint256(RewardedEntityType.Application); - } - - /** - * @dev Allows a validator to add/update its details - * @param _self Data pointer to storage - * @param _name bytes32 name of the validator - * @param _rewardsAddress address an address for the validator to receive the rewards - * @param _sidechainAddress address the address used for using the sidechain - */ - function updateValidator( - Data storage _self, - bytes32 _name, - address _rewardsAddress, - address _sidechainAddress - ) - public - returns (uint256) - { - _self.validators[msg.sender].name = _name; - _self.validators[msg.sender].rewardsAddress = _rewardsAddress; - _self.validators[msg.sender].sidechainAddress = _sidechainAddress; - if (!_self.validators[msg.sender].isInitializedState) { - _self.validatorsList.push(msg.sender); - _self.validators[msg.sender].isInitializedState = true; - _self.validators[msg.sender].entityType = RewardedEntityType.Validator; - } - return uint256(RewardedEntityType.Validator); - } - - /** - * @dev Set new validators list - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day from which the list should be active - * @param _validators address[] array of validators - */ - function setValidators( - Data storage _self, - uint256 _rewardsDay, - address[] _validators - ) - public - onlyValidFutureRewardsDay(_self, _rewardsDay) - onlyExistingValidators(_self, _validators) - returns (bool) - { - // no need to update the previous if its' the first time or second update in the same day - if (_rewardsDay > _self.selectedValidators.rewardsDay && _self.selectedValidators.currentList.length > 0) - _updatePreviousEntityList(_self.selectedValidators); - - _updateCurrentEntityList(_self.selectedValidators, _validators); - _self.selectedValidators.rewardsDay = _rewardsDay; - return true; - } - - /** - * @dev Set new applications list - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day from which the list should be active - * @param _applications address[] array of applications - */ - function setApplications( - Data storage _self, - uint256 _rewardsDay, - address[] _applications - ) - public - onlyValidFutureRewardsDay(_self, _rewardsDay) - onlyExistingApplications(_self, _applications) - returns (bool) - { - - if (_rewardsDay > _self.selectedApplications.rewardsDay && _self.selectedApplications.currentList.length > 0) - _updatePreviousEntityList(_self.selectedApplications); - _updateCurrentEntityList(_self.selectedApplications, _applications); - _self.selectedApplications.rewardsDay = _rewardsDay; - return true; - } - - /** - * @dev Get applications or validators list - * @param _self Data pointer to storage - * @param _entityType RewardedEntityType either application (0) or validator (1) - * @param _rewardsDay uint256 the rewards day to determine which list to get - */ - function getEntities( - Data storage _self, - RewardedEntityType _entityType, - uint256 _rewardsDay - ) - public - view - returns (address[]) - { - if (_entityType == RewardedEntityType.Application) { - if (_getSelectedRewardedEntityListType(_self.selectedApplications, _rewardsDay) == 0) { - return _self.selectedApplications.currentList; - } else { - return _self.selectedApplications.previousList; - } - } else { - if (_getSelectedRewardedEntityListType(_self.selectedValidators, _rewardsDay) == 0) { - return _self.selectedValidators.currentList; - } else { - return _self.selectedValidators.previousList; - } - } - } - - /** - * @dev Get which entity list to use. Current = 0, previous = 1 - * @param _rewardedEntitylist RewardedEntityList pointer to storage - * @param _rewardsDay uint256 the rewards day to determine which list to get - */ - function _getSelectedRewardedEntityListType(RewardedEntityList _rewardedEntitylist, uint256 _rewardsDay) - internal - pure - returns (uint256) - { - if (_rewardsDay >= _rewardedEntitylist.rewardsDay) { - return 0; - } else { - return 1; - } - } - - /** - * @dev Checks how many validators are needed for app rewards - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day - * @param _currentTotalSupply uint256 current total supply - */ - function _getMaxAppRewardsDailyAmount( - Data storage _self, - uint256 _rewardsDay, - uint256 _currentTotalSupply - ) - public - view - returns (uint256) - { - return ((_self.maxTotalSupply.sub(_currentTotalSupply)).mul( - getParameterValue(_self, ParameterName.ApplicationRewardsPercent, _rewardsDay)).mul( - getParameterValue(_self, ParameterName.ApplicationRewardsMaxVariationPercent, _rewardsDay))).div(1e16); - } - - - /** - * @dev Checks how many validators are needed for app rewards - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day - * @param _numOfValidators uint256 number of validators - */ - function _getValidatorRewardsDailyAmountPerValidator( - Data storage _self, - uint256 _rewardsDay, - uint256 _numOfValidators - ) - public - view - returns (uint256) - { - return (((_self.maxTotalSupply.sub(_self.dailyRewards.totalSupply)).mul( - getParameterValue(_self, ParameterName.ValidatorRewardsPercent, _rewardsDay))).div(1e8)).div(_numOfValidators); - } - - /** - * @dev Checks if app daily rewards amount is valid - * @param _self Data pointer to storage - * @param _applications address[] array of application addresses getting the daily rewards - * @param _amounts uint256[] array of amounts each app should get - */ - function _validateSubmittedData( - Data storage _self, - address[] _applications, - uint256[] _amounts - ) - public - view - returns (uint256) - { - uint256 sum; - bool valid = true; - for (uint256 i = 0; i < _amounts.length; i++) { - sum = sum.add(_amounts[i]); - if (!_self.applications[_applications[i]].isInitializedState) valid = false; - } - require( - sum > 0 && valid, - "Sum zero or none existing app submitted" - ); - return sum; - } - - /** - * @dev Checks if submitted data matches rewards hash - * @param _rewardsDay uint256 the rewards day - * @param _rewardsHash bytes32 hash of the rewards data - * @param _applications address[] array of application addresses getting the daily rewards - * @param _amounts uint256[] array of amounts each app should get - */ - function _rewardsHashIsValid( - uint256 _rewardsDay, - bytes32 _rewardsHash, - address[] _applications, - uint256[] _amounts - ) - public - pure - returns (bool) - { - return - _applications.length > 0 && - _applications.length == _amounts.length && - keccak256(abi.encodePacked(_rewardsDay, _applications.length, _amounts.length, _applications, _amounts)) == _rewardsHash; - } - - /** - * @dev Checks how many validators are needed for app rewards - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day - */ - function _requiredValidatorsForValidatorsRewards(Data storage _self, uint256 _rewardsDay) - public - view - returns (uint256) - { - if (_getSelectedRewardedEntityListType(_self.selectedValidators, _rewardsDay) == 0) { - return _self.selectedValidators.currentList.length; - } else { - return _self.selectedValidators.previousList.length; - } - } - - /** - * @dev Checks how many validators are needed for app rewards - * @param _self Data pointer to storage - * @param _rewardsDay uint256 the rewards day - */ - function _requiredValidatorsForAppRewards(Data storage _self, uint256 _rewardsDay) - public - view - returns (uint256) - { - if (_getSelectedRewardedEntityListType(_self.selectedValidators, _rewardsDay) == 0) { - return ((_self.selectedValidators.currentList.length.mul(getParameterValue(_self, ParameterName.ValidatorMajorityPercent, _rewardsDay))).div(1e8)).add(1); - } else { - return ((_self.selectedValidators.previousList.length.mul(getParameterValue(_self, ParameterName.ValidatorMajorityPercent, _rewardsDay))).div(1e8)).add(1); - } - } - - /** - * @dev Get rewards day from block.timestamp - * @param _self Data pointer to storage - */ - function _currentRewardsDay(Data storage _self) - public - view - returns (uint256) - { - //the the start time - floor timestamp to previous midnight divided by seconds in a day will give the rewards day number - if (_self.minSecondsBetweenDays > 0) { - return (block.timestamp.sub(_self.rewardsStartTimestamp)).div(_self.minSecondsBetweenDays).add(1); - } else { - return 0; - } - } - - /** - * @dev Update current daily applications list. - * If new, push. - * If same size, replace - * If different size, delete, and then push. - * @param _rewardedEntitylist RewardedEntityList pointer to storage - * @param _entities address[] array of entities - */ - //_updateCurrentEntityList(_rewardedEntitylist, _entities,_rewardedEntityType), - function _updateCurrentEntityList( - RewardedEntityList storage _rewardedEntitylist, - address[] _entities - ) - internal - returns (bool) - { - bool emptyCurrentList = _rewardedEntitylist.currentList.length == 0; - if (!emptyCurrentList && _rewardedEntitylist.currentList.length != _entities.length) { - _deleteCurrentEntityList(_rewardedEntitylist); - emptyCurrentList = true; - } - - for (uint256 i = 0; i < _entities.length; i++) { - if (emptyCurrentList) { - _rewardedEntitylist.currentList.push(_entities[i]); - } else { - _rewardedEntitylist.currentList[i] = _entities[i]; - } - _rewardedEntitylist.current[_entities[i]] = true; - } - return true; - } - - /** - * @dev Update previous daily list - * @param _rewardedEntitylist RewardedEntityList pointer to storage - */ - function _updatePreviousEntityList(RewardedEntityList storage _rewardedEntitylist) - internal - returns (bool) - { - bool emptyPreviousList = _rewardedEntitylist.previousList.length == 0; - if ( - !emptyPreviousList && - _rewardedEntitylist.previousList.length != _rewardedEntitylist.currentList.length - ) { - _deletePreviousEntityList(_rewardedEntitylist); - emptyPreviousList = true; - } - for (uint256 i = 0; i < _rewardedEntitylist.currentList.length; i++) { - Eif (emptyPreviousList) { - _rewardedEntitylist.previousList.push(_rewardedEntitylist.currentList[i]); - } else { - _rewardedEntitylist.previousList[i] = _rewardedEntitylist.currentList[i]; - } - _rewardedEntitylist.previous[_rewardedEntitylist.currentList[i]] = true; - } - return true; - } - - /** - * @dev Delete existing values from the current list - * @param _rewardedEntitylist RewardedEntityList pointer to storage - */ - function _deleteCurrentEntityList(RewardedEntityList storage _rewardedEntitylist) - internal - returns (bool) - { - for (uint256 i = 0; i < _rewardedEntitylist.currentList.length ; i++) { - delete _rewardedEntitylist.current[_rewardedEntitylist.currentList[i]]; - } - delete _rewardedEntitylist.currentList; - return true; - } - - /** - * @dev Delete existing values from the previous applications list - * @param _rewardedEntitylist RewardedEntityList pointer to storage - */ - function _deletePreviousEntityList(RewardedEntityList storage _rewardedEntitylist) - internal - returns (bool) - { - for (uint256 i = 0; i < _rewardedEntitylist.previousList.length ; i++) { - delete _rewardedEntitylist.previous[_rewardedEntitylist.previousList[i]]; - } - delete _rewardedEntitylist.previousList; - return true; - } - - /** - * @dev Deletes rewards day submission data - * @param _self Data pointer to storage - */ - function _resetDailyRewards( - Data storage _self - ) - public - returns (bool) - { - _self.lastRewardsDay = _self.dailyRewards.lastRewardsDay; - bytes32[] memory rewardsHashes = _self.dailyRewards.submittedRewardsHashes; - for (uint256 i = 0; i < rewardsHashes.length; i++) { - for (uint256 j = 0; j < _self.dailyRewards.submissions[rewardsHashes[i]].validatorsList.length; j++) { - delete( - _self.dailyRewards.submissions[rewardsHashes[i]].validators[_self.dailyRewards.submissions[rewardsHashes[i]].validatorsList[j]] - ); - } - delete _self.dailyRewards.submissions[rewardsHashes[i]].validatorsList; - _self.dailyRewards.submissions[rewardsHashes[i]].confirmations = 0; - _self.dailyRewards.submissions[rewardsHashes[i]].finalized = 0; - _self.dailyRewards.submissions[rewardsHashes[i]].isInitializedState = false; - } - delete _self.dailyRewards.submittedRewardsHashes; - } + uint256 lastValidatorsRewardsDay; + } }
pragma solidity ^0.4.24; - +/* + THIS CONTRACT IS OBSOLETE AND REMAINS ONLY FOR UPGRADABILITY/STORAGE CONSIDERATIONS +*/ import "zos-lib/contracts/Initializable.sol"; import "openzeppelin-eth/contracts/token/ERC20/ERC20.sol"; @@ -280,7 +286,7 @@diff --git a/coverage/token/PropsToken.sol.html b/coverage/token/PropsToken.sol.html index a607c3e7..eaaa7438 100644 --- a/coverage/token/PropsToken.sol.html +++ b/coverage/token/PropsToken.sol.html @@ -37,7 +37,7 @@
100% Lines - 5/5 + 6/6@@ -90,13 +90,7 @@45 46 47 -48 -49 -50 -51 -52 -53 -54
pragma solidity ^0.4.24; @@ -181,16 +169,9 @@/** * @dev Initializer function. Called only once when a proxy for the contract is created. * @param _holder address that will receive its initial supply and be able to transfer before transfers start time - * @param _controller address that will have controller functionality on rewards protocol - * @param _minSecondsBetweenDays uint256 seconds required to pass between consecutive rewards day - * @param _rewardsStartTimestamp uint256 day 0 timestamp + * @param _controller address that will have controller functionality on rewards protocol */ - function initialize( - address _holder, - address _controller, - uint256 _minSecondsBetweenDays, - uint256 _rewardsStartTimestamp - ) + function initialize(address _holder, address _controller) public initializer { @@ -199,7 +180,8 @@
uint256 totalSupply = 0.6 * 1e9 * (10 ** uint256(decimals)); ERC20Detailed.initialize("Props Token", "PROPS", decimals); - PropsRewards.initializePostRewardsUpgrade1(_controller, _minSecondsBetweenDays, _rewardsStartTimestamp); + PropsRewards.initialize(_controller); + PropsRewards.initializePermitUpgrade("Props Token"); _mint(_holder, totalSupply); } }