UNPKG

kleros-interaction-2

Version:
1,305 lines 54.7 kB
{ "contractName": "RNG", "abi": [ { "constant": false, "inputs": [ { "name": "_block", "type": "uint256" } ], "name": "contribute", "outputs": [], "payable": true, "stateMutability": "payable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_block", "type": "uint256" } ], "name": "requestRN", "outputs": [], "payable": true, "stateMutability": "payable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_block", "type": "uint256" } ], "name": "getRN", "outputs": [ { "name": "RN", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_block", "type": "uint256" } ], "name": "getUncorrelatedRN", "outputs": [ { "name": "RN", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x", "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", "source": "/**\n* @title Random Number Generator Standard\n* @author Clément Lesaege - <clement@lesaege.com>\n*\n*/\n\npragma solidity ^0.4.15;\n\ncontract RNG{\n\n /** @dev Contribute to the reward of a random number.\n * @param _block Block the random number is linked to.\n */\n function contribute(uint _block) public payable;\n\n /** @dev Request a random number.\n * @param _block Block linked to the request.\n */\n function requestRN(uint _block) public payable {\n contribute(_block);\n }\n\n /** @dev Get the random number.\n * @param _block Block the random number is linked to.\n * @return RN Random Number. If the number is not ready or has not been required 0 instead.\n */\n function getRN(uint _block) public returns (uint RN);\n\n /** @dev Get a uncorrelated random number. Act like getRN but give a different number for each sender.\n * This is to prevent users from getting correlated numbers.\n * @param _block Block the random number is linked to.\n * @return RN Random Number. If the number is not ready or has not been required 0 instead.\n */\n function getUncorrelatedRN(uint _block) public returns (uint RN) {\n uint baseRN = getRN(_block);\n if (baseRN == 0)\n return 0;\n else\n return uint(keccak256(msg.sender,baseRN));\n }\n\n}\n", "sourcePath": "/private/tmp/kleros-interaction/contracts/standard/rng/RNG.sol", "ast": { "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/rng/RNG.sol", "exportedSymbols": { "RNG": [ 18445 ] }, "id": 18446, "nodeType": "SourceUnit", "nodes": [ { "id": 18394, "literals": [ "solidity", "^", "0.4", ".15" ], "nodeType": "PragmaDirective", "src": "105:24:55" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": false, "id": 18445, "linearizedBaseContracts": [ 18445 ], "name": "RNG", "nodeType": "ContractDefinition", "nodes": [ { "body": null, "documentation": "@dev Contribute to the reward of a random number.\n @param _block Block the random number is linked to.", "id": 18399, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "contribute", "nodeType": "FunctionDefinition", "parameters": { "id": 18397, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 18396, "name": "_block", "nodeType": "VariableDeclaration", "scope": 18399, "src": "294:11:55", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 18395, "name": "uint", "nodeType": "ElementaryTypeName", "src": "294:4:55", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "293:13:55" }, "payable": true, "returnParameters": { "id": 18398, "nodeType": "ParameterList", "parameters": [], "src": "321:0:55" }, "scope": 18445, "src": "274:48:55", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { "id": 18408, "nodeType": "Block", "src": "470:35:55", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 18405, "name": "_block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 18401, "src": "491:6:55", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 18404, "name": "contribute", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 18399, "src": "480:10:55", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 18406, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "480:18:55", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 18407, "nodeType": "ExpressionStatement", "src": "480:18:55" } ] }, "documentation": "@dev Request a random number.\n @param _block Block linked to the request.", "id": 18409, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "requestRN", "nodeType": "FunctionDefinition", "parameters": { "id": 18402, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 18401, "name": "_block", "nodeType": "VariableDeclaration", "scope": 18409, "src": "442:11:55", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 18400, "name": "uint", "nodeType": "ElementaryTypeName", "src": "442:4:55", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "441:13:55" }, "payable": true, "returnParameters": { "id": 18403, "nodeType": "ParameterList", "parameters": [], "src": "470:0:55" }, "scope": 18445, "src": "423:82:55", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": null, "documentation": "@dev Get the random number.\n @param _block Block the random number is linked to.\n @return RN Random Number. If the number is not ready or has not been required 0 instead.", "id": 18416, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "getRN", "nodeType": "FunctionDefinition", "parameters": { "id": 18412, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 18411, "name": "_block", "nodeType": "VariableDeclaration", "scope": 18416, "src": "724:11:55", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 18410, "name": "uint", "nodeType": "ElementaryTypeName", "src": "724:4:55", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "723:13:55" }, "payable": false, "returnParameters": { "id": 18415, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 18414, "name": "RN", "nodeType": "VariableDeclaration", "scope": 18416, "src": "753:7:55", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 18413, "name": "uint", "nodeType": "ElementaryTypeName", "src": "753:4:55", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "752:9:55" }, "scope": 18445, "src": "709:53:55", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 18443, "nodeType": "Block", "src": "1167:151:55", "statements": [ { "assignments": [ 18424 ], "declarations": [ { "constant": false, "id": 18424, "name": "baseRN", "nodeType": "VariableDeclaration", "scope": 18444, "src": "1177:11:55", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 18423, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1177:4:55", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 18428, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 18426, "name": "_block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 18418, "src": "1197:6:55", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 18425, "name": "getRN", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 18416, "src": "1191:5:55", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) returns (uint256)" } }, "id": 18427, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1191:13:55", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "1177:27:55" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 18431, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 18429, "name": "baseRN", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 18424, "src": "1218:6:55", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 18430, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1228:1:55", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1218:11:55", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 18436, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20639, "src": "1292:3:55", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 18437, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1292:10:55", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 18438, "name": "baseRN", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 18424, "src": "1303:6:55", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 18435, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20633, "src": "1282:9:55", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, "id": 18439, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1282:28:55", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "id": 18434, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1277:4:55", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 18440, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1277:34:55", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 18422, "id": 18441, "nodeType": "Return", "src": "1270:41:55" }, "id": 18442, "nodeType": "IfStatement", "src": "1214:97:55", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "30", "id": 18432, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1246:1:55", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "functionReturnParameters": 18422, "id": 18433, "nodeType": "Return", "src": "1239:8:55" } } ] }, "documentation": "@dev Get a uncorrelated random number. Act like getRN but give a different number for each sender.\n This is to prevent users from getting correlated numbers.\n @param _block Block the random number is linked to.\n @return RN Random Number. If the number is not ready or has not been required 0 instead.", "id": 18444, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "getUncorrelatedRN", "nodeType": "FunctionDefinition", "parameters": { "id": 18419, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 18418, "name": "_block", "nodeType": "VariableDeclaration", "scope": 18444, "src": "1129:11:55", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 18417, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1129:4:55", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1128:13:55" }, "payable": false, "returnParameters": { "id": 18422, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 18421, "name": "RN", "nodeType": "VariableDeclaration", "scope": 18444, "src": "1158:7:55", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 18420, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1158:4:55", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "1157:9:55" }, "scope": 18445, "src": "1102:216:55", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 18446, "src": "131:1190:55" } ], "src": "105:1217:55" }, "legacyAST": { "absolutePath": "/private/tmp/kleros-interaction/contracts/standard/rng/RNG.sol", "exportedSymbols": { "RNG": [ 18445 ] }, "id": 18446, "nodeType": "SourceUnit", "nodes": [ { "id": 18394, "literals": [ "solidity", "^", "0.4", ".15" ], "nodeType": "PragmaDirective", "src": "105:24:55" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": false, "id": 18445, "linearizedBaseContracts": [ 18445 ], "name": "RNG", "nodeType": "ContractDefinition", "nodes": [ { "body": null, "documentation": "@dev Contribute to the reward of a random number.\n @param _block Block the random number is linked to.", "id": 18399, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "contribute", "nodeType": "FunctionDefinition", "parameters": { "id": 18397, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 18396, "name": "_block", "nodeType": "VariableDeclaration", "scope": 18399, "src": "294:11:55", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 18395, "name": "uint", "nodeType": "ElementaryTypeName", "src": "294:4:55", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "293:13:55" }, "payable": true, "returnParameters": { "id": 18398, "nodeType": "ParameterList", "parameters": [], "src": "321:0:55" }, "scope": 18445, "src": "274:48:55", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { "id": 18408, "nodeType": "Block", "src": "470:35:55", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 18405, "name": "_block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 18401, "src": "491:6:55", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 18404, "name": "contribute", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 18399, "src": "480:10:55", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 18406, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "480:18:55", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 18407, "nodeType": "ExpressionStatement", "src": "480:18:55" } ] }, "documentation": "@dev Request a random number.\n @param _block Block linked to the request.", "id": 18409, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "requestRN", "nodeType": "FunctionDefinition", "parameters": { "id": 18402, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 18401, "name": "_block", "nodeType": "VariableDeclaration", "scope": 18409, "src": "442:11:55", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 18400, "name": "uint", "nodeType": "ElementaryTypeName", "src": "442:4:55", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "441:13:55" }, "payable": true, "returnParameters": { "id": 18403, "nodeType": "ParameterList", "parameters": [], "src": "470:0:55" }, "scope": 18445, "src": "423:82:55", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": null, "documentation": "@dev Get the random number.\n @param _block Block the random number is linked to.\n @return RN Random Number. If the number is not ready or has not been required 0 instead.", "id": 18416, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "getRN", "nodeType": "FunctionDefinition", "parameters": { "id": 18412, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 18411, "name": "_block", "nodeType": "VariableDeclaration", "scope": 18416, "src": "724:11:55", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 18410, "name": "uint", "nodeType": "ElementaryTypeName", "src": "724:4:55", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "723:13:55" }, "payable": false, "returnParameters": { "id": 18415, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 18414, "name": "RN", "nodeType": "VariableDeclaration", "scope": 18416, "src": "753:7:55", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 18413, "name": "uint", "nodeType": "ElementaryTypeName", "src": "753:4:55", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "752:9:55" }, "scope": 18445, "src": "709:53:55", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 18443, "nodeType": "Block", "src": "1167:151:55", "statements": [ { "assignments": [ 18424 ], "declarations": [ { "constant": false, "id": 18424, "name": "baseRN", "nodeType": "VariableDeclaration", "scope": 18444, "src": "1177:11:55", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 18423, "name": "uint", "nodeType": "ElementaryTypeName", "src": "1177:4:55", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "id": 18428, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 18426, "name": "_block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 18418, "src": "1197:6:55", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 18425, "name": "getRN", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 18416, "src": "1191:5:55", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) returns (uint256)" } }, "id": 18427, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1191:13:55", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "1177:27:55" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 18431, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 18429, "name": "baseRN", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 18424, "src": "1218:6:55", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 18430, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1228:1:55", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1218:11:55", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 18436, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20639, "src": "1292:3:55", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 18437, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1292:10:55", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 18438, "name": "baseRN", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 18424, "src": "1303:6:55", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 18435, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 20633, "src": "1282:9:55", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, "id": 18439, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1282:28:55", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "id": 18434, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1277:4:55", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint" }, "id": 18440, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1277:34:55", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 18422, "id":