diff options
author | Wei-Ning Huang <w@byzantine-lab.io> | 2019-09-29 11:15:38 +0800 |
---|---|---|
committer | Wei-Ning Huang <w@byzantine-lab.io> | 2019-09-29 11:15:47 +0800 |
commit | 67add53d950448534a42942c6da7e39e3ddc3b83 (patch) | |
tree | 771dea0000e83b36a798d97be403074b064f3fe7 | |
parent | ab7fe370f86812530c0e4bc55f936295250831a9 (diff) | |
download | tangerine-node-staker-67add53d950448534a42942c6da7e39e3ddc3b83.tar tangerine-node-staker-67add53d950448534a42942c6da7e39e3ddc3b83.tar.gz tangerine-node-staker-67add53d950448534a42942c6da7e39e3ddc3b83.tar.bz2 tangerine-node-staker-67add53d950448534a42942c6da7e39e3ddc3b83.tar.lz tangerine-node-staker-67add53d950448534a42942c6da7e39e3ddc3b83.tar.xz tangerine-node-staker-67add53d950448534a42942c6da7e39e3ddc3b83.tar.zst tangerine-node-staker-67add53d950448534a42942c6da7e39e3ddc3b83.zip |
Add build directory
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | build/contracts/FoundationOwnable.json | 1139 | ||||
-rw-r--r-- | build/contracts/Governance.json | 10060 | ||||
-rw-r--r-- | build/contracts/GovernanceMock.json | 10900 | ||||
-rw-r--r-- | build/contracts/Migrations.json | 1396 | ||||
-rw-r--r-- | build/contracts/NodeStaker.json | 10076 | ||||
-rw-r--r-- | build/contracts/NodeStakerMock.json | 1001 | ||||
-rw-r--r-- | build/contracts/Ownable.json | 2841 | ||||
-rw-r--r-- | build/contracts/SafeMath.json | 3288 |
9 files changed, 40701 insertions, 1 deletions
@@ -3,7 +3,6 @@ node_modules .*.swp -build .vscode .env diff --git a/build/contracts/FoundationOwnable.json b/build/contracts/FoundationOwnable.json new file mode 100644 index 0000000..7b92e77 --- /dev/null +++ b/build/contracts/FoundationOwnable.json @@ -0,0 +1,1139 @@ +{ + "contractName": "FoundationOwnable", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "constant": true, + "inputs": [], + "name": "isFoundation", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_address", + "type": "address" + } + ], + "name": "setFoundationAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.11+commit.c082d0b4\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"isFoundation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setFoundationAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/aitjcize/Work/tangerine-network/node-staker/contracts/FoundationOwnable.sol\":\"FoundationOwnable\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/aitjcize/Work/tangerine-network/node-staker/contracts/FoundationOwnable.sol\":{\"keccak256\":\"0xf7a0313191c80af18efbb2c914fa12bf5a96fb5a43c20c21371f67bcaf449bcf\",\"urls\":[\"bzz-raw://6bc9950f402bb1654e0ab1b1357fa857f6bd6e8a5863b9ca7e59d97b51ebd1ab\",\"dweb:/ipfs/QmeWak99q7rfSZzV79n5GhFQZTeZHhkoV4Loxw6sFmiQC4\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b03191633179055610126806100326000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c8063d392a7d5146037578063f41377ca146051575b600080fd5b603d6076565b604080519115158252519081900360200190f35b607460048036036020811015606557600080fd5b50356001600160a01b03166087565b005b6000546001600160a01b0316331490565b608d6076565b60cf576040805162461bcd60e51b815260206004820152600f60248201526e37b7363c903337bab73230ba34b7b760891b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b039290921691909117905556fea265627a7a723158208134ae20283d936eeebbbd7921a8dbe393a5bcf468c6c1a66647f9bf9e9953b264736f6c634300050b0032", + "deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060325760003560e01c8063d392a7d5146037578063f41377ca146051575b600080fd5b603d6076565b604080519115158252519081900360200190f35b607460048036036020811015606557600080fd5b50356001600160a01b03166087565b005b6000546001600160a01b0316331490565b608d6076565b60cf576040805162461bcd60e51b815260206004820152600f60248201526e37b7363c903337bab73230ba34b7b760891b604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b039290921691909117905556fea265627a7a723158208134ae20283d936eeebbbd7921a8dbe393a5bcf468c6c1a66647f9bf9e9953b264736f6c634300050b0032", + "sourceMap": "26:525:0:-;;;87:62;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;114:17:0;:30;;-1:-1:-1;;;;;;114:30:0;134:10;114:30;;;26:525;;;;;;", + "deployedSourceMap": "26:525:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26:525:0;;;;;;;;;;;;;;;;;;;;;;;;335:100;;;:::i;:::-;;;;;;;;;;;;;;;;;;439:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;439:109:0;-1:-1:-1;;;;;439:109:0;;:::i;:::-;;335:100;380:4;413:17;-1:-1:-1;;;;;413:17:0;399:10;:31;;335:100::o;439:109::-;239:14;:12;:14::i;:::-;231:42;;;;;-1:-1:-1;;;231:42:0;;;;;;;;;;;;-1:-1:-1;;;231:42:0;;;;;;;;;;;;;;;515:17;:28;;-1:-1:-1;;;;;;515:28:0;-1:-1:-1;;;;;515:28:0;;;;;;;;;;439:109::o", + "source": "pragma solidity ^0.5.11;\n\ncontract FoundationOwnable {\n address foundationAddress;\n\n constructor() public {\n foundationAddress = msg.sender;\n }\n\n // ---------\n // Modifiers\n // ---------\n\n modifier onlyFoundation() {\n require(isFoundation(), \"only foundation\");\n _;\n }\n\n // ---------\n // Functions\n // ---------\n\n function isFoundation() public view returns (bool) {\n return msg.sender == foundationAddress;\n }\n\n function setFoundationAddress(address _address) public onlyFoundation {\n foundationAddress = _address;\n }\n\n}\n", + "sourcePath": "/Users/aitjcize/Work/tangerine-network/node-staker/contracts/FoundationOwnable.sol", + "ast": { + "absolutePath": "/Users/aitjcize/Work/tangerine-network/node-staker/contracts/FoundationOwnable.sol", + "exportedSymbols": { + "FoundationOwnable": [ + 46 + ] + }, + "id": 47, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.5", + ".11" + ], + "nodeType": "PragmaDirective", + "src": "0:24:0" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 46, + "linearizedBaseContracts": [ + 46 + ], + "name": "FoundationOwnable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 3, + "name": "foundationAddress", + "nodeType": "VariableDeclaration", + "scope": 46, + "src": "57:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 11, + "nodeType": "Block", + "src": "108:41:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6, + "name": "foundationAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3, + "src": "114:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "134:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "134:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "114:30:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 10, + "nodeType": "ExpressionStatement", + "src": "114:30:0" + } + ] + }, + "documentation": null, + "id": 12, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4, + "nodeType": "ParameterList", + "parameters": [], + "src": "98:2:0" + }, + "returnParameters": { + "id": 5, + "nodeType": "ParameterList", + "parameters": [], + "src": "108:0:0" + }, + "scope": 46, + "src": "87:62:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 21, + "nodeType": "Block", + "src": "225:60:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15, + "name": "isFoundation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33, + "src": "239:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 16, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "239:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6f6e6c7920666f756e646174696f6e", + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "255:17:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3cb40e8cabfc5c18b27bcad1db74480fdb43af2904de796b9dfce2eac29c0daa", + "typeString": "literal_string \"only foundation\"" + }, + "value": "only foundation" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3cb40e8cabfc5c18b27bcad1db74480fdb43af2904de796b9dfce2eac29c0daa", + "typeString": "literal_string \"only foundation\"" + } + ], + "id": 14, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1535, + "src": "231:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "231:42:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19, + "nodeType": "ExpressionStatement", + "src": "231:42:0" + }, + { + "id": 20, + "nodeType": "PlaceholderStatement", + "src": "279:1:0" + } + ] + }, + "documentation": null, + "id": 22, + "name": "onlyFoundation", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 13, + "nodeType": "ParameterList", + "parameters": [], + "src": "222:2:0" + }, + "src": "199:86:0", + "visibility": "internal" + }, + { + "body": { + "id": 32, + "nodeType": "Block", + "src": "386:49:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 27, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "399:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "399:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 29, + "name": "foundationAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3, + "src": "413:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "399:31:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 26, + "id": 31, + "nodeType": "Return", + "src": "392:38:0" + } + ] + }, + "documentation": null, + "id": 33, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isFoundation", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 23, + "nodeType": "ParameterList", + "parameters": [], + "src": "356:2:0" + }, + "returnParameters": { + "id": 26, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 25, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 33, + "src": "380:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 24, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "380:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "379:6:0" + }, + "scope": 46, + "src": "335:100:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 44, + "nodeType": "Block", + "src": "509:39:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 40, + "name": "foundationAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3, + "src": "515:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 41, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "535:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "515:28:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 43, + "nodeType": "ExpressionStatement", + "src": "515:28:0" + } + ] + }, + "documentation": null, + "id": 45, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 38, + "modifierName": { + "argumentTypes": null, + "id": 37, + "name": "onlyFoundation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22, + "src": "494:14:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "494:14:0" + } + ], + "name": "setFoundationAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 36, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 35, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "469:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 34, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "469:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "468:18:0" + }, + "returnParameters": { + "id": 39, + "nodeType": "ParameterList", + "parameters": [], + "src": "509:0:0" + }, + "scope": 46, + "src": "439:109:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 47, + "src": "26:525:0" + } + ], + "src": "0:552:0" + }, + "legacyAST": { + "absolutePath": "/Users/aitjcize/Work/tangerine-network/node-staker/contracts/FoundationOwnable.sol", + "exportedSymbols": { + "FoundationOwnable": [ + 46 + ] + }, + "id": 47, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.5", + ".11" + ], + "nodeType": "PragmaDirective", + "src": "0:24:0" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 46, + "linearizedBaseContracts": [ + 46 + ], + "name": "FoundationOwnable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 3, + "name": "foundationAddress", + "nodeType": "VariableDeclaration", + "scope": 46, + "src": "57:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 11, + "nodeType": "Block", + "src": "108:41:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6, + "name": "foundationAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3, + "src": "114:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "134:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "134:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "114:30:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 10, + "nodeType": "ExpressionStatement", + "src": "114:30:0" + } + ] + }, + "documentation": null, + "id": 12, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4, + "nodeType": "ParameterList", + "parameters": [], + "src": "98:2:0" + }, + "returnParameters": { + "id": 5, + "nodeType": "ParameterList", + "parameters": [], + "src": "108:0:0" + }, + "scope": 46, + "src": "87:62:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 21, + "nodeType": "Block", + "src": "225:60:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15, + "name": "isFoundation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33, + "src": "239:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 16, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "239:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6f6e6c7920666f756e646174696f6e", + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "255:17:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3cb40e8cabfc5c18b27bcad1db74480fdb43af2904de796b9dfce2eac29c0daa", + "typeString": "literal_string \"only foundation\"" + }, + "value": "only foundation" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3cb40e8cabfc5c18b27bcad1db74480fdb43af2904de796b9dfce2eac29c0daa", + "typeString": "literal_string \"only foundation\"" + } + ], + "id": 14, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1535, + "src": "231:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "231:42:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 19, + "nodeType": "ExpressionStatement", + "src": "231:42:0" + }, + { + "id": 20, + "nodeType": "PlaceholderStatement", + "src": "279:1:0" + } + ] + }, + "documentation": null, + "id": 22, + "name": "onlyFoundation", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 13, + "nodeType": "ParameterList", + "parameters": [], + "src": "222:2:0" + }, + "src": "199:86:0", + "visibility": "internal" + }, + { + "body": { + "id": 32, + "nodeType": "Block", + "src": "386:49:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 27, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "399:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "399:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 29, + "name": "foundationAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3, + "src": "413:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "399:31:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 26, + "id": 31, + "nodeType": "Return", + "src": "392:38:0" + } + ] + }, + "documentation": null, + "id": 33, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isFoundation", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 23, + "nodeType": "ParameterList", + "parameters": [], + "src": "356:2:0" + }, + "returnParameters": { + "id": 26, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 25, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 33, + "src": "380:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 24, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "380:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "379:6:0" + }, + "scope": 46, + "src": "335:100:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 44, + "nodeType": "Block", + "src": "509:39:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 40, + "name": "foundationAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3, + "src": "515:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 41, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "535:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "515:28:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 43, + "nodeType": "ExpressionStatement", + "src": "515:28:0" + } + ] + }, + "documentation": null, + "id": 45, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 38, + "modifierName": { + "argumentTypes": null, + "id": 37, + "name": "onlyFoundation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22, + "src": "494:14:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "494:14:0" + } + ], + "name": "setFoundationAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 36, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 35, + "name": "_address", + "nodeType": "VariableDeclaration", + "scope": 45, + "src": "469:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 34, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "469:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "468:18:0" + }, + "returnParameters": { + "id": 39, + "nodeType": "ParameterList", + "parameters": [], + "src": "509:0:0" + }, + "scope": 46, + "src": "439:109:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 47, + "src": "26:525:0" + } + ], + "src": "0:552:0" + }, + "compiler": { + "name": "solc", + "version": "0.5.11+commit.c082d0b4.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.11", + "updatedAt": "2019-09-29T03:09:06.435Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +}
\ No newline at end of file diff --git a/build/contracts/Governance.json b/build/contracts/Governance.json new file mode 100644 index 0000000..d41c449 --- /dev/null +++ b/build/contracts/Governance.json @@ -0,0 +1,10060 @@ +{ + "contractName": "Governance", + "abi": [ + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "dkgSuccesses", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "notarySetSize", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "nodes", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "bytes", + "name": "publicKey", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "staked", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fined", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "email", + "type": "string" + }, + { + "internalType": "string", + "name": "location", + "type": "string" + }, + { + "internalType": "string", + "name": "url", + "type": "string" + }, + { + "internalType": "uint256", + "name": "unstaked", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "unstakedAt", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "notaryParamBeta", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "miningVelocity", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "lambdaBA", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "minStake", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "crsRound", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "notaryParamAlpha", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "dkgSuccessesCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "dkgFinalizeds", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "blockGasLimit", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "dkgRound", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalStaked", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "nodesOffsetByAddress", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "crs", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "roundLength", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "nextHalvingSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "dkgComplaints", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "dkgMasterPublicKeyOffset", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "dkgMPKReadys", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "lastHalvedAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "finedRecords", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "lambdaDKG", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "fineValues", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "roundHeight", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "dkgMPKReadysCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "minBlockInterval", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "dkgMasterPublicKeys", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "lastProposedHeight", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "minGasPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "dkgFinalizedsCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "dkgComplaintsProposed", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "nodesOffsetByNodeKeyAddress", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "lockupPeriod", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "dkgResetCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [], + "name": "ConfigurationChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "Round", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "CRS", + "type": "bytes32" + } + ], + "name": "CRSProposed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "NodeAddress", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "NewOwnerAddress", + "type": "address" + } + ], + "name": "NodeOwnershipTransfered", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "NodeAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "PublicKey", + "type": "bytes" + } + ], + "name": "NodePublicKeyReplaced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "NodeAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "Amount", + "type": "uint256" + } + ], + "name": "Staked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "NodeAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "Amount", + "type": "uint256" + } + ], + "name": "Unstaked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "NodeAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "Amount", + "type": "uint256" + } + ], + "name": "Withdrawn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "NodeAddress", + "type": "address" + } + ], + "name": "NodeAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "NodeAddress", + "type": "address" + } + ], + "name": "NodeRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "NodeAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "Type", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "Arg1", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "Arg2", + "type": "bytes" + } + ], + "name": "Reported", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "NodeAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "Amount", + "type": "uint256" + } + ], + "name": "Fined", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "NodeAddress", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "Amount", + "type": "uint256" + } + ], + "name": "FinePaid", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "Round", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "BlockHeight", + "type": "uint256" + } + ], + "name": "DKGReset", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "NewOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "MinStake", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "LockupPeriod", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "MinGasPrice", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "BlockGasLimit", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "LambdaBA", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "LambdaDKG", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "NotaryParamAlpha", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "NotaryParamBeta", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "RoundLength", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "MinBlockInterval", + "type": "uint256" + }, + { + "internalType": "uint256[]", + "name": "FineValues", + "type": "uint256[]" + } + ], + "name": "updateConfiguration", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes", + "name": "Complaint", + "type": "bytes" + } + ], + "name": "addDKGComplaint", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes", + "name": "PublicKey", + "type": "bytes" + } + ], + "name": "addDKGMasterPublicKey", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes", + "name": "MPKReady", + "type": "bytes" + } + ], + "name": "addDKGMPKReady", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes", + "name": "Finalize", + "type": "bytes" + } + ], + "name": "addDKGFinalize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes", + "name": "Success", + "type": "bytes" + } + ], + "name": "addDKGSuccess", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "NodeAddress", + "type": "address" + } + ], + "name": "payFine", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "nodesLength", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "Round", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "SignedCRS", + "type": "bytes" + } + ], + "name": "proposeCRS", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "Type", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "Arg1", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "Arg2", + "type": "bytes" + } + ], + "name": "report", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes", + "name": "NewSignedCRS", + "type": "bytes" + } + ], + "name": "resetDKG", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes", + "name": "PublicKey", + "type": "bytes" + }, + { + "internalType": "string", + "name": "Name", + "type": "string" + }, + { + "internalType": "string", + "name": "Email", + "type": "string" + }, + { + "internalType": "string", + "name": "Location", + "type": "string" + }, + { + "internalType": "string", + "name": "Url", + "type": "string" + } + ], + "name": "register", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes", + "name": "NewPublicKey", + "type": "bytes" + } + ], + "name": "replaceNodePublicKey", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "stake", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "NewOwner", + "type": "address" + } + ], + "name": "transferNodeOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "OldOwner", + "type": "address" + }, + { + "internalType": "address", + "name": "NewOwner", + "type": "address" + } + ], + "name": "transferNodeOwnershipByFoundation", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "Amount", + "type": "uint256" + } + ], + "name": "unstake", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "string", + "name": "Name", + "type": "string" + }, + { + "internalType": "string", + "name": "Email", + "type": "string" + }, + { + "internalType": "string", + "name": "Location", + "type": "string" + }, + { + "internalType": "string", + "name": "Url", + "type": "string" + } + ], + "name": "updateNodeInfo", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "withdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "withdrawable", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.11+commit.c082d0b4\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"dkgSuccesses\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"notarySetSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"MinStake\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"LockupPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"MinGasPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"BlockGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"LambdaBA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"LambdaDKG\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"NotaryParamAlpha\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"NotaryParamBeta\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"RoundLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"MinBlockInterval\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"FineValues\",\"type\":\"uint256[]\"}],\"name\":\"updateConfiguration\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"PublicKey\",\"type\":\"bytes\"}],\"name\":\"addDKGMasterPublicKey\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"nodes\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"staked\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fined\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"email\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"unstaked\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakedAt\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"notaryParamBeta\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"MPKReady\",\"type\":\"bytes\"}],\"name\":\"addDKGMPKReady\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"miningVelocity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"Finalize\",\"type\":\"bytes\"}],\"name\":\"addDKGFinalize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lambdaBA\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"Amount\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"Type\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"Arg1\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"Arg2\",\"type\":\"bytes\"}],\"name\":\"report\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"stake\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"NodeAddress\",\"type\":\"address\"}],\"name\":\"payFine\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"NewPublicKey\",\"type\":\"bytes\"}],\"name\":\"replaceNodePublicKey\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"NewOwner\",\"type\":\"address\"}],\"name\":\"transferNodeOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"crsRound\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"notaryParamAlpha\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"dkgSuccessesCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"Success\",\"type\":\"bytes\"}],\"name\":\"addDKGSuccess\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"withdrawable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"NewSignedCRS\",\"type\":\"bytes\"}],\"name\":\"resetDKG\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"dkgFinalizeds\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"blockGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"dkgRound\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"OldOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"NewOwner\",\"type\":\"address\"}],\"name\":\"transferNodeOwnershipByFoundation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalStaked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nodesOffsetByAddress\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"crs\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"roundLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nextHalvingSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"dkgComplaints\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"dkgMasterPublicKeyOffset\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"dkgMPKReadys\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastHalvedAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"finedRecords\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lambdaDKG\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"Complaint\",\"type\":\"bytes\"}],\"name\":\"addDKGComplaint\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"fineValues\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"roundHeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"dkgMPKReadysCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minBlockInterval\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"Round\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"SignedCRS\",\"type\":\"bytes\"}],\"name\":\"proposeCRS\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"string\",\"name\":\"Name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"Email\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"Location\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"Url\",\"type\":\"string\"}],\"name\":\"updateNodeInfo\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"dkgMasterPublicKeys\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"PublicKey\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"Name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"Email\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"Location\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"Url\",\"type\":\"string\"}],\"name\":\"register\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"lastProposedHeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minGasPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"dkgFinalizedsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"dkgComplaintsProposed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nodesOffsetByNodeKeyAddress\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lockupPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"dkgResetCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"NewOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nodesLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"ConfigurationChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"Round\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"CRS\",\"type\":\"bytes32\"}],\"name\":\"CRSProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"NodeAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"NewOwnerAddress\",\"type\":\"address\"}],\"name\":\"NodeOwnershipTransfered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"NodeAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"PublicKey\",\"type\":\"bytes\"}],\"name\":\"NodePublicKeyReplaced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"NodeAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"Amount\",\"type\":\"uint256\"}],\"name\":\"Staked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"NodeAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"Amount\",\"type\":\"uint256\"}],\"name\":\"Unstaked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"NodeAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"Amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"NodeAddress\",\"type\":\"address\"}],\"name\":\"NodeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"NodeAddress\",\"type\":\"address\"}],\"name\":\"NodeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"NodeAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"Type\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"Arg1\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"Arg2\",\"type\":\"bytes\"}],\"name\":\"Reported\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"NodeAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"Amount\",\"type\":\"uint256\"}],\"name\":\"Fined\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"NodeAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"Amount\",\"type\":\"uint256\"}],\"name\":\"FinePaid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"Round\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"BlockHeight\",\"type\":\"uint256\"}],\"name\":\"DKGReset\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/aitjcize/Work/tangerine-network/node-staker/contracts/Governance.sol\":\"Governance\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/aitjcize/Work/tangerine-network/node-staker/contracts/Governance.sol\":{\"keccak256\":\"0xcfdc3785ac2c5c1937e80ca46b030d083952a66f22732cd80e440cc45675ea62\",\"urls\":[\"bzz-raw://5f33f67e58c7ddc0f100cd2fbe89f2a0a0169bda17742a3d633df62a7921d051\",\"dweb:/ipfs/QmSHtHd9VBagDzc4FaKRZ56pZkZ9Nu1AA7YjwyokhFRU5q\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50611abc806100206000396000f3fe60806040526004361061038c5760003560e01c8063817b1cd2116101dc578063b03e75e411610102578063d96ed505116100a0578063ee947a7c1161006f578063ee947a7c1461144c578063f077165914611461578063f2fde38b1461148b578063f33de6c0146114be5761038c565b8063d96ed505146113c5578063dd2083d0146113da578063e746714d146113ef578063ed3fbdf9146114195761038c565b8063c5ea6ea1116100dc578063c5ea6ea114610e70578063d21abb78146110b0578063d242f4cc146110da578063d767fdc9146113925761038c565b8063b03e75e414610d8e578063b3606b5614610da3578063c448af3414610db85761038c565b806399aadb9a1161017a578063a9601a8d11610149578063a9601a8d14610d25578063ab6a401314610505578063ae1f289d14610d3a578063af58ef0614610d645761038c565b806399aadb9a14610c895780639bc9f48914610cb3578063a0488e5514610ce6578063a1e460eb14610cfb5761038c565b80638b649b94116101b65780638b649b9414610b8f5780638ca5516214610ba45780638d90a15914610bb95780638da5cb5b14610c585761038c565b8063817b1cd214610b325780638503112314610b475780638a59136914610b7a5761038c565b80633a4b66f1116102c15780634cb38c7a1161025f57806370f3ac541161022e57806370f3ac5414610a9a5780637877a79714610acd5780637a8c1c1e14610ae25780637ecfdeca14610af75761038c565b80634cb38c7a14610a705780634ccaa59d146105055780635018830114610a8557806357316157146105055761038c565b80633f007c201161029b5780633f007c20146105055780634264ecf914610a235780634773132514610a465780634c52321414610a5b5761038c565b80633a4b66f1146109e05780633ccfd60b146109e85780633edfa229146109fd5761038c565b806322f8a8891161032e5780632deb3316116103085780632deb33161461084f5780632e17de7814610864578063320c08261461088e578063375b3c0a146109cb5761038c565b806322f8a889146105055780632357e72a1461083a57806329891e74146105055761038c565b806318160ddd1161036a57806318160ddd146104f057806319cf10bc146105055780631c53c280146105b65780631f29f5c8146108255761038c565b8063072bf11a146103915780630b3441dc146103d857806311c7c321146103ff575b600080fd5b34801561039d57600080fd5b506103c4600480360360208110156103b457600080fd5b50356001600160a01b03166114d3565b604080519115158252519081900360200190f35b3480156103e457600080fd5b506103ed6114e8565b60408051918252519081900360200190f35b34801561040b57600080fd5b506104ee600480360361016081101561042357600080fd5b81359160208101359160408201359160608101359160808201359160a08101359160c08201359160e08101359161010082013591610120810135918101906101608101610140820135600160201b81111561047d57600080fd5b82018360208201111561048f57600080fd5b803590602001918460208302840111600160201b831117156104b057600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506114ee945050505050565b005b3480156104fc57600080fd5b506103ed611512565b34801561051157600080fd5b506104ee6004803603602081101561052857600080fd5b810190602081018135600160201b81111561054257600080fd5b82018360208201111561055457600080fd5b803590602001918460018302840111600160201b8311171561057557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611518945050505050565b3480156105c257600080fd5b506105e0600480360360208110156105d957600080fd5b503561151b565b604051808b6001600160a01b03166001600160a01b03168152602001806020018a81526020018981526020018060200180602001806020018060200188815260200187815260200186810386528f818151815260200191508051906020019080838360005b8381101561065d578181015183820152602001610645565b50505050905090810190601f16801561068a5780820380516001836020036101000a031916815260200191505b5086810385528c5181528c516020918201918e019080838360005b838110156106bd5781810151838201526020016106a5565b50505050905090810190601f1680156106ea5780820380516001836020036101000a031916815260200191505b5086810384528b5181528b516020918201918d019080838360005b8381101561071d578181015183820152602001610705565b50505050905090810190601f16801561074a5780820380516001836020036101000a031916815260200191505b5086810383528a5181528a516020918201918c019080838360005b8381101561077d578181015183820152602001610765565b50505050905090810190601f1680156107aa5780820380516001836020036101000a031916815260200191505b5086810382528951815289516020918201918b019080838360005b838110156107dd5781810151838201526020016107c5565b50505050905090810190601f16801561080a5780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b34801561083157600080fd5b506103ed611845565b34801561084657600080fd5b506103ed61184b565b34801561085b57600080fd5b506103ed611851565b34801561087057600080fd5b506104ee6004803603602081101561088757600080fd5b5035611518565b34801561089a57600080fd5b506104ee600480360360608110156108b157600080fd5b81359190810190604081016020820135600160201b8111156108d257600080fd5b8201836020820111156108e457600080fd5b803590602001918460018302840111600160201b8311171561090557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561095757600080fd5b82018360208201111561096957600080fd5b803590602001918460018302840111600160201b8311171561098a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611857945050505050565b3480156109d757600080fd5b506103ed61185c565b6104ee611862565b3480156109f457600080fd5b506104ee611862565b6104ee60048036036020811015610a1357600080fd5b50356001600160a01b0316611518565b348015610a2f57600080fd5b506104ee60048036036020811015610a1357600080fd5b348015610a5257600080fd5b506103ed611864565b348015610a6757600080fd5b506103ed61186a565b348015610a7c57600080fd5b506103ed611870565b348015610a9157600080fd5b506103c4611876565b348015610aa657600080fd5b506103c460048036036020811015610abd57600080fd5b50356001600160a01b031661187b565b348015610ad957600080fd5b506103ed611890565b348015610aee57600080fd5b506103ed611896565b348015610b0357600080fd5b506104ee60048036036040811015610b1a57600080fd5b506001600160a01b038135811691602001351661189c565b348015610b3e57600080fd5b506103ed6118a0565b348015610b5357600080fd5b506103ed60048036036020811015610b6a57600080fd5b50356001600160a01b03166118a6565b348015610b8657600080fd5b506103ed6118b8565b348015610b9b57600080fd5b506103ed6118be565b348015610bb057600080fd5b506103ed6118c4565b348015610bc557600080fd5b50610be360048036036020811015610bdc57600080fd5b50356118ca565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610c1d578181015183820152602001610c05565b50505050905090810190601f168015610c4a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c6457600080fd5b50610c6d611970565b604080516001600160a01b039092168252519081900360200190f35b348015610c9557600080fd5b506103ed60048036036020811015610cac57600080fd5b503561197f565b348015610cbf57600080fd5b506103c460048036036020811015610cd657600080fd5b50356001600160a01b0316611991565b348015610cf257600080fd5b506103ed6119a6565b348015610d0757600080fd5b506103c460048036036020811015610d1e57600080fd5b50356119ac565b348015610d3157600080fd5b506103ed6119c1565b348015610d4657600080fd5b506103ed60048036036020811015610d5d57600080fd5b50356119c7565b348015610d7057600080fd5b506103ed60048036036020811015610d8757600080fd5b50356119e5565b348015610d9a57600080fd5b506103ed6119f2565b348015610daf57600080fd5b506103ed6119f8565b348015610dc457600080fd5b506104ee60048036036040811015610ddb57600080fd5b81359190810190604081016020820135600160201b811115610dfc57600080fd5b820183602082011115610e0e57600080fd5b803590602001918460018302840111600160201b83111715610e2f57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061189c945050505050565b348015610e7c57600080fd5b506104ee60048036036080811015610e9357600080fd5b810190602081018135600160201b811115610ead57600080fd5b820183602082011115610ebf57600080fd5b803590602001918460018302840111600160201b83111715610ee057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610f3257600080fd5b820183602082011115610f4457600080fd5b803590602001918460018302840111600160201b83111715610f6557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610fb757600080fd5b820183602082011115610fc957600080fd5b803590602001918460018302840111600160201b83111715610fea57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561103c57600080fd5b82018360208201111561104e57600080fd5b803590602001918460018302840111600160201b8311171561106f57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506119fe945050505050565b3480156110bc57600080fd5b50610be3600480360360208110156110d357600080fd5b5035611a04565b6104ee600480360360a08110156110f057600080fd5b810190602081018135600160201b81111561110a57600080fd5b82018360208201111561111c57600080fd5b803590602001918460018302840111600160201b8311171561113d57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561118f57600080fd5b8201836020820111156111a157600080fd5b803590602001918460018302840111600160201b831117156111c257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561121457600080fd5b82018360208201111561122657600080fd5b803590602001918460018302840111600160201b8311171561124757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561129957600080fd5b8201836020820111156112ab57600080fd5b803590602001918460018302840111600160201b831117156112cc57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561131e57600080fd5b82018360208201111561133057600080fd5b803590602001918460018302840111600160201b8311171561135157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611a11945050505050565b34801561139e57600080fd5b506103ed600480360360208110156113b557600080fd5b50356001600160a01b0316611a18565b3480156113d157600080fd5b506103ed611a2a565b3480156113e657600080fd5b506103ed611a30565b3480156113fb57600080fd5b506103c46004803603602081101561141257600080fd5b5035611a36565b34801561142557600080fd5b506103ed6004803603602081101561143c57600080fd5b50356001600160a01b0316611a4b565b34801561145857600080fd5b506103ed611a5d565b34801561146d57600080fd5b506103ed6004803603602081101561148457600080fd5b5035611a63565b34801561149757600080fd5b506104ee600480360360208110156114ae57600080fd5b50356001600160a01b0316611a70565b3480156114ca57600080fd5b506103ed611876565b60136020526000908152604090205460ff1681565b601f5481565b6015546001600160a01b0316331461150557600080fd5b5050505050505050505050565b60015481565b50565b6003818154811061152857fe5b6000918252602091829020600a9091020180546001808301805460408051601f60026000199685161561010002969096019093169490940491820187900487028401870190528083526001600160a01b0390931695509293909291908301828280156115d55780601f106115aa576101008083540402835291602001916115d5565b820191906000526020600020905b8154815290600101906020018083116115b857829003601f168201915b505050505090806002015490806003015490806004018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561167f5780601f106116545761010080835404028352916020019161167f565b820191906000526020600020905b81548152906001019060200180831161166257829003601f168201915b5050505060058301805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815294959493509083018282801561170f5780601f106116e45761010080835404028352916020019161170f565b820191906000526020600020905b8154815290600101906020018083116116f257829003601f168201915b5050505060068301805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815294959493509083018282801561179f5780601f106117745761010080835404028352916020019161179f565b820191906000526020600020905b81548152906001019060200180831161178257829003601f168201915b5050505060078301805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815294959493509083018282801561182f5780601f106118045761010080835404028352916020019161182f565b820191906000526020600020905b81548152906001019060200180831161181257829003601f168201915b505050505090806008015490806009015490508a565b60215481565b60185481565b601d5481565b505050565b60165481565b565b60075481565b60205481565b60145481565b600090565b60116020526000908152604090205460ff1681565b601c5481565b60095481565b5050565b60025481565b60046020526000908152604090205481565b60085481565b60225481565b60195481565b600d81815481106118d757fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156119685780601f1061193d57610100808354040283529160200191611968565b820191906000526020600020905b81548152906001019060200180831161194b57829003601f168201915b505050505081565b6015546001600160a01b031681565b600c6020526000908152604090205481565b600f6020526000908152604090205460ff1681565b601a5481565b60256020526000908152604090205460ff1681565b601e5481565b602481815481106119d457fe5b600091825260209091200154905081565b600081815481106119d457fe5b60105481565b60235481565b50505050565b600b81815481106118d757fe5b5050505050565b60066020526000908152604090205481565b601b5481565b60125481565b600e6020526000908152604090205460ff1681565b60056020526000908152604090205481565b60175481565b600a81815481106119d457fe5b6015546001600160a01b0316331461151857600080fdfea265627a7a7231582074565603076f576f6642f987e21dfb51c9448a51fe642cb28bad70cdc624d53064736f6c634300050b0032", + "deployedBytecode": "0x60806040526004361061038c5760003560e01c8063817b1cd2116101dc578063b03e75e411610102578063d96ed505116100a0578063ee947a7c1161006f578063ee947a7c1461144c578063f077165914611461578063f2fde38b1461148b578063f33de6c0146114be5761038c565b8063d96ed505146113c5578063dd2083d0146113da578063e746714d146113ef578063ed3fbdf9146114195761038c565b8063c5ea6ea1116100dc578063c5ea6ea114610e70578063d21abb78146110b0578063d242f4cc146110da578063d767fdc9146113925761038c565b8063b03e75e414610d8e578063b3606b5614610da3578063c448af3414610db85761038c565b806399aadb9a1161017a578063a9601a8d11610149578063a9601a8d14610d25578063ab6a401314610505578063ae1f289d14610d3a578063af58ef0614610d645761038c565b806399aadb9a14610c895780639bc9f48914610cb3578063a0488e5514610ce6578063a1e460eb14610cfb5761038c565b80638b649b94116101b65780638b649b9414610b8f5780638ca5516214610ba45780638d90a15914610bb95780638da5cb5b14610c585761038c565b8063817b1cd214610b325780638503112314610b475780638a59136914610b7a5761038c565b80633a4b66f1116102c15780634cb38c7a1161025f57806370f3ac541161022e57806370f3ac5414610a9a5780637877a79714610acd5780637a8c1c1e14610ae25780637ecfdeca14610af75761038c565b80634cb38c7a14610a705780634ccaa59d146105055780635018830114610a8557806357316157146105055761038c565b80633f007c201161029b5780633f007c20146105055780634264ecf914610a235780634773132514610a465780634c52321414610a5b5761038c565b80633a4b66f1146109e05780633ccfd60b146109e85780633edfa229146109fd5761038c565b806322f8a8891161032e5780632deb3316116103085780632deb33161461084f5780632e17de7814610864578063320c08261461088e578063375b3c0a146109cb5761038c565b806322f8a889146105055780632357e72a1461083a57806329891e74146105055761038c565b806318160ddd1161036a57806318160ddd146104f057806319cf10bc146105055780631c53c280146105b65780631f29f5c8146108255761038c565b8063072bf11a146103915780630b3441dc146103d857806311c7c321146103ff575b600080fd5b34801561039d57600080fd5b506103c4600480360360208110156103b457600080fd5b50356001600160a01b03166114d3565b604080519115158252519081900360200190f35b3480156103e457600080fd5b506103ed6114e8565b60408051918252519081900360200190f35b34801561040b57600080fd5b506104ee600480360361016081101561042357600080fd5b81359160208101359160408201359160608101359160808201359160a08101359160c08201359160e08101359161010082013591610120810135918101906101608101610140820135600160201b81111561047d57600080fd5b82018360208201111561048f57600080fd5b803590602001918460208302840111600160201b831117156104b057600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506114ee945050505050565b005b3480156104fc57600080fd5b506103ed611512565b34801561051157600080fd5b506104ee6004803603602081101561052857600080fd5b810190602081018135600160201b81111561054257600080fd5b82018360208201111561055457600080fd5b803590602001918460018302840111600160201b8311171561057557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611518945050505050565b3480156105c257600080fd5b506105e0600480360360208110156105d957600080fd5b503561151b565b604051808b6001600160a01b03166001600160a01b03168152602001806020018a81526020018981526020018060200180602001806020018060200188815260200187815260200186810386528f818151815260200191508051906020019080838360005b8381101561065d578181015183820152602001610645565b50505050905090810190601f16801561068a5780820380516001836020036101000a031916815260200191505b5086810385528c5181528c516020918201918e019080838360005b838110156106bd5781810151838201526020016106a5565b50505050905090810190601f1680156106ea5780820380516001836020036101000a031916815260200191505b5086810384528b5181528b516020918201918d019080838360005b8381101561071d578181015183820152602001610705565b50505050905090810190601f16801561074a5780820380516001836020036101000a031916815260200191505b5086810383528a5181528a516020918201918c019080838360005b8381101561077d578181015183820152602001610765565b50505050905090810190601f1680156107aa5780820380516001836020036101000a031916815260200191505b5086810382528951815289516020918201918b019080838360005b838110156107dd5781810151838201526020016107c5565b50505050905090810190601f16801561080a5780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b34801561083157600080fd5b506103ed611845565b34801561084657600080fd5b506103ed61184b565b34801561085b57600080fd5b506103ed611851565b34801561087057600080fd5b506104ee6004803603602081101561088757600080fd5b5035611518565b34801561089a57600080fd5b506104ee600480360360608110156108b157600080fd5b81359190810190604081016020820135600160201b8111156108d257600080fd5b8201836020820111156108e457600080fd5b803590602001918460018302840111600160201b8311171561090557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561095757600080fd5b82018360208201111561096957600080fd5b803590602001918460018302840111600160201b8311171561098a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611857945050505050565b3480156109d757600080fd5b506103ed61185c565b6104ee611862565b3480156109f457600080fd5b506104ee611862565b6104ee60048036036020811015610a1357600080fd5b50356001600160a01b0316611518565b348015610a2f57600080fd5b506104ee60048036036020811015610a1357600080fd5b348015610a5257600080fd5b506103ed611864565b348015610a6757600080fd5b506103ed61186a565b348015610a7c57600080fd5b506103ed611870565b348015610a9157600080fd5b506103c4611876565b348015610aa657600080fd5b506103c460048036036020811015610abd57600080fd5b50356001600160a01b031661187b565b348015610ad957600080fd5b506103ed611890565b348015610aee57600080fd5b506103ed611896565b348015610b0357600080fd5b506104ee60048036036040811015610b1a57600080fd5b506001600160a01b038135811691602001351661189c565b348015610b3e57600080fd5b506103ed6118a0565b348015610b5357600080fd5b506103ed60048036036020811015610b6a57600080fd5b50356001600160a01b03166118a6565b348015610b8657600080fd5b506103ed6118b8565b348015610b9b57600080fd5b506103ed6118be565b348015610bb057600080fd5b506103ed6118c4565b348015610bc557600080fd5b50610be360048036036020811015610bdc57600080fd5b50356118ca565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610c1d578181015183820152602001610c05565b50505050905090810190601f168015610c4a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c6457600080fd5b50610c6d611970565b604080516001600160a01b039092168252519081900360200190f35b348015610c9557600080fd5b506103ed60048036036020811015610cac57600080fd5b503561197f565b348015610cbf57600080fd5b506103c460048036036020811015610cd657600080fd5b50356001600160a01b0316611991565b348015610cf257600080fd5b506103ed6119a6565b348015610d0757600080fd5b506103c460048036036020811015610d1e57600080fd5b50356119ac565b348015610d3157600080fd5b506103ed6119c1565b348015610d4657600080fd5b506103ed60048036036020811015610d5d57600080fd5b50356119c7565b348015610d7057600080fd5b506103ed60048036036020811015610d8757600080fd5b50356119e5565b348015610d9a57600080fd5b506103ed6119f2565b348015610daf57600080fd5b506103ed6119f8565b348015610dc457600080fd5b506104ee60048036036040811015610ddb57600080fd5b81359190810190604081016020820135600160201b811115610dfc57600080fd5b820183602082011115610e0e57600080fd5b803590602001918460018302840111600160201b83111715610e2f57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061189c945050505050565b348015610e7c57600080fd5b506104ee60048036036080811015610e9357600080fd5b810190602081018135600160201b811115610ead57600080fd5b820183602082011115610ebf57600080fd5b803590602001918460018302840111600160201b83111715610ee057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610f3257600080fd5b820183602082011115610f4457600080fd5b803590602001918460018302840111600160201b83111715610f6557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610fb757600080fd5b820183602082011115610fc957600080fd5b803590602001918460018302840111600160201b83111715610fea57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561103c57600080fd5b82018360208201111561104e57600080fd5b803590602001918460018302840111600160201b8311171561106f57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506119fe945050505050565b3480156110bc57600080fd5b50610be3600480360360208110156110d357600080fd5b5035611a04565b6104ee600480360360a08110156110f057600080fd5b810190602081018135600160201b81111561110a57600080fd5b82018360208201111561111c57600080fd5b803590602001918460018302840111600160201b8311171561113d57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561118f57600080fd5b8201836020820111156111a157600080fd5b803590602001918460018302840111600160201b831117156111c257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561121457600080fd5b82018360208201111561122657600080fd5b803590602001918460018302840111600160201b8311171561124757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561129957600080fd5b8201836020820111156112ab57600080fd5b803590602001918460018302840111600160201b831117156112cc57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561131e57600080fd5b82018360208201111561133057600080fd5b803590602001918460018302840111600160201b8311171561135157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611a11945050505050565b34801561139e57600080fd5b506103ed600480360360208110156113b557600080fd5b50356001600160a01b0316611a18565b3480156113d157600080fd5b506103ed611a2a565b3480156113e657600080fd5b506103ed611a30565b3480156113fb57600080fd5b506103c46004803603602081101561141257600080fd5b5035611a36565b34801561142557600080fd5b506103ed6004803603602081101561143c57600080fd5b50356001600160a01b0316611a4b565b34801561145857600080fd5b506103ed611a5d565b34801561146d57600080fd5b506103ed6004803603602081101561148457600080fd5b5035611a63565b34801561149757600080fd5b506104ee600480360360208110156114ae57600080fd5b50356001600160a01b0316611a70565b3480156114ca57600080fd5b506103ed611876565b60136020526000908152604090205460ff1681565b601f5481565b6015546001600160a01b0316331461150557600080fd5b5050505050505050505050565b60015481565b50565b6003818154811061152857fe5b6000918252602091829020600a9091020180546001808301805460408051601f60026000199685161561010002969096019093169490940491820187900487028401870190528083526001600160a01b0390931695509293909291908301828280156115d55780601f106115aa576101008083540402835291602001916115d5565b820191906000526020600020905b8154815290600101906020018083116115b857829003601f168201915b505050505090806002015490806003015490806004018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561167f5780601f106116545761010080835404028352916020019161167f565b820191906000526020600020905b81548152906001019060200180831161166257829003601f168201915b5050505060058301805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815294959493509083018282801561170f5780601f106116e45761010080835404028352916020019161170f565b820191906000526020600020905b8154815290600101906020018083116116f257829003601f168201915b5050505060068301805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815294959493509083018282801561179f5780601f106117745761010080835404028352916020019161179f565b820191906000526020600020905b81548152906001019060200180831161178257829003601f168201915b5050505060078301805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815294959493509083018282801561182f5780601f106118045761010080835404028352916020019161182f565b820191906000526020600020905b81548152906001019060200180831161181257829003601f168201915b505050505090806008015490806009015490508a565b60215481565b60185481565b601d5481565b505050565b60165481565b565b60075481565b60205481565b60145481565b600090565b60116020526000908152604090205460ff1681565b601c5481565b60095481565b5050565b60025481565b60046020526000908152604090205481565b60085481565b60225481565b60195481565b600d81815481106118d757fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156119685780601f1061193d57610100808354040283529160200191611968565b820191906000526020600020905b81548152906001019060200180831161194b57829003601f168201915b505050505081565b6015546001600160a01b031681565b600c6020526000908152604090205481565b600f6020526000908152604090205460ff1681565b601a5481565b60256020526000908152604090205460ff1681565b601e5481565b602481815481106119d457fe5b600091825260209091200154905081565b600081815481106119d457fe5b60105481565b60235481565b50505050565b600b81815481106118d757fe5b5050505050565b60066020526000908152604090205481565b601b5481565b60125481565b600e6020526000908152604090205460ff1681565b60056020526000908152604090205481565b60175481565b600a81815481106119d457fe5b6015546001600160a01b0316331461151857600080fdfea265627a7a7231582074565603076f576f6642f987e21dfb51c9448a51fe642cb28bad70cdc624d53064736f6c634300050b0032", + "sourceMap": "26:7074:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26:7074:1;;;;;;;", + "deployedSourceMap": "26:7074:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1916:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1916:44:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1916:44:1;-1:-1:-1;;;;;1916:44:1;;:::i;:::-;;;;;;;;;;;;;;;;;;2712:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2712:28:1;;;:::i;:::-;;;;;;;;;;;;;;;;4454:398;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4454:398:1;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;4454:398:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;4454:398:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4454:398:1;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;4454:398:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4454:398:1;;-1:-1:-1;4454:398:1;;-1:-1:-1;;;;;4454:398:1:i;:::-;;574:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;574:26:1;;;:::i;4995:69::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4995:69:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4995:69:1;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;4995:69:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4995:69:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4995:69:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4995:69:1;;-1:-1:-1;4995:69:1;;-1:-1:-1;;;;;4995:69:1:i;680:19::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;680:19:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;680:19:1;;:::i;:::-;;;;;-1:-1:-1;;;;;680:19:1;-1:-1:-1;;;;;680:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;680:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;680:19:1;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;680:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;680:19:1;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;680:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;680:19:1;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;680:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;680:19:1;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;680:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2902:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2902:30:1;;;:::i;2223:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2223:29:1;;;:::i;2589:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2589:23:1;;;:::i;6701:47::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6701:47:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6701:47:1;;:::i;5702:82::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5702:82:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5702:82:1;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;5702:82:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5702:82:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;5702:82:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;5702:82:1;;;;;;;;-1:-1:-1;5702:82:1;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;5702:82:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5702:82:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;5702:82:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;5702:82:1;;-1:-1:-1;5702:82:1;;-1:-1:-1;;;;;5702:82:1:i;2108:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2108:23:1;;;:::i;6371:39::-;;;:::i;6978:34::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6978:34:1;;;:::i;5381:60::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5381:60:1;-1:-1:-1;;;;;5381:60:1;;:::i;6455:63::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6455:63:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;1092:23:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1092:23:1;;;:::i;2787:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2787:31:1;;;:::i;1996:32::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1996:32:1;;;:::i;7040:58::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7040:58:1;;;:::i;1770:45::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1770:45:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1770:45:1;-1:-1:-1;;;;;1770:45:1;;:::i;2516:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2516:28:1;;;:::i;1182:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1182:23:1;;;:::i;6585:93::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6585:93:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6585:93:1;;;;;;;;;;:::i;630:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;630:26:1;;;:::i;764:54::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;764:54:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;764:54:1;-1:-1:-1;;;;;764:54:1;;:::i;1137:18::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1137:18:1;;;:::i;3000:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3000:26:1;;;:::i;2325:32::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2325:32:1;;;:::i;1474:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1474:28:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1474:28:1;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1474:28:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2061:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2061:20:1;;;:::i;:::-;;;;-1:-1:-1;;;;;2061:20:1;;;;;;;;;;;;;;1383:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1383:59:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1383:59:1;;:::i;1626:44::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1626:44:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1626:44:1;-1:-1:-1;;;;;1626:44:1;;:::i;2393:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2393:31:1;;;:::i;3183:44::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3183:44:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3183:44:1;;:::i;2634:24::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2634:24:1;;;:::i;3123:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3123:27:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3123:27:1;;:::i;517:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;517:28:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;517:28:1;;:::i;1706:32::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1706:32:1;;;:::i;3062:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3062:31:1;;;:::i;5580:73::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5580:73:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5580:73:1;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;5580:73:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5580:73:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;5580:73:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;5580:73:1;;-1:-1:-1;5580:73:1;;-1:-1:-1;;;;;5580:73:1:i;6804:150::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6804:150:1;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;6804:150:1;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;6804:150:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6804:150:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6804:150:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6804:150:1;;;;;;;;-1:-1:-1;6804:150:1;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;6804:150:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6804:150:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6804:150:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6804:150:1;;;;;;;;-1:-1:-1;6804:150:1;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;6804:150:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6804:150:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6804:150:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6804:150:1;;;;;;;;-1:-1:-1;6804:150:1;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;6804:150:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6804:150:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6804:150:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6804:150:1;;-1:-1:-1;6804:150:1;;-1:-1:-1;;;;;6804:150:1:i;1306:34::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1306:34:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1306:34:1;;:::i;6039:192::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;6039:192:1;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;6039:192:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6039:192:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6039:192:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6039:192:1;;;;;;;;-1:-1:-1;6039:192:1;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;6039:192:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6039:192:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6039:192:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6039:192:1;;;;;;;;-1:-1:-1;6039:192:1;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;6039:192:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6039:192:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6039:192:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6039:192:1;;;;;;;;-1:-1:-1;6039:192:1;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;6039:192:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6039:192:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6039:192:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6039:192:1;;;;;;;;-1:-1:-1;6039:192:1;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;6039:192:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6039:192:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6039:192:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6039:192:1;;-1:-1:-1;6039:192:1;;-1:-1:-1;;;;;6039:192:1:i;1012:53::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1012:53:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1012:53:1;-1:-1:-1;;;;;1012:53:1;;:::i;2457:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2457:26:1;;;:::i;1852:33::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1852:33:1;;;:::i;1542:53::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1542:53:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1542:53:1;;:::i;907:61::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;907:61:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;907:61:1;-1:-1:-1;;;;;907:61:1;;:::i;2162:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2162:27:1;;;:::i;1238:30::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1238:30:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1238:30:1;;:::i;4347:69::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4347:69:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4347:69:1;-1:-1:-1;;;;;4347:69:1;;:::i;5478:60::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5478:60:1;;;:::i;1916:44::-;;;;;;;;;;;;;;;:::o;2712:28::-;;;;:::o;4454:398::-;3341:5;;-1:-1:-1;;;;;3341:5:1;3327:10;:19;3319:28;;;;;;4454:398;;;;;;;;;;;:::o;574:26::-;;;;:::o;4995:69::-;;:::o;680:19::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;680:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;680:19:1;;;;-1:-1:-1;680:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;680:19:1;;;;;;;;;;;;;;;;-1:-1:-1;;680:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;680:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;680:19:1;;;;;;;;;;;;;;;;-1:-1:-1;;680:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;680:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;680:19:1;;;;;;;;;;;;;;;;-1:-1:-1;;680:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;680:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2902:30::-;;;;:::o;2223:29::-;;;;:::o;2589:23::-;;;;:::o;5702:82::-;;;;:::o;2108:23::-;;;;:::o;6371:39::-;:::o;1092:23::-;;;;:::o;2787:31::-;;;;:::o;1996:32::-;;;;:::o;7040:58::-;7085:4;7040:58;:::o;1770:45::-;;;;;;;;;;;;;;;:::o;2516:28::-;;;;:::o;1182:23::-;;;;:::o;6585:93::-;;;:::o;630:26::-;;;;:::o;764:54::-;;;;;;;;;;;;;:::o;1137:18::-;;;;:::o;3000:26::-;;;;:::o;2325:32::-;;;;:::o;1474:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1474:28:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1474:28:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2061:20::-;;;-1:-1:-1;;;;;2061:20:1;;:::o;1383:59::-;;;;;;;;;;;;;:::o;1626:44::-;;;;;;;;;;;;;;;:::o;2393:31::-;;;;:::o;3183:44::-;;;;;;;;;;;;;;;:::o;2634:24::-;;;;:::o;3123:27::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3123:27:1;:::o;517:28::-;;;;;;;;;;1706:32;;;;:::o;3062:31::-;;;;:::o;6804:150::-;;;;;:::o;1306:34::-;;;;;;;;;;6039:192;;;;;;:::o;1012:53::-;;;;;;;;;;;;;:::o;2457:26::-;;;;:::o;1852:33::-;;;;:::o;1542:53::-;;;;;;;;;;;;;;;:::o;907:61::-;;;;;;;;;;;;;:::o;2162:27::-;;;;:::o;1238:30::-;;;;;;;;;;4347:69;3341:5;;-1:-1:-1;;;;;3341:5:1;3327:10;:19;3319:28;;;;", + "source": "pragma solidity ^0.5.11;\n\ncontract Governance {\n // Nodes.\n struct Node {\n address owner;\n bytes publicKey;\n uint256 staked;\n uint256 fined;\n string name;\n string email;\n string location;\n string url;\n uint256 unstaked;\n uint256 unstakedAt;\n }\n\n // ReportType.\n enum ReportType {\n FAIL_STOP,\n FAIL_STOP_DKG,\n INVALID_DKG,\n FORK_VOTE,\n FORK_BLOCK\n }\n\n // 0: round to blockHeight mapping.\n uint256[] public roundHeight;\n\n // 1: totalSupply\n uint256 public totalSupply;\n\n // 2: totalStaked.\n uint256 public totalStaked;\n\n // 3: nodes.\n Node[] public nodes;\n\n // 4: stores the array index + 1 of nodes by address.\n mapping(address => int256) public nodesOffsetByAddress;\n\n // 5: stores the array index + 1 of nodes by address represented by node key.\n mapping(address => int256) public nodesOffsetByNodeKeyAddress;\n\n // 6: last proposed blockheight.\n mapping(address => uint256) public lastProposedHeight;\n\n // 7: crsRound.\n uint256 public crsRound;\n\n // 8: crs.\n bytes32 public crs;\n\n // 9: dkgRound.\n uint256 public dkgRound;\n\n // 10: dkgResetCount.\n uint256[] public dkgResetCount;\n\n // 11: dkgMasterPublicKeys\n bytes[] public dkgMasterPublicKeys;\n\n // 12: dkgMasterPublicKeyOffset\n mapping(bytes32 => uint256) public dkgMasterPublicKeyOffset;\n\n // 13: dkgComplaints\n bytes[] public dkgComplaints;\n\n // 14: dkgComplaintsProposed\n mapping(bytes32 => bool) public dkgComplaintsProposed;\n\n // 15: dkgMPKReadys\n mapping(address => bool) public dkgMPKReadys;\n\n // 16: dkgMPKReadysCount\n uint256 public dkgMPKReadysCount;\n\n // 17: dkgFinalizeds\n mapping(address => bool) public dkgFinalizeds;\n\n // 18: dkgFinalizedsCount\n uint256 public dkgFinalizedsCount;\n\n // 19: dkgSuccesses\n mapping(address => bool) public dkgSuccesses;\n\n // 20: dkgSuccessesCount\n uint256 public dkgSuccessesCount;\n\n // 21: owner address.\n address public owner;\n\n // 22: minStake\n uint256 public minStake;\n\n // 23: lockupPeriod\n uint256 public lockupPeriod;\n\n // 24: miningVelocity.\n uint256 public miningVelocity; // stored as miningVelocity * 10^8\n\n // 25: nextHalvingSupply.\n uint256 public nextHalvingSupply;\n\n // 26: lastHalvedAmount.\n uint256 public lastHalvedAmount;\n\n // 27: min gas price.\n uint256 public minGasPrice;\n\n // 28: blockGasLimit.\n uint256 public blockGasLimit;\n\n // Lambda related.\n // 29: BA.\n uint256 public lambdaBA;\n // 30: DKG.\n uint256 public lambdaDKG;\n\n // Set related.\n // 31: notary set size\n uint256 public notarySetSize;\n\n // 32: notary set parameter: alpha.\n uint256 public notaryParamAlpha; // stored as notaryParamAlpha * 10^8\n\n // 33: notary set parameter: beta.\n uint256 public notaryParamBeta; // stored as notaryParamBeta * 10^8\n\n // 34: roundLength.\n uint256 public roundLength;\n\n // 35: minBlockInterval.\n uint256 public minBlockInterval;\n\n // 36: Fine value.\n uint256[] public fineValues;\n\n // 37: Fined records.\n mapping(bytes32 => bool) public finedRecords;\n\n // ----------\n // Modifiers.\n // ----------\n modifier onlyOwner() {\n require(msg.sender == owner);\n _;\n }\n\n // -------\n // Events.\n // -------\n event ConfigurationChanged();\n event CRSProposed(uint256 indexed Round, bytes32 CRS);\n event NodeOwnershipTransfered(address indexed NodeAddress, address indexed NewOwnerAddress);\n event NodePublicKeyReplaced(address indexed NodeAddress, bytes PublicKey);\n event Staked(address indexed NodeAddress, uint256 Amount);\n event Unstaked(address indexed NodeAddress, uint256 Amount);\n event Withdrawn(address indexed NodeAddress, uint256 Amount);\n event NodeAdded(address indexed NodeAddress);\n event NodeRemoved(address indexed NodeAddress);\n event Reported(address indexed NodeAddress, uint256 Type, bytes Arg1, bytes Arg2);\n event Fined(address indexed NodeAddress, uint256 Amount);\n event FinePaid(address indexed NodeAddress, uint256 Amount);\n event DKGReset(uint256 indexed Round, uint256 BlockHeight);\n\n // ---------\n // Protocol.\n // ---------\n\n // transferOwnership(newOwner)\n function transferOwnership(address NewOwner) public onlyOwner {\n }\n\n // UpdateConfiguration(...)\n function updateConfiguration(\n uint256 MinStake,\n uint256 LockupPeriod,\n uint256 MinGasPrice,\n uint256 BlockGasLimit,\n uint256 LambdaBA,\n uint256 LambdaDKG,\n uint256 NotaryParamAlpha,\n uint256 NotaryParamBeta,\n uint256 RoundLength,\n uint256 MinBlockInterval,\n uint256[] memory FineValues)\n public onlyOwner {\n }\n\n // AddDKGComplaint(complaint)\n function addDKGComplaint(bytes memory Complaint) public {\n }\n\n // AddDKGMasterPublicKey(key)\n function addDKGMasterPublicKey(bytes memory PublicKey) public {\n }\n\n // AddDKGMPKReady(ready)\n function addDKGMPKReady(bytes memory MPKReady) public {\n }\n\n // AddDKGFinalize(finalize)\n function addDKGFinalize(bytes memory Finalize) public {\n }\n\n // AddDKGSuccess(success)\n function addDKGSuccess(bytes memory Success) public {\n }\n\n // PayFine(node)\n function payFine(address NodeAddress) public payable {\n }\n\n // Return number of nodes.\n function nodesLength() view public returns (uint256) {\n }\n\n // ProposeCRS(round, signedCRS)\n function proposeCRS(uint256 Round, bytes memory SignedCRS) public {\n }\n\n // Report(enum type, bytes[] payloads)\n function report(uint256 Type, bytes memory Arg1, bytes memory Arg2) public {\n }\n\n // ResetDKG(newSignedCRS)\n function resetDKG(bytes memory NewSignedCRS) public {\n }\n\n\n // ------------------------\n // Node Related operations.\n // ------------------------\n\n // Register(public_key, name, email, location, url)\n function register(bytes memory PublicKey, string memory Name,\n string memory Email, string memory Location,\n string memory Url) public payable {\n }\n\n // ReplaceNodePublicKey(newPublicKey)\n function replaceNodePublicKey(bytes memory NewPublicKey) public {\n }\n\n // Stake()\n function stake() public payable {\n }\n\n // transferNodeOwnership(newOwner)\n function transferNodeOwnership(address NewOwner) public {\n }\n\n // transferNodeOwnershipByFoundation(oldOwner, newOwner)\n function transferNodeOwnershipByFoundation(address OldOwner, address NewOwner) public {\n }\n\n // Unstake()\n function unstake(uint256 Amount) public {\n }\n\n // UpdateNodeInfo(name, email, location, url)\n function updateNodeInfo(string memory Name, string memory Email,\n string memory Location, string memory Url) public {\n }\n\n // Withdraw()\n function withdraw() public {\n }\n\n // Withdrawable()\n function withdrawable() public view returns (bool) {\n }\n}\n", + "sourcePath": "/Users/aitjcize/Work/tangerine-network/node-staker/contracts/Governance.sol", + "ast": { + "absolutePath": "/Users/aitjcize/Work/tangerine-network/node-staker/contracts/Governance.sol", + "exportedSymbols": { + "Governance": [ + 430 + ] + }, + "id": 431, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 48, + "literals": [ + "solidity", + "^", + "0.5", + ".11" + ], + "nodeType": "PragmaDirective", + "src": "0:24:1" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 430, + "linearizedBaseContracts": [ + 430 + ], + "name": "Governance", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Governance.Node", + "id": 69, + "members": [ + { + "constant": false, + "id": 50, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 69, + "src": "88:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 49, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "88:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 52, + "name": "publicKey", + "nodeType": "VariableDeclaration", + "scope": 69, + "src": "111:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 51, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "111:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 54, + "name": "staked", + "nodeType": "VariableDeclaration", + "scope": 69, + "src": "136:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 53, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "136:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 56, + "name": "fined", + "nodeType": "VariableDeclaration", + "scope": 69, + "src": "160:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 55, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 58, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 69, + "src": "183:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 57, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "183:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 60, + "name": "email", + "nodeType": "VariableDeclaration", + "scope": 69, + "src": "204:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 59, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "204:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 62, + "name": "location", + "nodeType": "VariableDeclaration", + "scope": 69, + "src": "226:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 61, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "226:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 64, + "name": "url", + "nodeType": "VariableDeclaration", + "scope": 69, + "src": "251:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 63, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "251:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 66, + "name": "unstaked", + "nodeType": "VariableDeclaration", + "scope": 69, + "src": "271:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 65, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "271:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 68, + "name": "unstakedAt", + "nodeType": "VariableDeclaration", + "scope": 69, + "src": "297:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 67, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Node", + "nodeType": "StructDefinition", + "scope": 430, + "src": "66:256:1", + "visibility": "public" + }, + { + "canonicalName": "Governance.ReportType", + "id": 75, + "members": [ + { + "id": 70, + "name": "FAIL_STOP", + "nodeType": "EnumValue", + "src": "373:9:1" + }, + { + "id": 71, + "name": "FAIL_STOP_DKG", + "nodeType": "EnumValue", + "src": "392:13:1" + }, + { + "id": 72, + "name": "INVALID_DKG", + "nodeType": "EnumValue", + "src": "415:11:1" + }, + { + "id": 73, + "name": "FORK_VOTE", + "nodeType": "EnumValue", + "src": "436:9:1" + }, + { + "id": 74, + "name": "FORK_BLOCK", + "nodeType": "EnumValue", + "src": "455:10:1" + } + ], + "name": "ReportType", + "nodeType": "EnumDefinition", + "src": "347:124:1" + }, + { + "constant": false, + "id": 78, + "name": "roundHeight", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "517:28:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 76, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "517:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 77, + "length": null, + "nodeType": "ArrayTypeName", + "src": "517:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 80, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "574:26:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 79, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "574:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 82, + "name": "totalStaked", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "630:26:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 81, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "630:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 85, + "name": "nodes", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "680:19:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Node_$69_storage_$dyn_storage", + "typeString": "struct Governance.Node[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 83, + "name": "Node", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 69, + "src": "680:4:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$69_storage_ptr", + "typeString": "struct Governance.Node" + } + }, + "id": 84, + "length": null, + "nodeType": "ArrayTypeName", + "src": "680:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Node_$69_storage_$dyn_storage_ptr", + "typeString": "struct Governance.Node[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 89, + "name": "nodesOffsetByAddress", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "764:54:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_int256_$", + "typeString": "mapping(address => int256)" + }, + "typeName": { + "id": 88, + "keyType": { + "id": 86, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "772:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "764:26:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_int256_$", + "typeString": "mapping(address => int256)" + }, + "valueType": { + "id": 87, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "783:6:1", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 93, + "name": "nodesOffsetByNodeKeyAddress", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "907:61:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_int256_$", + "typeString": "mapping(address => int256)" + }, + "typeName": { + "id": 92, + "keyType": { + "id": 90, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "915:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "907:26:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_int256_$", + "typeString": "mapping(address => int256)" + }, + "valueType": { + "id": 91, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "926:6:1", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 97, + "name": "lastProposedHeight", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1012:53:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 96, + "keyType": { + "id": 94, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1020:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1012:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 95, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 99, + "name": "crsRound", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1092:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 98, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1092:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 101, + "name": "crs", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1137:18:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 100, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1137:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 103, + "name": "dkgRound", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1182:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1182:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 106, + "name": "dkgResetCount", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1238:30:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 104, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1238:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 105, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1238:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 109, + "name": "dkgMasterPublicKeys", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1306:34:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 107, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1306:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 108, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1306:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 113, + "name": "dkgMasterPublicKeyOffset", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1383:59:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 112, + "keyType": { + "id": 110, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1391:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "1383:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 111, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1402:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 116, + "name": "dkgComplaints", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1474:28:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 114, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1474:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 115, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1474:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 120, + "name": "dkgComplaintsProposed", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1542:53:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "typeName": { + "id": 119, + "keyType": { + "id": 117, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1550:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "1542:24:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "valueType": { + "id": 118, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1561:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 124, + "name": "dkgMPKReadys", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1626:44:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 123, + "keyType": { + "id": 121, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1634:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1626:24:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 122, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1645:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 126, + "name": "dkgMPKReadysCount", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1706:32:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 125, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1706:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 130, + "name": "dkgFinalizeds", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1770:45:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 129, + "keyType": { + "id": 127, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1778:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1770:24:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 128, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1789:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 132, + "name": "dkgFinalizedsCount", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1852:33:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1852:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 136, + "name": "dkgSuccesses", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1916:44:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 135, + "keyType": { + "id": 133, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1924:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1916:24:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 134, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1935:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 138, + "name": "dkgSuccessesCount", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1996:32:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 137, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 140, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2061:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2061:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 142, + "name": "minStake", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2108:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 141, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2108:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 144, + "name": "lockupPeriod", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2162:27:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 143, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2162:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 146, + "name": "miningVelocity", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2223:29:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2223:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 148, + "name": "nextHalvingSupply", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2325:32:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 147, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2325:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 150, + "name": "lastHalvedAmount", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2393:31:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 149, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2393:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 152, + "name": "minGasPrice", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2457:26:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 151, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2457:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 154, + "name": "blockGasLimit", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2516:28:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 153, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2516:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 156, + "name": "lambdaBA", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2589:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 155, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2589:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 158, + "name": "lambdaDKG", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2634:24:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2634:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 160, + "name": "notarySetSize", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2712:28:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 159, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2712:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 162, + "name": "notaryParamAlpha", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2787:31:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 161, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2787:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 164, + "name": "notaryParamBeta", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2902:30:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 163, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2902:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 166, + "name": "roundLength", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "3000:26:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 165, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3000:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 168, + "name": "minBlockInterval", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "3062:31:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 167, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3062:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 171, + "name": "fineValues", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "3123:27:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 169, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3123:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 170, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3123:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 175, + "name": "finedRecords", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "3183:44:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "typeName": { + "id": 174, + "keyType": { + "id": 172, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3191:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "3183:24:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "valueType": { + "id": 173, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3202:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 185, + "nodeType": "Block", + "src": "3309:56:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 178, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "3327:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3327:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 180, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 140, + "src": "3341:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3327:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 177, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1534, + "src": "3319:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3319:28:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 183, + "nodeType": "ExpressionStatement", + "src": "3319:28:1" + }, + { + "id": 184, + "nodeType": "PlaceholderStatement", + "src": "3357:1:1" + } + ] + }, + "documentation": null, + "id": 186, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 176, + "nodeType": "ParameterList", + "parameters": [], + "src": "3306:2:1" + }, + "src": "3288:77:1", + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 188, + "name": "ConfigurationChanged", + "nodeType": "EventDefinition", + "parameters": { + "id": 187, + "nodeType": "ParameterList", + "parameters": [], + "src": "3442:2:1" + }, + "src": "3416:29:1" + }, + { + "anonymous": false, + "documentation": null, + "id": 194, + "name": "CRSProposed", + "nodeType": "EventDefinition", + "parameters": { + "id": 193, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 190, + "indexed": true, + "name": "Round", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "3468:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 189, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3468:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 192, + "indexed": false, + "name": "CRS", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "3491:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 191, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3491:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3467:36:1" + }, + "src": "3450:54:1" + }, + { + "anonymous": false, + "documentation": null, + "id": 200, + "name": "NodeOwnershipTransfered", + "nodeType": "EventDefinition", + "parameters": { + "id": 199, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 196, + "indexed": true, + "name": "NodeAddress", + "nodeType": "VariableDeclaration", + "scope": 200, + "src": "3539:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 195, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3539:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 198, + "indexed": true, + "name": "NewOwnerAddress", + "nodeType": "VariableDeclaration", + "scope": 200, + "src": "3568:31:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 197, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3568:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3538:62:1" + }, + "src": "3509:92:1" + }, + { + "anonymous": false, + "documentation": null, + "id": 206, + "name": "NodePublicKeyReplaced", + "nodeType": "EventDefinition", + "parameters": { + "id": 205, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 202, + "indexed": true, + "name": "NodeAddress", + "nodeType": "VariableDeclaration", + "scope": 206, + "src": "3634:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 201, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3634:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 204, + "indexed": false, + "name": "PublicKey", + "nodeType": "VariableDeclaration", + "scope": 206, + "src": "3663:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 203, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3663:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3633:46:1" + }, + "src": "3606:74:1" + }, + { + "anonymous": false, + "documentation": null, + "id": 212, + "name": "Staked", + "nodeType": "EventDefinition", + "parameters": { + "id": 211, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 208, + "indexed": true, + "name": "NodeAddress", + "nodeType": "VariableDeclaration", + "scope": 212, + "src": "3698:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3698:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 210, + "indexed": false, + "name": "Amount", + "nodeType": "VariableDeclaration", + "scope": 212, + "src": "3727:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 209, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3727:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3697:45:1" + }, + "src": "3685:58:1" + }, + { + "anonymous": false, + "documentation": null, + "id": 218, + "name": "Unstaked", + "nodeType": "EventDefinition", + "parameters": { + "id": 217, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 214, + "indexed": true, + "name": "NodeAddress", + "nodeType": "VariableDeclaration", + "scope": 218, + "src": "3763:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3763:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 216, + "indexed": false, + "name": "Amount", + "nodeType": "VariableDeclaration", + "scope": 218, + "src": "3792:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 215, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3792:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3762:45:1" + }, + "src": "3748:60:1" + }, + { + "anonymous": false, + "documentation": null, + "id": 224, + "name": "Withdrawn", + "nodeType": "EventDefinition", + "parameters": { + "id": 223, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 220, + "indexed": true, + "name": "NodeAddress", + "nodeType": "VariableDeclaration", + "scope": 224, + "src": "3829:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 219, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3829:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 222, + "indexed": false, + "name": "Amount", + "nodeType": "VariableDeclaration", + "scope": 224, + "src": "3858:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 221, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3858:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3828:45:1" + }, + "src": "3813:61:1" + }, + { + "anonymous": false, + "documentation": null, + "id": 228, + "name": "NodeAdded", + "nodeType": "EventDefinition", + "parameters": { + "id": 227, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 226, + "indexed": true, + "name": "NodeAddress", + "nodeType": "VariableDeclaration", + "scope": 228, + "src": "3895:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 225, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3895:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3894:29:1" + }, + "src": "3879:45:1" + }, + { + "anonymous": false, + "documentation": null, + "id": 232, + "name": "NodeRemoved", + "nodeType": "EventDefinition", + "parameters": { + "id": 231, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 230, + "indexed": true, + "name": "NodeAddress", + "nodeType": "VariableDeclaration", + "scope": 232, + "src": "3947:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 229, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3947:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3946:29:1" + }, + "src": "3929:47:1" + }, + { + "anonymous": false, + "documentation": null, + "id": 242, + "name": "Reported", + "nodeType": "EventDefinition", + "parameters": { + "id": 241, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 234, + "indexed": true, + "name": "NodeAddress", + "nodeType": "VariableDeclaration", + "scope": 242, + "src": "3996:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 233, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3996:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 236, + "indexed": false, + "name": "Type", + "nodeType": "VariableDeclaration", + "scope": 242, + "src": "4025:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 235, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4025:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 238, + "indexed": false, + "name": "Arg1", + "nodeType": "VariableDeclaration", + "scope": 242, + "src": "4039:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 237, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4039:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 240, + "indexed": false, + "name": "Arg2", + "nodeType": "VariableDeclaration", + "scope": 242, + "src": "4051:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 239, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4051:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3995:67:1" + }, + "src": "3981:82:1" + }, + { + "anonymous": false, + "documentation": null, + "id": 248, + "name": "Fined", + "nodeType": "EventDefinition", + "parameters": { + "id": 247, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 244, + "indexed": true, + "name": "NodeAddress", + "nodeType": "VariableDeclaration", + "scope": 248, + "src": "4080:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 243, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4080:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 246, + "indexed": false, + "name": "Amount", + "nodeType": "VariableDeclaration", + "scope": 248, + "src": "4109:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 245, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4109:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4079:45:1" + }, + "src": "4068:57:1" + }, + { + "anonymous": false, + "documentation": null, + "id": 254, + "name": "FinePaid", + "nodeType": "EventDefinition", + "parameters": { + "id": 253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 250, + "indexed": true, + "name": "NodeAddress", + "nodeType": "VariableDeclaration", + "scope": 254, + "src": "4145:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 249, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4145:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 252, + "indexed": false, + "name": "Amount", + "nodeType": "VariableDeclaration", + "scope": 254, + "src": "4174:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4174:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4144:45:1" + }, + "src": "4130:60:1" + }, + { + "anonymous": false, + "documentation": null, + "id": 260, + "name": "DKGReset", + "nodeType": "EventDefinition", + "parameters": { + "id": 259, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 256, + "indexed": true, + "name": "Round", + "nodeType": "VariableDeclaration", + "scope": 260, + "src": "4210:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 255, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4210:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 258, + "indexed": false, + "name": "BlockHeight", + "nodeType": "VariableDeclaration", + "scope": 260, + "src": "4233:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4233:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4209:44:1" + }, + "src": "4195:59:1" + }, + { + "body": { + "id": 267, + "nodeType": "Block", + "src": "4409:7:1", + "statements": [] + }, + "documentation": null, + "id": 268, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 265, + "modifierName": { + "argumentTypes": null, + "id": 264, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 186, + "src": "4399:9:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4399:9:1" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 263, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 262, + "name": "NewOwner", + "nodeType": "VariableDeclaration", + "scope": 268, + "src": "4374:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 261, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4374:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4373:18:1" + }, + "returnParameters": { + "id": 266, + "nodeType": "ParameterList", + "parameters": [], + "src": "4409:0:1" + }, + "scope": 430, + "src": "4347:69:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 296, + "nodeType": "Block", + "src": "4845:7:1", + "statements": [] + }, + "documentation": null, + "id": 297, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 294, + "modifierName": { + "argumentTypes": null, + "id": 293, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 186, + "src": "4835:9:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4835:9:1" + } + ], + "name": "updateConfiguration", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 270, + "name": "MinStake", + "nodeType": "VariableDeclaration", + "scope": 297, + "src": "4492:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4492:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 272, + "name": "LockupPeriod", + "nodeType": "VariableDeclaration", + "scope": 297, + "src": "4518:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 271, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4518:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 274, + "name": "MinGasPrice", + "nodeType": "VariableDeclaration", + "scope": 297, + "src": "4548:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 273, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4548:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 276, + "name": "BlockGasLimit", + "nodeType": "VariableDeclaration", + "scope": 297, + "src": "4577:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4577:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 278, + "name": "LambdaBA", + "nodeType": "VariableDeclaration", + "scope": 297, + "src": "4608:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 277, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4608:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 280, + "name": "LambdaDKG", + "nodeType": "VariableDeclaration", + "scope": 297, + "src": "4634:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 279, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4634:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 282, + "name": "NotaryParamAlpha", + "nodeType": "VariableDeclaration", + "scope": 297, + "src": "4661:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 281, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4661:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 284, + "name": "NotaryParamBeta", + "nodeType": "VariableDeclaration", + "scope": 297, + "src": "4695:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 283, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4695:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 286, + "name": "RoundLength", + "nodeType": "VariableDeclaration", + "scope": 297, + "src": "4728:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 285, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4728:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 288, + "name": "MinBlockInterval", + "nodeType": "VariableDeclaration", + "scope": 297, + "src": "4757:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 287, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4757:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 291, + "name": "FineValues", + "nodeType": "VariableDeclaration", + "scope": 297, + "src": "4791:27:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 289, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4791:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 290, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4791:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4482:337:1" + }, + "returnParameters": { + "id": 295, + "nodeType": "ParameterList", + "parameters": [], + "src": "4845:0:1" + }, + "scope": 430, + "src": "4454:398:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 302, + "nodeType": "Block", + "src": "4948:7:1", + "statements": [] + }, + "documentation": null, + "id": 303, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addDKGComplaint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 300, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 299, + "name": "Complaint", + "nodeType": "VariableDeclaration", + "scope": 303, + "src": "4917:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 298, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4917:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4916:24:1" + }, + "returnParameters": { + "id": 301, + "nodeType": "ParameterList", + "parameters": [], + "src": "4948:0:1" + }, + "scope": 430, + "src": "4892:63:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 308, + "nodeType": "Block", + "src": "5057:7:1", + "statements": [] + }, + "documentation": null, + "id": 309, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addDKGMasterPublicKey", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 306, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 305, + "name": "PublicKey", + "nodeType": "VariableDeclaration", + "scope": 309, + "src": "5026:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 304, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5026:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5025:24:1" + }, + "returnParameters": { + "id": 307, + "nodeType": "ParameterList", + "parameters": [], + "src": "5057:0:1" + }, + "scope": 430, + "src": "4995:69:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 314, + "nodeType": "Block", + "src": "5153:7:1", + "statements": [] + }, + "documentation": null, + "id": 315, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addDKGMPKReady", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 311, + "name": "MPKReady", + "nodeType": "VariableDeclaration", + "scope": 315, + "src": "5123:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 310, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5123:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5122:23:1" + }, + "returnParameters": { + "id": 313, + "nodeType": "ParameterList", + "parameters": [], + "src": "5153:0:1" + }, + "scope": 430, + "src": "5099:61:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 320, + "nodeType": "Block", + "src": "5252:7:1", + "statements": [] + }, + "documentation": null, + "id": 321, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addDKGFinalize", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 318, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 317, + "name": "Finalize", + "nodeType": "VariableDeclaration", + "scope": 321, + "src": "5222:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 316, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5222:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5221:23:1" + }, + "returnParameters": { + "id": 319, + "nodeType": "ParameterList", + "parameters": [], + "src": "5252:0:1" + }, + "scope": 430, + "src": "5198:61:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 326, + "nodeType": "Block", + "src": "5347:7:1", + "statements": [] + }, + "documentation": null, + "id": 327, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addDKGSuccess", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 324, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 323, + "name": "Success", + "nodeType": "VariableDeclaration", + "scope": 327, + "src": "5318:20:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 322, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5318:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5317:22:1" + }, + "returnParameters": { + "id": 325, + "nodeType": "ParameterList", + "parameters": [], + "src": "5347:0:1" + }, + "scope": 430, + "src": "5295:59:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 332, + "nodeType": "Block", + "src": "5434:7:1", + "statements": [] + }, + "documentation": null, + "id": 333, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "payFine", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 329, + "name": "NodeAddress", + "nodeType": "VariableDeclaration", + "scope": 333, + "src": "5398:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 328, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5398:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5397:21:1" + }, + "returnParameters": { + "id": 331, + "nodeType": "ParameterList", + "parameters": [], + "src": "5434:0:1" + }, + "scope": 430, + "src": "5381:60:1", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 338, + "nodeType": "Block", + "src": "5531:7:1", + "statements": [] + }, + "documentation": null, + "id": 339, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "nodesLength", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 334, + "nodeType": "ParameterList", + "parameters": [], + "src": "5498:2:1" + }, + "returnParameters": { + "id": 337, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 336, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 339, + "src": "5522:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 335, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5522:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5521:9:1" + }, + "scope": 430, + "src": "5478:60:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 346, + "nodeType": "Block", + "src": "5646:7:1", + "statements": [] + }, + "documentation": null, + "id": 347, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "proposeCRS", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 344, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 341, + "name": "Round", + "nodeType": "VariableDeclaration", + "scope": 347, + "src": "5600:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 340, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5600:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 343, + "name": "SignedCRS", + "nodeType": "VariableDeclaration", + "scope": 347, + "src": "5615:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 342, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5615:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5599:39:1" + }, + "returnParameters": { + "id": 345, + "nodeType": "ParameterList", + "parameters": [], + "src": "5646:0:1" + }, + "scope": 430, + "src": "5580:73:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 356, + "nodeType": "Block", + "src": "5777:7:1", + "statements": [] + }, + "documentation": null, + "id": 357, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "report", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 354, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 349, + "name": "Type", + "nodeType": "VariableDeclaration", + "scope": 357, + "src": "5718:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 348, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5718:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 351, + "name": "Arg1", + "nodeType": "VariableDeclaration", + "scope": 357, + "src": "5732:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 350, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5732:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 353, + "name": "Arg2", + "nodeType": "VariableDeclaration", + "scope": 357, + "src": "5751:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 352, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5751:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5717:52:1" + }, + "returnParameters": { + "id": 355, + "nodeType": "ParameterList", + "parameters": [], + "src": "5777:0:1" + }, + "scope": 430, + "src": "5702:82:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 362, + "nodeType": "Block", + "src": "5872:7:1", + "statements": [] + }, + "documentation": null, + "id": 363, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "resetDKG", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 360, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 359, + "name": "NewSignedCRS", + "nodeType": "VariableDeclaration", + "scope": 363, + "src": "5838:25:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 358, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5838:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5837:27:1" + }, + "returnParameters": { + "id": 361, + "nodeType": "ParameterList", + "parameters": [], + "src": "5872:0:1" + }, + "scope": 430, + "src": "5820:59:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 376, + "nodeType": "Block", + "src": "6224:7:1", + "statements": [] + }, + "documentation": null, + "id": 377, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "register", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 374, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 365, + "name": "PublicKey", + "nodeType": "VariableDeclaration", + "scope": 377, + "src": "6057:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 364, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6057:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 367, + "name": "Name", + "nodeType": "VariableDeclaration", + "scope": 377, + "src": "6081:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 366, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6081:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 369, + "name": "Email", + "nodeType": "VariableDeclaration", + "scope": 377, + "src": "6123:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 368, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6123:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 371, + "name": "Location", + "nodeType": "VariableDeclaration", + "scope": 377, + "src": "6144:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 370, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6144:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 373, + "name": "Url", + "nodeType": "VariableDeclaration", + "scope": 377, + "src": "6190:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 372, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6190:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6056:152:1" + }, + "returnParameters": { + "id": 375, + "nodeType": "ParameterList", + "parameters": [], + "src": "6224:0:1" + }, + "scope": 430, + "src": "6039:192:1", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 382, + "nodeType": "Block", + "src": "6343:7:1", + "statements": [] + }, + "documentation": null, + "id": 383, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "replaceNodePublicKey", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 380, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 379, + "name": "NewPublicKey", + "nodeType": "VariableDeclaration", + "scope": 383, + "src": "6309:25:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 378, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6309:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6308:27:1" + }, + "returnParameters": { + "id": 381, + "nodeType": "ParameterList", + "parameters": [], + "src": "6343:0:1" + }, + "scope": 430, + "src": "6279:71:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 386, + "nodeType": "Block", + "src": "6403:7:1", + "statements": [] + }, + "documentation": null, + "id": 387, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "stake", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 384, + "nodeType": "ParameterList", + "parameters": [], + "src": "6385:2:1" + }, + "returnParameters": { + "id": 385, + "nodeType": "ParameterList", + "parameters": [], + "src": "6403:0:1" + }, + "scope": 430, + "src": "6371:39:1", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 392, + "nodeType": "Block", + "src": "6511:7:1", + "statements": [] + }, + "documentation": null, + "id": 393, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferNodeOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 389, + "name": "NewOwner", + "nodeType": "VariableDeclaration", + "scope": 393, + "src": "6486:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 388, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6486:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6485:18:1" + }, + "returnParameters": { + "id": 391, + "nodeType": "ParameterList", + "parameters": [], + "src": "6511:0:1" + }, + "scope": 430, + "src": "6455:63:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 400, + "nodeType": "Block", + "src": "6671:7:1", + "statements": [] + }, + "documentation": null, + "id": 401, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferNodeOwnershipByFoundation", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 398, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 395, + "name": "OldOwner", + "nodeType": "VariableDeclaration", + "scope": 401, + "src": "6628:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 394, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6628:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 397, + "name": "NewOwner", + "nodeType": "VariableDeclaration", + "scope": 401, + "src": "6646:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 396, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6646:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6627:36:1" + }, + "returnParameters": { + "id": 399, + "nodeType": "ParameterList", + "parameters": [], + "src": "6671:0:1" + }, + "scope": 430, + "src": "6585:93:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 406, + "nodeType": "Block", + "src": "6741:7:1", + "statements": [] + }, + "documentation": null, + "id": 407, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unstake", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 404, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 403, + "name": "Amount", + "nodeType": "VariableDeclaration", + "scope": 407, + "src": "6718:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 402, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6718:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6717:16:1" + }, + "returnParameters": { + "id": 405, + "nodeType": "ParameterList", + "parameters": [], + "src": "6741:0:1" + }, + "scope": 430, + "src": "6701:47:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 418, + "nodeType": "Block", + "src": "6947:7:1", + "statements": [] + }, + "documentation": null, + "id": 419, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "updateNodeInfo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 416, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 409, + "name": "Name", + "nodeType": "VariableDeclaration", + "scope": 419, + "src": "6828:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 408, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6828:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 411, + "name": "Email", + "nodeType": "VariableDeclaration", + "scope": 419, + "src": "6848:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 410, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6848:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 413, + "name": "Location", + "nodeType": "VariableDeclaration", + "scope": 419, + "src": "6897:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 412, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6897:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 415, + "name": "Url", + "nodeType": "VariableDeclaration", + "scope": 419, + "src": "6921:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 414, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6921:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6827:112:1" + }, + "returnParameters": { + "id": 417, + "nodeType": "ParameterList", + "parameters": [], + "src": "6947:0:1" + }, + "scope": 430, + "src": "6804:150:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 422, + "nodeType": "Block", + "src": "7005:7:1", + "statements": [] + }, + "documentation": null, + "id": 423, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 420, + "nodeType": "ParameterList", + "parameters": [], + "src": "6995:2:1" + }, + "returnParameters": { + "id": 421, + "nodeType": "ParameterList", + "parameters": [], + "src": "7005:0:1" + }, + "scope": 430, + "src": "6978:34:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 428, + "nodeType": "Block", + "src": "7091:7:1", + "statements": [] + }, + "documentation": null, + "id": 429, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawable", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 424, + "nodeType": "ParameterList", + "parameters": [], + "src": "7061:2:1" + }, + "returnParameters": { + "id": 427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 426, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 429, + "src": "7085:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 425, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7085:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7084:6:1" + }, + "scope": 430, + "src": "7040:58:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 431, + "src": "26:7074:1" + } + ], + "src": "0:7101:1" + }, + "legacyAST": { + "absolutePath": "/Users/aitjcize/Work/tangerine-network/node-staker/contracts/Governance.sol", + "exportedSymbols": { + "Governance": [ + 430 + ] + }, + "id": 431, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 48, + "literals": [ + "solidity", + "^", + "0.5", + ".11" + ], + "nodeType": "PragmaDirective", + "src": "0:24:1" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 430, + "linearizedBaseContracts": [ + 430 + ], + "name": "Governance", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Governance.Node", + "id": 69, + "members": [ + { + "constant": false, + "id": 50, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 69, + "src": "88:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 49, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "88:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 52, + "name": "publicKey", + "nodeType": "VariableDeclaration", + "scope": 69, + "src": "111:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 51, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "111:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 54, + "name": "staked", + "nodeType": "VariableDeclaration", + "scope": 69, + "src": "136:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 53, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "136:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 56, + "name": "fined", + "nodeType": "VariableDeclaration", + "scope": 69, + "src": "160:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 55, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 58, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 69, + "src": "183:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 57, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "183:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 60, + "name": "email", + "nodeType": "VariableDeclaration", + "scope": 69, + "src": "204:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 59, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "204:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 62, + "name": "location", + "nodeType": "VariableDeclaration", + "scope": 69, + "src": "226:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 61, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "226:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 64, + "name": "url", + "nodeType": "VariableDeclaration", + "scope": 69, + "src": "251:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 63, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "251:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 66, + "name": "unstaked", + "nodeType": "VariableDeclaration", + "scope": 69, + "src": "271:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 65, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "271:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 68, + "name": "unstakedAt", + "nodeType": "VariableDeclaration", + "scope": 69, + "src": "297:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 67, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Node", + "nodeType": "StructDefinition", + "scope": 430, + "src": "66:256:1", + "visibility": "public" + }, + { + "canonicalName": "Governance.ReportType", + "id": 75, + "members": [ + { + "id": 70, + "name": "FAIL_STOP", + "nodeType": "EnumValue", + "src": "373:9:1" + }, + { + "id": 71, + "name": "FAIL_STOP_DKG", + "nodeType": "EnumValue", + "src": "392:13:1" + }, + { + "id": 72, + "name": "INVALID_DKG", + "nodeType": "EnumValue", + "src": "415:11:1" + }, + { + "id": 73, + "name": "FORK_VOTE", + "nodeType": "EnumValue", + "src": "436:9:1" + }, + { + "id": 74, + "name": "FORK_BLOCK", + "nodeType": "EnumValue", + "src": "455:10:1" + } + ], + "name": "ReportType", + "nodeType": "EnumDefinition", + "src": "347:124:1" + }, + { + "constant": false, + "id": 78, + "name": "roundHeight", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "517:28:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 76, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "517:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 77, + "length": null, + "nodeType": "ArrayTypeName", + "src": "517:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 80, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "574:26:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 79, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "574:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 82, + "name": "totalStaked", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "630:26:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 81, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "630:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 85, + "name": "nodes", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "680:19:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Node_$69_storage_$dyn_storage", + "typeString": "struct Governance.Node[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 83, + "name": "Node", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 69, + "src": "680:4:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$69_storage_ptr", + "typeString": "struct Governance.Node" + } + }, + "id": 84, + "length": null, + "nodeType": "ArrayTypeName", + "src": "680:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Node_$69_storage_$dyn_storage_ptr", + "typeString": "struct Governance.Node[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 89, + "name": "nodesOffsetByAddress", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "764:54:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_int256_$", + "typeString": "mapping(address => int256)" + }, + "typeName": { + "id": 88, + "keyType": { + "id": 86, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "772:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "764:26:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_int256_$", + "typeString": "mapping(address => int256)" + }, + "valueType": { + "id": 87, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "783:6:1", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 93, + "name": "nodesOffsetByNodeKeyAddress", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "907:61:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_int256_$", + "typeString": "mapping(address => int256)" + }, + "typeName": { + "id": 92, + "keyType": { + "id": 90, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "915:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "907:26:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_int256_$", + "typeString": "mapping(address => int256)" + }, + "valueType": { + "id": 91, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "926:6:1", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 97, + "name": "lastProposedHeight", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1012:53:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 96, + "keyType": { + "id": 94, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1020:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1012:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 95, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 99, + "name": "crsRound", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1092:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 98, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1092:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 101, + "name": "crs", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1137:18:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 100, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1137:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 103, + "name": "dkgRound", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1182:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1182:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 106, + "name": "dkgResetCount", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1238:30:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 104, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1238:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 105, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1238:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 109, + "name": "dkgMasterPublicKeys", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1306:34:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 107, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1306:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 108, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1306:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 113, + "name": "dkgMasterPublicKeyOffset", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1383:59:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 112, + "keyType": { + "id": 110, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1391:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "1383:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 111, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1402:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 116, + "name": "dkgComplaints", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1474:28:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 114, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1474:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 115, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1474:7:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 120, + "name": "dkgComplaintsProposed", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1542:53:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "typeName": { + "id": 119, + "keyType": { + "id": 117, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1550:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "1542:24:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "valueType": { + "id": 118, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1561:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 124, + "name": "dkgMPKReadys", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1626:44:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 123, + "keyType": { + "id": 121, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1634:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1626:24:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 122, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1645:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 126, + "name": "dkgMPKReadysCount", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1706:32:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 125, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1706:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 130, + "name": "dkgFinalizeds", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1770:45:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 129, + "keyType": { + "id": 127, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1778:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1770:24:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 128, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1789:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 132, + "name": "dkgFinalizedsCount", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1852:33:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1852:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 136, + "name": "dkgSuccesses", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1916:44:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 135, + "keyType": { + "id": 133, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1924:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1916:24:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 134, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1935:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 138, + "name": "dkgSuccessesCount", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "1996:32:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 137, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 140, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2061:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2061:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 142, + "name": "minStake", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2108:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 141, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2108:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 144, + "name": "lockupPeriod", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2162:27:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 143, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2162:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 146, + "name": "miningVelocity", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2223:29:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2223:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 148, + "name": "nextHalvingSupply", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2325:32:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 147, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2325:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 150, + "name": "lastHalvedAmount", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2393:31:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 149, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2393:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 152, + "name": "minGasPrice", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2457:26:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 151, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2457:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 154, + "name": "blockGasLimit", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2516:28:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 153, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2516:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 156, + "name": "lambdaBA", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2589:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 155, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2589:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 158, + "name": "lambdaDKG", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2634:24:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2634:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 160, + "name": "notarySetSize", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2712:28:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 159, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2712:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 162, + "name": "notaryParamAlpha", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2787:31:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 161, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2787:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 164, + "name": "notaryParamBeta", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "2902:30:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 163, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2902:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 166, + "name": "roundLength", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "3000:26:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 165, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3000:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 168, + "name": "minBlockInterval", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "3062:31:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 167, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3062:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 171, + "name": "fineValues", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "3123:27:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 169, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3123:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 170, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3123:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 175, + "name": "finedRecords", + "nodeType": "VariableDeclaration", + "scope": 430, + "src": "3183:44:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "typeName": { + "id": 174, + "keyType": { + "id": 172, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3191:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "3183:24:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "valueType": { + "id": 173, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3202:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 185, + "nodeType": "Block", + "src": "3309:56:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 178, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "3327:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3327:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 180, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 140, + "src": "3341:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3327:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 177, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1534, + "src": "3319:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3319:28:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 183, + "nodeType": "ExpressionStatement", + "src": "3319:28:1" + }, + { + "id": 184, + "nodeType": "PlaceholderStatement", + "src": "3357:1:1" + } + ] + }, + "documentation": null, + "id": 186, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 176, + "nodeType": "ParameterList", + "parameters": [], + "src": "3306:2:1" + }, + "src": "3288:77:1", + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 188, + "name": "ConfigurationChanged", + "nodeType": "EventDefinition", + "parameters": { + "id": 187, + "nodeType": "ParameterList", + "parameters": [], + "src": "3442:2:1" + }, + "src": "3416:29:1" + }, + { + "anonymous": false, + "documentation": null, + "id": 194, + "name": "CRSProposed", + "nodeType": "EventDefinition", + "parameters": { + "id": 193, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 190, + "indexed": true, + "name": "Round", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "3468:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 189, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3468:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 192, + "indexed": false, + "name": "CRS", + "nodeType": "VariableDeclaration", + "scope": 194, + "src": "3491:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 191, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3491:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3467:36:1" + }, + "src": "3450:54:1" + }, + { + "anonymous": false, + "documentation": null, + "id": 200, + "name": "NodeOwnershipTransfered", + "nodeType": "EventDefinition", + "parameters": { + "id": 199, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 196, + "indexed": true, + "name": "NodeAddress", + "nodeType": "VariableDeclaration", + "scope": 200, + "src": "3539:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 195, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3539:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 198, + "indexed": true, + "name": "NewOwnerAddress", + "nodeType": "VariableDeclaration", + "scope": 200, + "src": "3568:31:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 197, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3568:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3538:62:1" + }, + "src": "3509:92:1" + }, + { + "anonymous": false, + "documentation": null, + "id": 206, + "name": "NodePublicKeyReplaced", + "nodeType": "EventDefinition", + "parameters": { + "id": 205, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 202, + "indexed": true, + "name": "NodeAddress", + "nodeType": "VariableDeclaration", + "scope": 206, + "src": "3634:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 201, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3634:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 204, + "indexed": false, + "name": "PublicKey", + "nodeType": "VariableDeclaration", + "scope": 206, + "src": "3663:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 203, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3663:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3633:46:1" + }, + "src": "3606:74:1" + }, + { + "anonymous": false, + "documentation": null, + "id": 212, + "name": "Staked", + "nodeType": "EventDefinition", + "parameters": { + "id": 211, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 208, + "indexed": true, + "name": "NodeAddress", + "nodeType": "VariableDeclaration", + "scope": 212, + "src": "3698:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3698:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 210, + "indexed": false, + "name": "Amount", + "nodeType": "VariableDeclaration", + "scope": 212, + "src": "3727:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 209, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3727:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3697:45:1" + }, + "src": "3685:58:1" + }, + { + "anonymous": false, + "documentation": null, + "id": 218, + "name": "Unstaked", + "nodeType": "EventDefinition", + "parameters": { + "id": 217, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 214, + "indexed": true, + "name": "NodeAddress", + "nodeType": "VariableDeclaration", + "scope": 218, + "src": "3763:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3763:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 216, + "indexed": false, + "name": "Amount", + "nodeType": "VariableDeclaration", + "scope": 218, + "src": "3792:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 215, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3792:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3762:45:1" + }, + "src": "3748:60:1" + }, + { + "anonymous": false, + "documentation": null, + "id": 224, + "name": "Withdrawn", + "nodeType": "EventDefinition", + "parameters": { + "id": 223, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 220, + "indexed": true, + "name": "NodeAddress", + "nodeType": "VariableDeclaration", + "scope": 224, + "src": "3829:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 219, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3829:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 222, + "indexed": false, + "name": "Amount", + "nodeType": "VariableDeclaration", + "scope": 224, + "src": "3858:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 221, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3858:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3828:45:1" + }, + "src": "3813:61:1" + }, + { + "anonymous": false, + "documentation": null, + "id": 228, + "name": "NodeAdded", + "nodeType": "EventDefinition", + "parameters": { + "id": 227, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 226, + "indexed": true, + "name": "NodeAddress", + "nodeType": "VariableDeclaration", + "scope": 228, + "src": "3895:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 225, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3895:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3894:29:1" + }, + "src": "3879:45:1" + }, + { + "anonymous": false, + "documentation": null, + "id": 232, + "name": "NodeRemoved", + "nodeType": "EventDefinition", + "parameters": { + "id": 231, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 230, + "indexed": true, + "name": "NodeAddress", + "nodeType": "VariableDeclaration", + "scope": 232, + "src": "3947:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 229, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3947:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3946:29:1" + }, + "src": "3929:47:1" + }, + { + "anonymous": false, + "documentation": null, + "id": 242, + "name": "Reported", + "nodeType": "EventDefinition", + "parameters": { + "id": 241, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 234, + "indexed": true, + "name": "NodeAddress", + "nodeType": "VariableDeclaration", + "scope": 242, + "src": "3996:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 233, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3996:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 236, + "indexed": false, + "name": "Type", + "nodeType": "VariableDeclaration", + "scope": 242, + "src": "4025:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 235, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4025:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 238, + "indexed": false, + "name": "Arg1", + "nodeType": "VariableDeclaration", + "scope": 242, + "src": "4039:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 237, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4039:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 240, + "indexed": false, + "name": "Arg2", + "nodeType": "VariableDeclaration", + "scope": 242, + "src": "4051:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 239, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4051:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3995:67:1" + }, + "src": "3981:82:1" + }, + { + "anonymous": false, + "documentation": null, + "id": 248, + "name": "Fined", + "nodeType": "EventDefinition", + "parameters": { + "id": 247, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 244, + "indexed": true, + "name": "NodeAddress", + "nodeType": "VariableDeclaration", + "scope": 248, + "src": "4080:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 243, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4080:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 246, + "indexed": false, + "name": "Amount", + "nodeType": "VariableDeclaration", + "scope": 248, + "src": "4109:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 245, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4109:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4079:45:1" + }, + "src": "4068:57:1" + }, + { + "anonymous": false, + "documentation": null, + "id": 254, + "name": "FinePaid", + "nodeType": "EventDefinition", + "parameters": { + "id": 253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 250, + "indexed": true, + "name": "NodeAddress", + "nodeType": "VariableDeclaration", + "scope": 254, + "src": "4145:27:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 249, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4145:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 252, + "indexed": false, + "name": "Amount", + "nodeType": "VariableDeclaration", + "scope": 254, + "src": "4174:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4174:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4144:45:1" + }, + "src": "4130:60:1" + }, + { + "anonymous": false, + "documentation": null, + "id": 260, + "name": "DKGReset", + "nodeType": "EventDefinition", + "parameters": { + "id": 259, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 256, + "indexed": true, + "name": "Round", + "nodeType": "VariableDeclaration", + "scope": 260, + "src": "4210:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 255, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4210:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 258, + "indexed": false, + "name": "BlockHeight", + "nodeType": "VariableDeclaration", + "scope": 260, + "src": "4233:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4233:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4209:44:1" + }, + "src": "4195:59:1" + }, + { + "body": { + "id": 267, + "nodeType": "Block", + "src": "4409:7:1", + "statements": [] + }, + "documentation": null, + "id": 268, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 265, + "modifierName": { + "argumentTypes": null, + "id": 264, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 186, + "src": "4399:9:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4399:9:1" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 263, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 262, + "name": "NewOwner", + "nodeType": "VariableDeclaration", + "scope": 268, + "src": "4374:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 261, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4374:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4373:18:1" + }, + "returnParameters": { + "id": 266, + "nodeType": "ParameterList", + "parameters": [], + "src": "4409:0:1" + }, + "scope": 430, + "src": "4347:69:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 296, + "nodeType": "Block", + "src": "4845:7:1", + "statements": [] + }, + "documentation": null, + "id": 297, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 294, + "modifierName": { + "argumentTypes": null, + "id": 293, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 186, + "src": "4835:9:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4835:9:1" + } + ], + "name": "updateConfiguration", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 270, + "name": "MinStake", + "nodeType": "VariableDeclaration", + "scope": 297, + "src": "4492:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4492:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 272, + "name": "LockupPeriod", + "nodeType": "VariableDeclaration", + "scope": 297, + "src": "4518:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 271, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4518:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 274, + "name": "MinGasPrice", + "nodeType": "VariableDeclaration", + "scope": 297, + "src": "4548:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 273, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4548:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 276, + "name": "BlockGasLimit", + "nodeType": "VariableDeclaration", + "scope": 297, + "src": "4577:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4577:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 278, + "name": "LambdaBA", + "nodeType": "VariableDeclaration", + "scope": 297, + "src": "4608:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 277, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4608:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 280, + "name": "LambdaDKG", + "nodeType": "VariableDeclaration", + "scope": 297, + "src": "4634:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 279, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4634:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 282, + "name": "NotaryParamAlpha", + "nodeType": "VariableDeclaration", + "scope": 297, + "src": "4661:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 281, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4661:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 284, + "name": "NotaryParamBeta", + "nodeType": "VariableDeclaration", + "scope": 297, + "src": "4695:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 283, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4695:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 286, + "name": "RoundLength", + "nodeType": "VariableDeclaration", + "scope": 297, + "src": "4728:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 285, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4728:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 288, + "name": "MinBlockInterval", + "nodeType": "VariableDeclaration", + "scope": 297, + "src": "4757:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 287, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4757:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 291, + "name": "FineValues", + "nodeType": "VariableDeclaration", + "scope": 297, + "src": "4791:27:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 289, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4791:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 290, + "length": null, + "nodeType": "ArrayTypeName", + "src": "4791:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4482:337:1" + }, + "returnParameters": { + "id": 295, + "nodeType": "ParameterList", + "parameters": [], + "src": "4845:0:1" + }, + "scope": 430, + "src": "4454:398:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 302, + "nodeType": "Block", + "src": "4948:7:1", + "statements": [] + }, + "documentation": null, + "id": 303, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addDKGComplaint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 300, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 299, + "name": "Complaint", + "nodeType": "VariableDeclaration", + "scope": 303, + "src": "4917:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 298, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4917:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4916:24:1" + }, + "returnParameters": { + "id": 301, + "nodeType": "ParameterList", + "parameters": [], + "src": "4948:0:1" + }, + "scope": 430, + "src": "4892:63:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 308, + "nodeType": "Block", + "src": "5057:7:1", + "statements": [] + }, + "documentation": null, + "id": 309, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addDKGMasterPublicKey", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 306, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 305, + "name": "PublicKey", + "nodeType": "VariableDeclaration", + "scope": 309, + "src": "5026:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 304, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5026:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5025:24:1" + }, + "returnParameters": { + "id": 307, + "nodeType": "ParameterList", + "parameters": [], + "src": "5057:0:1" + }, + "scope": 430, + "src": "4995:69:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 314, + "nodeType": "Block", + "src": "5153:7:1", + "statements": [] + }, + "documentation": null, + "id": 315, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addDKGMPKReady", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 311, + "name": "MPKReady", + "nodeType": "VariableDeclaration", + "scope": 315, + "src": "5123:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 310, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5123:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5122:23:1" + }, + "returnParameters": { + "id": 313, + "nodeType": "ParameterList", + "parameters": [], + "src": "5153:0:1" + }, + "scope": 430, + "src": "5099:61:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 320, + "nodeType": "Block", + "src": "5252:7:1", + "statements": [] + }, + "documentation": null, + "id": 321, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addDKGFinalize", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 318, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 317, + "name": "Finalize", + "nodeType": "VariableDeclaration", + "scope": 321, + "src": "5222:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 316, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5222:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5221:23:1" + }, + "returnParameters": { + "id": 319, + "nodeType": "ParameterList", + "parameters": [], + "src": "5252:0:1" + }, + "scope": 430, + "src": "5198:61:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 326, + "nodeType": "Block", + "src": "5347:7:1", + "statements": [] + }, + "documentation": null, + "id": 327, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addDKGSuccess", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 324, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 323, + "name": "Success", + "nodeType": "VariableDeclaration", + "scope": 327, + "src": "5318:20:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 322, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5318:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5317:22:1" + }, + "returnParameters": { + "id": 325, + "nodeType": "ParameterList", + "parameters": [], + "src": "5347:0:1" + }, + "scope": 430, + "src": "5295:59:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 332, + "nodeType": "Block", + "src": "5434:7:1", + "statements": [] + }, + "documentation": null, + "id": 333, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "payFine", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 329, + "name": "NodeAddress", + "nodeType": "VariableDeclaration", + "scope": 333, + "src": "5398:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 328, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5398:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5397:21:1" + }, + "returnParameters": { + "id": 331, + "nodeType": "ParameterList", + "parameters": [], + "src": "5434:0:1" + }, + "scope": 430, + "src": "5381:60:1", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 338, + "nodeType": "Block", + "src": "5531:7:1", + "statements": [] + }, + "documentation": null, + "id": 339, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "nodesLength", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 334, + "nodeType": "ParameterList", + "parameters": [], + "src": "5498:2:1" + }, + "returnParameters": { + "id": 337, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 336, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 339, + "src": "5522:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 335, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5522:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5521:9:1" + }, + "scope": 430, + "src": "5478:60:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 346, + "nodeType": "Block", + "src": "5646:7:1", + "statements": [] + }, + "documentation": null, + "id": 347, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "proposeCRS", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 344, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 341, + "name": "Round", + "nodeType": "VariableDeclaration", + "scope": 347, + "src": "5600:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 340, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5600:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 343, + "name": "SignedCRS", + "nodeType": "VariableDeclaration", + "scope": 347, + "src": "5615:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 342, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5615:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5599:39:1" + }, + "returnParameters": { + "id": 345, + "nodeType": "ParameterList", + "parameters": [], + "src": "5646:0:1" + }, + "scope": 430, + "src": "5580:73:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 356, + "nodeType": "Block", + "src": "5777:7:1", + "statements": [] + }, + "documentation": null, + "id": 357, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "report", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 354, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 349, + "name": "Type", + "nodeType": "VariableDeclaration", + "scope": 357, + "src": "5718:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 348, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5718:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 351, + "name": "Arg1", + "nodeType": "VariableDeclaration", + "scope": 357, + "src": "5732:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 350, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5732:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 353, + "name": "Arg2", + "nodeType": "VariableDeclaration", + "scope": 357, + "src": "5751:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 352, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5751:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5717:52:1" + }, + "returnParameters": { + "id": 355, + "nodeType": "ParameterList", + "parameters": [], + "src": "5777:0:1" + }, + "scope": 430, + "src": "5702:82:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 362, + "nodeType": "Block", + "src": "5872:7:1", + "statements": [] + }, + "documentation": null, + "id": 363, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "resetDKG", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 360, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 359, + "name": "NewSignedCRS", + "nodeType": "VariableDeclaration", + "scope": 363, + "src": "5838:25:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 358, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5838:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5837:27:1" + }, + "returnParameters": { + "id": 361, + "nodeType": "ParameterList", + "parameters": [], + "src": "5872:0:1" + }, + "scope": 430, + "src": "5820:59:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 376, + "nodeType": "Block", + "src": "6224:7:1", + "statements": [] + }, + "documentation": null, + "id": 377, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "register", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 374, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 365, + "name": "PublicKey", + "nodeType": "VariableDeclaration", + "scope": 377, + "src": "6057:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 364, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6057:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 367, + "name": "Name", + "nodeType": "VariableDeclaration", + "scope": 377, + "src": "6081:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 366, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6081:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 369, + "name": "Email", + "nodeType": "VariableDeclaration", + "scope": 377, + "src": "6123:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 368, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6123:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 371, + "name": "Location", + "nodeType": "VariableDeclaration", + "scope": 377, + "src": "6144:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 370, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6144:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 373, + "name": "Url", + "nodeType": "VariableDeclaration", + "scope": 377, + "src": "6190:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 372, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6190:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6056:152:1" + }, + "returnParameters": { + "id": 375, + "nodeType": "ParameterList", + "parameters": [], + "src": "6224:0:1" + }, + "scope": 430, + "src": "6039:192:1", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 382, + "nodeType": "Block", + "src": "6343:7:1", + "statements": [] + }, + "documentation": null, + "id": 383, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "replaceNodePublicKey", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 380, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 379, + "name": "NewPublicKey", + "nodeType": "VariableDeclaration", + "scope": 383, + "src": "6309:25:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 378, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6309:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6308:27:1" + }, + "returnParameters": { + "id": 381, + "nodeType": "ParameterList", + "parameters": [], + "src": "6343:0:1" + }, + "scope": 430, + "src": "6279:71:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 386, + "nodeType": "Block", + "src": "6403:7:1", + "statements": [] + }, + "documentation": null, + "id": 387, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "stake", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 384, + "nodeType": "ParameterList", + "parameters": [], + "src": "6385:2:1" + }, + "returnParameters": { + "id": 385, + "nodeType": "ParameterList", + "parameters": [], + "src": "6403:0:1" + }, + "scope": 430, + "src": "6371:39:1", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 392, + "nodeType": "Block", + "src": "6511:7:1", + "statements": [] + }, + "documentation": null, + "id": 393, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferNodeOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 389, + "name": "NewOwner", + "nodeType": "VariableDeclaration", + "scope": 393, + "src": "6486:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 388, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6486:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6485:18:1" + }, + "returnParameters": { + "id": 391, + "nodeType": "ParameterList", + "parameters": [], + "src": "6511:0:1" + }, + "scope": 430, + "src": "6455:63:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 400, + "nodeType": "Block", + "src": "6671:7:1", + "statements": [] + }, + "documentation": null, + "id": 401, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferNodeOwnershipByFoundation", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 398, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 395, + "name": "OldOwner", + "nodeType": "VariableDeclaration", + "scope": 401, + "src": "6628:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 394, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6628:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 397, + "name": "NewOwner", + "nodeType": "VariableDeclaration", + "scope": 401, + "src": "6646:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 396, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6646:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6627:36:1" + }, + "returnParameters": { + "id": 399, + "nodeType": "ParameterList", + "parameters": [], + "src": "6671:0:1" + }, + "scope": 430, + "src": "6585:93:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 406, + "nodeType": "Block", + "src": "6741:7:1", + "statements": [] + }, + "documentation": null, + "id": 407, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unstake", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 404, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 403, + "name": "Amount", + "nodeType": "VariableDeclaration", + "scope": 407, + "src": "6718:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 402, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6718:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6717:16:1" + }, + "returnParameters": { + "id": 405, + "nodeType": "ParameterList", + "parameters": [], + "src": "6741:0:1" + }, + "scope": 430, + "src": "6701:47:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 418, + "nodeType": "Block", + "src": "6947:7:1", + "statements": [] + }, + "documentation": null, + "id": 419, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "updateNodeInfo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 416, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 409, + "name": "Name", + "nodeType": "VariableDeclaration", + "scope": 419, + "src": "6828:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 408, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6828:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 411, + "name": "Email", + "nodeType": "VariableDeclaration", + "scope": 419, + "src": "6848:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 410, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6848:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 413, + "name": "Location", + "nodeType": "VariableDeclaration", + "scope": 419, + "src": "6897:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 412, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6897:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 415, + "name": "Url", + "nodeType": "VariableDeclaration", + "scope": 419, + "src": "6921:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 414, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6921:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6827:112:1" + }, + "returnParameters": { + "id": 417, + "nodeType": "ParameterList", + "parameters": [], + "src": "6947:0:1" + }, + "scope": 430, + "src": "6804:150:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 422, + "nodeType": "Block", + "src": "7005:7:1", + "statements": [] + }, + "documentation": null, + "id": 423, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 420, + "nodeType": "ParameterList", + "parameters": [], + "src": "6995:2:1" + }, + "returnParameters": { + "id": 421, + "nodeType": "ParameterList", + "parameters": [], + "src": "7005:0:1" + }, + "scope": 430, + "src": "6978:34:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 428, + "nodeType": "Block", + "src": "7091:7:1", + "statements": [] + }, + "documentation": null, + "id": 429, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawable", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 424, + "nodeType": "ParameterList", + "parameters": [], + "src": "7061:2:1" + }, + "returnParameters": { + "id": 427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 426, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 429, + "src": "7085:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 425, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7085:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7084:6:1" + }, + "scope": 430, + "src": "7040:58:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 431, + "src": "26:7074:1" + } + ], + "src": "0:7101:1" + }, + "compiler": { + "name": "solc", + "version": "0.5.11+commit.c082d0b4.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.11", + "updatedAt": "2019-09-29T03:11:52.542Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +}
\ No newline at end of file diff --git a/build/contracts/GovernanceMock.json b/build/contracts/GovernanceMock.json new file mode 100644 index 0000000..195cbad --- /dev/null +++ b/build/contracts/GovernanceMock.json @@ -0,0 +1,10900 @@ +{ + "contractName": "GovernanceMock", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "staked", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "nodes", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "bytes", + "name": "publicKey", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "staked", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "fined", + "type": "uint256" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "email", + "type": "string" + }, + { + "internalType": "string", + "name": "location", + "type": "string" + }, + { + "internalType": "string", + "name": "url", + "type": "string" + }, + { + "internalType": "uint256", + "name": "unstaked", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "unstakedAt", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "minStake", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "nodesOffsetByAddress", + "outputs": [ + { + "internalType": "int256", + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "unstaked", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "registered", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "publicKey", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "email", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "location", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "url", + "type": "string" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Register", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Staked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Unstaked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Withdrawn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "NodeAddress", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "NewOwnerAddress", + "type": "address" + } + ], + "name": "NodeOwnershipTransfered", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes", + "name": "publicKey", + "type": "bytes" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "email", + "type": "string" + }, + { + "internalType": "string", + "name": "location", + "type": "string" + }, + { + "internalType": "string", + "name": "url", + "type": "string" + } + ], + "name": "register", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "stake", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "unstake", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "withdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "withdrawable", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes", + "name": "key", + "type": "bytes" + } + ], + "name": "replaceNodePublicKey", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "NewOwner", + "type": "address" + } + ], + "name": "transferNodeOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.11+commit.c082d0b4\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"staked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"nodes\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"staked\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fined\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"email\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"unstaked\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unstakedAt\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unstake\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"stake\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"key\",\"type\":\"bytes\"}],\"name\":\"replaceNodePublicKey\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"NewOwner\",\"type\":\"address\"}],\"name\":\"transferNodeOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"withdrawable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nodesOffsetByAddress\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"unstaked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"registered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"email\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"}],\"name\":\"register\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"email\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Register\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Staked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Unstaked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"NodeAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"NewOwnerAddress\",\"type\":\"address\"}],\"name\":\"NodeOwnershipTransfered\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/aitjcize/Work/tangerine-network/node-staker/contracts/test/GovernanceMock.sol\":\"GovernanceMock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/aitjcize/Work/tangerine-network/node-staker/contracts/test/GovernanceMock.sol\":{\"keccak256\":\"0x90dc9c2ce198dc71a468bd8c1857ac2f91161254c11c038142684f70f3cd5fac\",\"urls\":[\"bzz-raw://e923208b210a70e3f8f64f56270a4d58e1df7c51beb909f58b3e8e8ddd2604c1\",\"dweb:/ipfs/QmVvPbp8F26SgEgoKze73S2hEq3bZWTn16EbbZpmkothT2\"]}},\"version\":1}", + "bytecode": "0x608060405260006003556000600455670de0b6b3a764000060055534801561002657600080fd5b50611448806100366000396000f3fe6080604052600436106100c25760003560e01c80633f007c201161007f578063850311231161005957806385031123146104c8578063acbc2e8a146104fb578063b2dd5c0714610510578063d242f4cc14610543576100c2565b80633f007c20146103bb5780634264ecf91461046c578063501883011461049f576100c2565b80630b76619b146100c75780631c53c280146100ee5780632e17de781461035d578063375b3c0a146103895780633a4b66f11461039e5780633ccfd60b146103a6575b600080fd5b3480156100d357600080fd5b506100dc6107fb565b60408051918252519081900360200190f35b3480156100fa57600080fd5b506101186004803603602081101561011157600080fd5b5035610801565b604051808b6001600160a01b03166001600160a01b03168152602001806020018a81526020018981526020018060200180602001806020018060200188815260200187815260200186810386528f818151815260200191508051906020019080838360005b8381101561019557818101518382015260200161017d565b50505050905090810190601f1680156101c25780820380516001836020036101000a031916815260200191505b5086810385528c5181528c516020918201918e019080838360005b838110156101f55781810151838201526020016101dd565b50505050905090810190601f1680156102225780820380516001836020036101000a031916815260200191505b5086810384528b5181528b516020918201918d019080838360005b8381101561025557818101518382015260200161023d565b50505050905090810190601f1680156102825780820380516001836020036101000a031916815260200191505b5086810383528a5181528a516020918201918c019080838360005b838110156102b557818101518382015260200161029d565b50505050905090810190601f1680156102e25780820380516001836020036101000a031916815260200191505b5086810382528951815289516020918201918b019080838360005b838110156103155781810151838201526020016102fd565b50505050905090810190601f1680156103425780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b34801561036957600080fd5b506103876004803603602081101561038057600080fd5b5035610b2b565b005b34801561039557600080fd5b506100dc610c05565b610387610c0b565b3480156103b257600080fd5b50610387610c92565b3480156103c757600080fd5b50610387600480360360208110156103de57600080fd5b810190602081018135600160201b8111156103f857600080fd5b82018360208201111561040a57600080fd5b803590602001918460018302840111600160201b8311171561042b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610d91945050505050565b34801561047857600080fd5b506103876004803603602081101561048f57600080fd5b50356001600160a01b0316610de0565b3480156104ab57600080fd5b506104b4610e19565b604080519115158252519081900360200190f35b3480156104d457600080fd5b506100dc600480360360208110156104eb57600080fd5b50356001600160a01b0316610e59565b34801561050757600080fd5b506100dc610e6b565b34801561051c57600080fd5b506104b46004803603602081101561053357600080fd5b50356001600160a01b0316610e71565b610387600480360360a081101561055957600080fd5b810190602081018135600160201b81111561057357600080fd5b82018360208201111561058557600080fd5b803590602001918460018302840111600160201b831117156105a657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156105f857600080fd5b82018360208201111561060a57600080fd5b803590602001918460018302840111600160201b8311171561062b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561067d57600080fd5b82018360208201111561068f57600080fd5b803590602001918460018302840111600160201b831117156106b057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561070257600080fd5b82018360208201111561071457600080fd5b803590602001918460018302840111600160201b8311171561073557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561078757600080fd5b82018360208201111561079957600080fd5b803590602001918460018302840111600160201b831117156107ba57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e86945050505050565b60035481565b6000818154811061080e57fe5b6000918252602091829020600a9091020180546001808301805460408051601f60026000199685161561010002969096019093169490940491820187900487028401870190528083526001600160a01b0390931695509293909291908301828280156108bb5780601f10610890576101008083540402835291602001916108bb565b820191906000526020600020905b81548152906001019060200180831161089e57829003601f168201915b505050505090806002015490806003015490806004018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109655780601f1061093a57610100808354040283529160200191610965565b820191906000526020600020905b81548152906001019060200180831161094857829003601f168201915b5050505060058301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156109f55780601f106109ca576101008083540402835291602001916109f5565b820191906000526020600020905b8154815290600101906020018083116109d857829003601f168201915b5050505060068301805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152949594935090830182828015610a855780601f10610a5a57610100808354040283529160200191610a85565b820191906000526020600020905b815481529060010190602001808311610a6857829003601f168201915b5050505060078301805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152949594935090830182828015610b155780601f10610aea57610100808354040283529160200191610b15565b820191906000526020600020905b815481529060010190602001808311610af857829003601f168201915b505050505090806008015490806009015490508a565b6003805482900390556004805482019055336000908152600160205260408120548154909190819083908110610b5d57fe5b90600052602060002090600a020190508060020154831115610bb05760405162461bcd60e51b81526004018080602001828103825260218152602001806113f36021913960400191505060405180910390fd5b600281018054849003905560088101805484019055604080513381526020810185905281517f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f75929181900390910190a1505050565b60055481565b6003805434019055336000908152600160205260408120548154909190819083908110610c3457fe5b60009182526020918290206002600a90920201908101805434908101909155604080513381529384019190915280519193507f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d928290030190a15050565b336000908152600160205260408120548154909190819083908110610cb357fe5b60009182526020909120600a9091020160088101549091503031811115610d13576040805162461bcd60e51b815260206004820152600f60248201526e696e76616c69642062616c616e636560881b604482015290519081900360640190fd5b600480548290039055600060088301819055604051339183156108fc02918491818181858888f19350505050158015610d50573d6000803e3d6000fd5b50604080513381526020810183905281517f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5929181900390910190a1505050565b336000908152600160205260408120548154909190819083908110610db257fe5b90600052602060002090600a0201905082816001019080519060200190610dda9291906112fe565b50505050565b6040516001600160a01b0382169033907f63616cf4caeee172ed91719b5e000da424d56855ee726aedb0a1d74fb3f1db2a90600090a350565b3360009081526001602052604081205481548290819083908110610e3957fe5b60009182526020909120600a909102016008015430311015925050505b90565b60016020526000908152604090205481565b60045481565b60026020526000908152604090205460ff1681565b3360009081526002602052604090205460ff1615610eeb576040805162461bcd60e51b815260206004820152601c60248201527f73656e6465722061646472657373206973207265676973746572656400000000604482015290519081900360640190fd5b336000908152600260205260409020805460ff191660011790556003805434019055610f1561137c565b5060408051610140810182523380825260208083018981523484860152600060608501819052608085018a905260a0850189905260c0850188905260e08501879052610100850181905261012085018190528054938152600180845295812084905594830180865594805283517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563600a90940293840180546001600160a01b0319166001600160a01b039092169190911781559051805194959486949293611001937f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e564019201906112fe565b506040820151600282015560608201516003820155608082015180516110319160048401916020909101906112fe565b5060a0820151805161104d9160058401916020909101906112fe565b5060c082015180516110699160068401916020909101906112fe565b5060e082015180516110859160078401916020909101906112fe565b50610100820151816008015561012082015181600901555050507f471c608285a25d40223ae624c34aa7bf38348e6cc163d3fbeca102527a2a9ee73387878787873460405180886001600160a01b03166001600160a01b03168152602001806020018060200180602001806020018060200187815260200186810386528c818151815260200191508051906020019080838360005b8381101561113257818101518382015260200161111a565b50505050905090810190601f16801561115f5780820380516001836020036101000a031916815260200191505b5086810385528b5181528b516020918201918d019080838360005b8381101561119257818101518382015260200161117a565b50505050905090810190601f1680156111bf5780820380516001836020036101000a031916815260200191505b5086810384528a5181528a516020918201918c019080838360005b838110156111f25781810151838201526020016111da565b50505050905090810190601f16801561121f5780820380516001836020036101000a031916815260200191505b5086810383528951815289516020918201918b019080838360005b8381101561125257818101518382015260200161123a565b50505050905090810190601f16801561127f5780820380516001836020036101000a031916815260200191505b5086810382528851815288516020918201918a019080838360005b838110156112b257818101518382015260200161129a565b50505050905090810190601f1680156112df5780820380516001836020036101000a031916815260200191505b509c5050505050505050505050505060405180910390a1505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061133f57805160ff191683800117855561136c565b8280016001018555821561136c579182015b8281111561136c578251825591602001919060010190611351565b506113789291506113d8565b5090565b60405180610140016040528060006001600160a01b031681526020016060815260200160008152602001600081526020016060815260200160608152602001606081526020016060815260200160008152602001600081525090565b610e5691905b8082111561137857600081556001016113de56fe756e7374616b6520616d6f756e74206c6172676572207468616e207374616b6564a265627a7a723158208650d3b6bbc231c83e41894a417fed89b5bc04027331a124ac72bff73ff0e9a564736f6c634300050b0032", + "deployedBytecode": "0x6080604052600436106100c25760003560e01c80633f007c201161007f578063850311231161005957806385031123146104c8578063acbc2e8a146104fb578063b2dd5c0714610510578063d242f4cc14610543576100c2565b80633f007c20146103bb5780634264ecf91461046c578063501883011461049f576100c2565b80630b76619b146100c75780631c53c280146100ee5780632e17de781461035d578063375b3c0a146103895780633a4b66f11461039e5780633ccfd60b146103a6575b600080fd5b3480156100d357600080fd5b506100dc6107fb565b60408051918252519081900360200190f35b3480156100fa57600080fd5b506101186004803603602081101561011157600080fd5b5035610801565b604051808b6001600160a01b03166001600160a01b03168152602001806020018a81526020018981526020018060200180602001806020018060200188815260200187815260200186810386528f818151815260200191508051906020019080838360005b8381101561019557818101518382015260200161017d565b50505050905090810190601f1680156101c25780820380516001836020036101000a031916815260200191505b5086810385528c5181528c516020918201918e019080838360005b838110156101f55781810151838201526020016101dd565b50505050905090810190601f1680156102225780820380516001836020036101000a031916815260200191505b5086810384528b5181528b516020918201918d019080838360005b8381101561025557818101518382015260200161023d565b50505050905090810190601f1680156102825780820380516001836020036101000a031916815260200191505b5086810383528a5181528a516020918201918c019080838360005b838110156102b557818101518382015260200161029d565b50505050905090810190601f1680156102e25780820380516001836020036101000a031916815260200191505b5086810382528951815289516020918201918b019080838360005b838110156103155781810151838201526020016102fd565b50505050905090810190601f1680156103425780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b34801561036957600080fd5b506103876004803603602081101561038057600080fd5b5035610b2b565b005b34801561039557600080fd5b506100dc610c05565b610387610c0b565b3480156103b257600080fd5b50610387610c92565b3480156103c757600080fd5b50610387600480360360208110156103de57600080fd5b810190602081018135600160201b8111156103f857600080fd5b82018360208201111561040a57600080fd5b803590602001918460018302840111600160201b8311171561042b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610d91945050505050565b34801561047857600080fd5b506103876004803603602081101561048f57600080fd5b50356001600160a01b0316610de0565b3480156104ab57600080fd5b506104b4610e19565b604080519115158252519081900360200190f35b3480156104d457600080fd5b506100dc600480360360208110156104eb57600080fd5b50356001600160a01b0316610e59565b34801561050757600080fd5b506100dc610e6b565b34801561051c57600080fd5b506104b46004803603602081101561053357600080fd5b50356001600160a01b0316610e71565b610387600480360360a081101561055957600080fd5b810190602081018135600160201b81111561057357600080fd5b82018360208201111561058557600080fd5b803590602001918460018302840111600160201b831117156105a657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156105f857600080fd5b82018360208201111561060a57600080fd5b803590602001918460018302840111600160201b8311171561062b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561067d57600080fd5b82018360208201111561068f57600080fd5b803590602001918460018302840111600160201b831117156106b057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561070257600080fd5b82018360208201111561071457600080fd5b803590602001918460018302840111600160201b8311171561073557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561078757600080fd5b82018360208201111561079957600080fd5b803590602001918460018302840111600160201b831117156107ba57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e86945050505050565b60035481565b6000818154811061080e57fe5b6000918252602091829020600a9091020180546001808301805460408051601f60026000199685161561010002969096019093169490940491820187900487028401870190528083526001600160a01b0390931695509293909291908301828280156108bb5780601f10610890576101008083540402835291602001916108bb565b820191906000526020600020905b81548152906001019060200180831161089e57829003601f168201915b505050505090806002015490806003015490806004018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109655780601f1061093a57610100808354040283529160200191610965565b820191906000526020600020905b81548152906001019060200180831161094857829003601f168201915b5050505060058301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156109f55780601f106109ca576101008083540402835291602001916109f5565b820191906000526020600020905b8154815290600101906020018083116109d857829003601f168201915b5050505060068301805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152949594935090830182828015610a855780601f10610a5a57610100808354040283529160200191610a85565b820191906000526020600020905b815481529060010190602001808311610a6857829003601f168201915b5050505060078301805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152949594935090830182828015610b155780601f10610aea57610100808354040283529160200191610b15565b820191906000526020600020905b815481529060010190602001808311610af857829003601f168201915b505050505090806008015490806009015490508a565b6003805482900390556004805482019055336000908152600160205260408120548154909190819083908110610b5d57fe5b90600052602060002090600a020190508060020154831115610bb05760405162461bcd60e51b81526004018080602001828103825260218152602001806113f36021913960400191505060405180910390fd5b600281018054849003905560088101805484019055604080513381526020810185905281517f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f75929181900390910190a1505050565b60055481565b6003805434019055336000908152600160205260408120548154909190819083908110610c3457fe5b60009182526020918290206002600a90920201908101805434908101909155604080513381529384019190915280519193507f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d928290030190a15050565b336000908152600160205260408120548154909190819083908110610cb357fe5b60009182526020909120600a9091020160088101549091503031811115610d13576040805162461bcd60e51b815260206004820152600f60248201526e696e76616c69642062616c616e636560881b604482015290519081900360640190fd5b600480548290039055600060088301819055604051339183156108fc02918491818181858888f19350505050158015610d50573d6000803e3d6000fd5b50604080513381526020810183905281517f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5929181900390910190a1505050565b336000908152600160205260408120548154909190819083908110610db257fe5b90600052602060002090600a0201905082816001019080519060200190610dda9291906112fe565b50505050565b6040516001600160a01b0382169033907f63616cf4caeee172ed91719b5e000da424d56855ee726aedb0a1d74fb3f1db2a90600090a350565b3360009081526001602052604081205481548290819083908110610e3957fe5b60009182526020909120600a909102016008015430311015925050505b90565b60016020526000908152604090205481565b60045481565b60026020526000908152604090205460ff1681565b3360009081526002602052604090205460ff1615610eeb576040805162461bcd60e51b815260206004820152601c60248201527f73656e6465722061646472657373206973207265676973746572656400000000604482015290519081900360640190fd5b336000908152600260205260409020805460ff191660011790556003805434019055610f1561137c565b5060408051610140810182523380825260208083018981523484860152600060608501819052608085018a905260a0850189905260c0850188905260e08501879052610100850181905261012085018190528054938152600180845295812084905594830180865594805283517f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563600a90940293840180546001600160a01b0319166001600160a01b039092169190911781559051805194959486949293611001937f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e564019201906112fe565b506040820151600282015560608201516003820155608082015180516110319160048401916020909101906112fe565b5060a0820151805161104d9160058401916020909101906112fe565b5060c082015180516110699160068401916020909101906112fe565b5060e082015180516110859160078401916020909101906112fe565b50610100820151816008015561012082015181600901555050507f471c608285a25d40223ae624c34aa7bf38348e6cc163d3fbeca102527a2a9ee73387878787873460405180886001600160a01b03166001600160a01b03168152602001806020018060200180602001806020018060200187815260200186810386528c818151815260200191508051906020019080838360005b8381101561113257818101518382015260200161111a565b50505050905090810190601f16801561115f5780820380516001836020036101000a031916815260200191505b5086810385528b5181528b516020918201918d019080838360005b8381101561119257818101518382015260200161117a565b50505050905090810190601f1680156111bf5780820380516001836020036101000a031916815260200191505b5086810384528a5181528a516020918201918c019080838360005b838110156111f25781810151838201526020016111da565b50505050905090810190601f16801561121f5780820380516001836020036101000a031916815260200191505b5086810383528951815289516020918201918b019080838360005b8381101561125257818101518382015260200161123a565b50505050905090810190601f16801561127f5780820380516001836020036101000a031916815260200191505b5086810382528851815288516020918201918a019080838360005b838110156112b257818101518382015260200161129a565b50505050905090810190601f1680156112df5780820380516001836020036101000a031916815260200191505b509c5050505050505050505050505060405180910390a1505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061133f57805160ff191683800117855561136c565b8280016001018555821561136c579182015b8281111561136c578251825591602001919060010190611351565b506113789291506113d8565b5090565b60405180610140016040528060006001600160a01b031681526020016060815260200160008152602001600081526020016060815260200160608152602001606081526020016060815260200160008152602001600081525090565b610e5691905b8082111561137857600081556001016113de56fe756e7374616b6520616d6f756e74206c6172676572207468616e207374616b6564a265627a7a723158208650d3b6bbc231c83e41894a417fed89b5bc04027331a124ac72bff73ff0e9a564736f6c634300050b0032", + "sourceMap": "187:3088:4:-;;;586:1;562:25;;617:1;591:27;;648:19;622:45;;187:3088;8:9:-1;5:2;;;30:1;27;20:12;5:2;187:3088:4;;;;;;;", + "deployedSourceMap": "187:3088:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;562:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;562:25:4;;;:::i;:::-;;;;;;;;;;;;;;;;434:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;434:19:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;434:19:4;;:::i;:::-;;;;;-1:-1:-1;;;;;434:19:4;-1:-1:-1;;;;;434:19:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;434:19:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;434:19:4;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;434:19:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;434:19:4;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;434:19:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;434:19:4;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;434:19:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;434:19:4;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;434:19:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1939:361;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1939:361:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1939:361:4;;:::i;:::-;;622:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;622:45:4;;;:::i;1701:234::-;;;:::i;2304:403::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2304:403:4;;;:::i;2966:186::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2966:186:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2966:186:4;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2966:186:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2966:186:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2966:186:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2966:186:4;;-1:-1:-1;2966:186:4;;-1:-1:-1;;;;;2966:186:4:i;3156:117::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3156:117:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3156:117:4;-1:-1:-1;;;;;3156:117:4;;:::i;2711:251::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2711:251:4;;;:::i;:::-;;;;;;;;;;;;;;;;;;457:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;457:54:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;457:54:4;-1:-1:-1;;;;;457:54:4;;:::i;591:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;591:27:4;;;:::i;516:42::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;516:42:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;516:42:4;-1:-1:-1;;;;;516:42:4;;:::i;1067:630::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1067:630:4;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;1067:630:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1067:630:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1067:630:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1067:630:4;;;;;;;;-1:-1:-1;1067:630:4;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;1067:630:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1067:630:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1067:630:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1067:630:4;;;;;;;;-1:-1:-1;1067:630:4;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;1067:630:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1067:630:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1067:630:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1067:630:4;;;;;;;;-1:-1:-1;1067:630:4;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;1067:630:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1067:630:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1067:630:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1067:630:4;;;;;;;;-1:-1:-1;1067:630:4;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;1067:630:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1067:630:4;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1067:630:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1067:630:4;;-1:-1:-1;1067:630:4;;-1:-1:-1;;;;;1067:630:4:i;562:25::-;;;;:::o;434:19::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;434:19:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;434:19:4;;;;-1:-1:-1;434:19:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;434:19:4;;;;;;;;;;;;;;;;-1:-1:-1;;434:19:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;434:19:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;434:19:4;;;;;;;;;;;;;;;;-1:-1:-1;;434:19:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;434:19:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;434:19:4;;;;;;;;;;;;;;;;-1:-1:-1;;434:19:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;434:19:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1939:361::-;1985:6;:16;;;;;;;2007:8;:18;;;;;;2075:10;1985:6;2054:32;;;-1:-1:-1;2054:32:4;;;;;;2113:13;;2054:32;;1985:6;;;2054:32;;2113:13;;;;;;;;;;;;;;;;2093:33;;2150:4;:11;;;2140:6;:21;;2132:67;;;;-1:-1:-1;;;2132:67:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2205:11;;;:21;;;;;;;2232:13;;;:23;;;;;;2267:28;;;2276:10;2267:28;;;;;;;;;;;;;;;;;;;;;1939:361;;;:::o;622:45::-;;;;:::o;1701:234::-;1739:6;:19;;1749:9;1739:19;;;1808:10;1739:6;1787:32;;;-1:-1:-1;1787:32:4;;;;;;1846:13;;1787:32;;1739:6;;;1787:32;;1846:13;;;;;;;;;;;;;;;1865:11;1846:13;;;;;1865:11;;;:24;;1880:9;1865:24;;;;;;1901:29;;;1908:10;1901:29;;;;;;;;;;;1846:13;;-1:-1:-1;1901:29:4;;;;;;;;1701:234;;:::o;2304:403::-;2380:10;2337:14;2359:32;;;:20;:32;;;;;;2418:13;;2359:32;;2337:14;;;2359:32;;2418:13;;;;;;;;;;;;;;;;;;;2454;;;;2418;;-1:-1:-1;2538:4:4;2530:21;:31;-1:-1:-1;2530:31:4;2522:59;;;;;-1:-1:-1;;;2522:59:4;;;;;;;;;;;;-1:-1:-1;;;2522:59:4;;;;;;;;;;;;;;;2588:8;:18;;;;;;;:8;2612:13;;;:17;;;2635:27;;:10;;:27;;;;;2600:6;;2635:27;2588:8;2635:27;2600:6;2635:10;:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;2673:29:4;;;2683:10;2673:29;;;;;;;;;;;;;;;;;;;;;2304:403;;;:::o;2966:186::-;3070:10;3027:14;3049:32;;;:20;:32;;;;;;3108:13;;3049:32;;3027:14;;;3049:32;;3108:13;;;;;;;;;;;;;;;;3088:33;;3144:3;3127:4;:14;;:20;;;;;;;;;;;;:::i;:::-;;2966:186;;;:::o;3156:117::-;3223:45;;-1:-1:-1;;;;;3223:45:4;;;3247:10;;3223:45;;;;;3156:117;:::o;2711:251::-;2811:10;2756:4;2790:32;;;:20;:32;;;;;;2849:13;;2756:4;;;;2790:32;;2849:13;;;;;;;;;;;;;;;;;;;2885;;;2934:4;2926:21;-1:-1:-1;2926:31:4;;-1:-1:-1;;;2711:251:4;;:::o;457:54::-;;;;;;;;;;;;;:::o;591:27::-;;;;:::o;516:42::-;;;;;;;;;;;;;;;:::o;1067:630::-;1258:10;1247:22;;;;:10;:22;;;;;;;;1246:23;1238:64;;;;;-1:-1:-1;;;1238:64:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;1319:10;1308:22;;;;:10;:22;;;;;:29;;-1:-1:-1;;1308:29:4;1333:4;1308:29;;;1343:6;:19;;1353:9;1343:19;;;1369:16;;:::i;:::-;-1:-1:-1;1388:141:4;;;;;;;;1400:10;1388:141;;;;;;;;;;1435:9;1388:141;;;;-1:-1:-1;1388:141:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1575:12;;1536:32;;;:20;:32;;;;;;:52;;;23:18:-1;;;45:23;;;1594:16:4;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1594:16:4;-1:-1:-1;;;;;1594:16:4;;;;;;;;;;;;;1388:141;;23:18:-1;1388:141:4;;1594:16;;;;;;;;;;:::i;:::-;-1:-1:-1;1594:16:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1594:16:4;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1594:16:4;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1594:16:4;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1622:70;1631:10;1643:9;1654:4;1660:5;1667:8;1677:3;1682:9;1622:70;;;;-1:-1:-1;;;;;1622:70:4;-1:-1:-1;;;;;1622:70:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1622:70:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1622:70:4;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1622:70:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1622:70:4;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1622:70:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1622:70:4;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1622:70:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1622:70:4;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1622:70:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1067:630;;;;;;:::o;187:3088::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;187:3088:4;;;-1:-1:-1;187:3088:4;:::i;:::-;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;187:3088:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;", + "source": "pragma solidity ^0.5.11;\n\n// This contract mocks the Tangerine governance contract ONLY FOR TESTING PURPOSE,\n// and its behavior is not exaclty same as the Tangerine governance contract.\ncontract GovernanceMock {\n\n struct Node {\n address owner;\n bytes publicKey;\n uint256 staked;\n uint256 fined;\n string name;\n string email;\n string location;\n string url;\n uint256 unstaked;\n uint256 unstakedAt;\n }\n\n Node[] public nodes;\n mapping(address => int256) public nodesOffsetByAddress;\n\n mapping(address => bool) public registered;\n uint256 public staked = 0;\n uint256 public unstaked = 0;\n uint256 public minStake = 1000000000000000000;\n\n event Register(\n address owner,\n bytes publicKey,\n string name,\n string email,\n string location,\n string url,\n uint256 value\n );\n event Staked(address owner, uint256 amount);\n event Unstaked(address owner, uint256 amount);\n event Withdrawn(address owner, uint256 amount);\n event NodeOwnershipTransfered(address indexed NodeAddress, address indexed NewOwnerAddress);\n\n function register(\n bytes memory publicKey,\n string memory name,\n string memory email,\n string memory location,\n string memory url\n ) public payable {\n require(!registered[msg.sender], \"sender address is registered\");\n registered[msg.sender] = true;\n staked += msg.value;\n\n Node memory node = Node(\n msg.sender,\n publicKey,\n msg.value,\n 0,\n name,\n email,\n location,\n url,\n 0,\n 0\n );\n\n nodesOffsetByAddress[msg.sender] = int(nodes.length);\n nodes.push(node);\n\n emit Register(msg.sender, publicKey, name, email, location, url, msg.value);\n }\n\n function stake() public payable {\n staked += msg.value;\n\n uint256 offset = uint(nodesOffsetByAddress[msg.sender]);\n Node storage node = nodes[offset];\n node.staked += msg.value;\n\n emit Staked(msg.sender, msg.value);\n }\n\n function unstake(uint256 amount) public {\n staked -= amount;\n unstaked += amount;\n\n uint256 offset = uint(nodesOffsetByAddress[msg.sender]);\n Node storage node = nodes[offset];\n require(amount <= node.staked, \"unstake amount larger than staked\");\n node.staked -= amount;\n node.unstaked += amount;\n\n emit Unstaked(msg.sender, amount);\n }\n\n function withdraw() public {\n uint256 offset = uint(nodesOffsetByAddress[msg.sender]);\n Node storage node = nodes[offset];\n uint256 amount = node.unstaked;\n require(amount >= 0, \"no unstaked balance\");\n require(address(this).balance >= amount, \"invalid balance\");\n\n unstaked -= amount;\n node.unstaked = 0;\n msg.sender.transfer(amount);\n emit Withdrawn(msg.sender, amount);\n }\n\n function withdrawable() public view returns (bool) {\n uint256 offset = uint(nodesOffsetByAddress[msg.sender]);\n Node storage node = nodes[offset];\n uint256 amount = node.unstaked;\n return amount >= 0 && address(this).balance >= amount;\n }\n\n function replaceNodePublicKey(bytes memory key) public {\n uint256 offset = uint(nodesOffsetByAddress[msg.sender]);\n Node storage node = nodes[offset];\n node.publicKey = key;\n }\n\n function transferNodeOwnership(address NewOwner) public {\n emit NodeOwnershipTransfered(msg.sender, NewOwner);\n }\n}\n", + "sourcePath": "/Users/aitjcize/Work/tangerine-network/node-staker/contracts/test/GovernanceMock.sol", + "ast": { + "absolutePath": "/Users/aitjcize/Work/tangerine-network/node-staker/contracts/test/GovernanceMock.sol", + "exportedSymbols": { + "GovernanceMock": [ + 1259 + ] + }, + "id": 1260, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 863, + "literals": [ + "solidity", + "^", + "0.5", + ".11" + ], + "nodeType": "PragmaDirective", + "src": "0:24:4" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1259, + "linearizedBaseContracts": [ + 1259 + ], + "name": "GovernanceMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "GovernanceMock.Node", + "id": 884, + "members": [ + { + "constant": false, + "id": 865, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 884, + "src": "234:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 864, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "234:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 867, + "name": "publicKey", + "nodeType": "VariableDeclaration", + "scope": 884, + "src": "253:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 866, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "253:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 869, + "name": "staked", + "nodeType": "VariableDeclaration", + "scope": 884, + "src": "274:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 868, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "274:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 871, + "name": "fined", + "nodeType": "VariableDeclaration", + "scope": 884, + "src": "294:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "294:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 873, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 884, + "src": "313:11:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 872, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "313:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 875, + "name": "email", + "nodeType": "VariableDeclaration", + "scope": 884, + "src": "330:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 874, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "330:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 877, + "name": "location", + "nodeType": "VariableDeclaration", + "scope": 884, + "src": "348:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 876, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "348:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 879, + "name": "url", + "nodeType": "VariableDeclaration", + "scope": 884, + "src": "369:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 878, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "369:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 881, + "name": "unstaked", + "nodeType": "VariableDeclaration", + "scope": 884, + "src": "385:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 880, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "385:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 883, + "name": "unstakedAt", + "nodeType": "VariableDeclaration", + "scope": 884, + "src": "407:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 882, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "407:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Node", + "nodeType": "StructDefinition", + "scope": 1259, + "src": "216:214:4", + "visibility": "public" + }, + { + "constant": false, + "id": 887, + "name": "nodes", + "nodeType": "VariableDeclaration", + "scope": 1259, + "src": "434:19:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Node_$884_storage_$dyn_storage", + "typeString": "struct GovernanceMock.Node[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 885, + "name": "Node", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 884, + "src": "434:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node" + } + }, + "id": 886, + "length": null, + "nodeType": "ArrayTypeName", + "src": "434:6:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Node_$884_storage_$dyn_storage_ptr", + "typeString": "struct GovernanceMock.Node[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 891, + "name": "nodesOffsetByAddress", + "nodeType": "VariableDeclaration", + "scope": 1259, + "src": "457:54:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_int256_$", + "typeString": "mapping(address => int256)" + }, + "typeName": { + "id": 890, + "keyType": { + "id": 888, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "465:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "457:26:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_int256_$", + "typeString": "mapping(address => int256)" + }, + "valueType": { + "id": 889, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "476:6:4", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 895, + "name": "registered", + "nodeType": "VariableDeclaration", + "scope": 1259, + "src": "516:42:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 894, + "keyType": { + "id": 892, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "524:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "516:24:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 893, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "535:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 898, + "name": "staked", + "nodeType": "VariableDeclaration", + "scope": 1259, + "src": "562:25:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "562:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "586:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 901, + "name": "unstaked", + "nodeType": "VariableDeclaration", + "scope": 1259, + "src": "591:27:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 899, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "591:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "617:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 904, + "name": "minStake", + "nodeType": "VariableDeclaration", + "scope": 1259, + "src": "622:45:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 902, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "622:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31303030303030303030303030303030303030", + "id": 903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "648:19:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1000000000000000000" + }, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 920, + "name": "Register", + "nodeType": "EventDefinition", + "parameters": { + "id": 919, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 906, + "indexed": false, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 920, + "src": "692:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 905, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "692:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 908, + "indexed": false, + "name": "publicKey", + "nodeType": "VariableDeclaration", + "scope": 920, + "src": "711:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 907, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "711:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 910, + "indexed": false, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 920, + "src": "732:11:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 909, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "732:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 912, + "indexed": false, + "name": "email", + "nodeType": "VariableDeclaration", + "scope": 920, + "src": "749:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 911, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "749:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 914, + "indexed": false, + "name": "location", + "nodeType": "VariableDeclaration", + "scope": 920, + "src": "767:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 913, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "767:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 916, + "indexed": false, + "name": "url", + "nodeType": "VariableDeclaration", + "scope": 920, + "src": "788:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 915, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "788:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 918, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 920, + "src": "804:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 917, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "804:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "686:135:4" + }, + "src": "672:150:4" + }, + { + "anonymous": false, + "documentation": null, + "id": 926, + "name": "Staked", + "nodeType": "EventDefinition", + "parameters": { + "id": 925, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 922, + "indexed": false, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 926, + "src": "838:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 921, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "838:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 924, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 926, + "src": "853:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 923, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "853:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "837:31:4" + }, + "src": "825:44:4" + }, + { + "anonymous": false, + "documentation": null, + "id": 932, + "name": "Unstaked", + "nodeType": "EventDefinition", + "parameters": { + "id": 931, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 928, + "indexed": false, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 932, + "src": "887:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 927, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "887:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 930, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 932, + "src": "902:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 929, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "902:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "886:31:4" + }, + "src": "872:46:4" + }, + { + "anonymous": false, + "documentation": null, + "id": 938, + "name": "Withdrawn", + "nodeType": "EventDefinition", + "parameters": { + "id": 937, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 934, + "indexed": false, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 938, + "src": "937:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 933, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "937:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 936, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 938, + "src": "952:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 935, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "952:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "936:31:4" + }, + "src": "921:47:4" + }, + { + "anonymous": false, + "documentation": null, + "id": 944, + "name": "NodeOwnershipTransfered", + "nodeType": "EventDefinition", + "parameters": { + "id": 943, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 940, + "indexed": true, + "name": "NodeAddress", + "nodeType": "VariableDeclaration", + "scope": 944, + "src": "1001:27:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 939, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1001:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 942, + "indexed": true, + "name": "NewOwnerAddress", + "nodeType": "VariableDeclaration", + "scope": 944, + "src": "1030:31:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 941, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1030:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1000:62:4" + }, + "src": "971:92:4" + }, + { + "body": { + "id": 1023, + "nodeType": "Block", + "src": "1232:465:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1246:23:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 958, + "name": "registered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 895, + "src": "1247:10:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 961, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 959, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1258:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1258:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1247:22:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "73656e64657220616464726573732069732072656769737465726564", + "id": 963, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1271:30:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c24a0f5fdd53d2f742399d6417aa70a456bab998090535234528d61ce245c7e6", + "typeString": "literal_string \"sender address is registered\"" + }, + "value": "sender address is registered" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c24a0f5fdd53d2f742399d6417aa70a456bab998090535234528d61ce245c7e6", + "typeString": "literal_string \"sender address is registered\"" + } + ], + "id": 957, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1535, + "src": "1238:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1238:64:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 965, + "nodeType": "ExpressionStatement", + "src": "1238:64:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 966, + "name": "registered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 895, + "src": "1308:10:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 969, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 967, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1319:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1319:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1308:22:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1333:4:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1308:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 972, + "nodeType": "ExpressionStatement", + "src": "1308:29:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 973, + "name": "staked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 898, + "src": "1343:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 974, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1353:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1353:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1343:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 977, + "nodeType": "ExpressionStatement", + "src": "1343:19:4" + }, + { + "assignments": [ + 979 + ], + "declarations": [ + { + "constant": false, + "id": 979, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 1023, + "src": "1369:16:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_memory_ptr", + "typeString": "struct GovernanceMock.Node" + }, + "typeName": { + "contractScope": null, + "id": 978, + "name": "Node", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 884, + "src": "1369:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 994, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 981, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1400:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1400:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 983, + "name": "publicKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 946, + "src": "1418:9:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 984, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1435:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1435:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1452:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "id": 987, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 948, + "src": "1461:4:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 988, + "name": "email", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 950, + "src": "1473:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 989, + "name": "location", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 952, + "src": "1486:8:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 990, + "name": "url", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 954, + "src": "1502:3:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 991, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1513:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1522:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 980, + "name": "Node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 884, + "src": "1388:4:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Node_$884_storage_ptr_$", + "typeString": "type(struct GovernanceMock.Node storage pointer)" + } + }, + "id": 993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1388:141:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_memory", + "typeString": "struct GovernanceMock.Node memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1369:160:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 995, + "name": "nodesOffsetByAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 891, + "src": "1536:20:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_int256_$", + "typeString": "mapping(address => int256)" + } + }, + "id": 998, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 996, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1557:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1557:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1536:32:4", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1000, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "1575:5:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Node_$884_storage_$dyn_storage", + "typeString": "struct GovernanceMock.Node storage ref[] storage ref" + } + }, + "id": 1001, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1575:12:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 999, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1571:3:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": "int" + }, + "id": 1002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1571:17:4", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1536:52:4", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 1004, + "nodeType": "ExpressionStatement", + "src": "1536:52:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1008, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 979, + "src": "1605:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_memory_ptr", + "typeString": "struct GovernanceMock.Node memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Node_$884_memory_ptr", + "typeString": "struct GovernanceMock.Node memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 1005, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "1594:5:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Node_$884_storage_$dyn_storage", + "typeString": "struct GovernanceMock.Node storage ref[] storage ref" + } + }, + "id": 1007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1594:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Node_$884_storage_$returns$_t_uint256_$", + "typeString": "function (struct GovernanceMock.Node storage ref) returns (uint256)" + } + }, + "id": 1009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1594:16:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1010, + "nodeType": "ExpressionStatement", + "src": "1594:16:4" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1012, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1631:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1631:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1014, + "name": "publicKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 946, + "src": "1643:9:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 1015, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 948, + "src": "1654:4:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1016, + "name": "email", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 950, + "src": "1660:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1017, + "name": "location", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 952, + "src": "1667:8:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1018, + "name": "url", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 954, + "src": "1677:3:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1019, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1682:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1682:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1011, + "name": "Register", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 920, + "src": "1622:8:4", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (address,bytes memory,string memory,string memory,string memory,string memory,uint256)" + } + }, + "id": 1021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1622:70:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1022, + "nodeType": "EmitStatement", + "src": "1617:75:4" + } + ] + }, + "documentation": null, + "id": 1024, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "register", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 955, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 946, + "name": "publicKey", + "nodeType": "VariableDeclaration", + "scope": 1024, + "src": "1090:22:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 945, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1090:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 948, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 1024, + "src": "1118:18:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 947, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1118:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 950, + "name": "email", + "nodeType": "VariableDeclaration", + "scope": 1024, + "src": "1142:19:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 949, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1142:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 952, + "name": "location", + "nodeType": "VariableDeclaration", + "scope": 1024, + "src": "1167:22:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 951, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1167:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 954, + "name": "url", + "nodeType": "VariableDeclaration", + "scope": 1024, + "src": "1195:17:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 953, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1195:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1084:132:4" + }, + "returnParameters": { + "id": 956, + "nodeType": "ParameterList", + "parameters": [], + "src": "1232:0:4" + }, + "scope": 1259, + "src": "1067:630:4", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1061, + "nodeType": "Block", + "src": "1733:202:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1027, + "name": "staked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 898, + "src": "1739:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1028, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1749:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1749:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1739:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1031, + "nodeType": "ExpressionStatement", + "src": "1739:19:4" + }, + { + "assignments": [ + 1033 + ], + "declarations": [ + { + "constant": false, + "id": 1033, + "name": "offset", + "nodeType": "VariableDeclaration", + "scope": 1061, + "src": "1765:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1032, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1765:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1040, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1035, + "name": "nodesOffsetByAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 891, + "src": "1787:20:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_int256_$", + "typeString": "mapping(address => int256)" + } + }, + "id": 1038, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1036, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1808:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1808:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1787:32:4", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 1034, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1782:4:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 1039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1782:38:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1765:55:4" + }, + { + "assignments": [ + 1042 + ], + "declarations": [ + { + "constant": false, + "id": 1042, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 1061, + "src": "1826:17:4", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node" + }, + "typeName": { + "contractScope": null, + "id": 1041, + "name": "Node", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 884, + "src": "1826:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1046, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1043, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "1846:5:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Node_$884_storage_$dyn_storage", + "typeString": "struct GovernanceMock.Node storage ref[] storage ref" + } + }, + "id": 1045, + "indexExpression": { + "argumentTypes": null, + "id": 1044, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1033, + "src": "1852:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1846:13:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage", + "typeString": "struct GovernanceMock.Node storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1826:33:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1047, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1042, + "src": "1865:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node storage pointer" + } + }, + "id": 1049, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "staked", + "nodeType": "MemberAccess", + "referencedDeclaration": 869, + "src": "1865:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1050, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1880:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1880:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1865:24:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1053, + "nodeType": "ExpressionStatement", + "src": "1865:24:4" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1055, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1908:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1908:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1057, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1920:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1920:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1054, + "name": "Staked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 926, + "src": "1901:6:4", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1901:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1060, + "nodeType": "EmitStatement", + "src": "1896:34:4" + } + ] + }, + "documentation": null, + "id": 1062, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "stake", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1025, + "nodeType": "ParameterList", + "parameters": [], + "src": "1715:2:4" + }, + "returnParameters": { + "id": 1026, + "nodeType": "ParameterList", + "parameters": [], + "src": "1733:0:4" + }, + "scope": 1259, + "src": "1701:234:4", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1116, + "nodeType": "Block", + "src": "1979:321:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1067, + "name": "staked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 898, + "src": "1985:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 1068, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "1995:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1985:16:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1070, + "nodeType": "ExpressionStatement", + "src": "1985:16:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1071, + "name": "unstaked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 901, + "src": "2007:8:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "id": 1072, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "2019:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2007:18:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1074, + "nodeType": "ExpressionStatement", + "src": "2007:18:4" + }, + { + "assignments": [ + 1076 + ], + "declarations": [ + { + "constant": false, + "id": 1076, + "name": "offset", + "nodeType": "VariableDeclaration", + "scope": 1116, + "src": "2032:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1075, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2032:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1083, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1078, + "name": "nodesOffsetByAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 891, + "src": "2054:20:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_int256_$", + "typeString": "mapping(address => int256)" + } + }, + "id": 1081, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1079, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "2075:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2075:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2054:32:4", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2049:4:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 1082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2049:38:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2032:55:4" + }, + { + "assignments": [ + 1085 + ], + "declarations": [ + { + "constant": false, + "id": 1085, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 1116, + "src": "2093:17:4", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node" + }, + "typeName": { + "contractScope": null, + "id": 1084, + "name": "Node", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 884, + "src": "2093:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1089, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1086, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "2113:5:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Node_$884_storage_$dyn_storage", + "typeString": "struct GovernanceMock.Node storage ref[] storage ref" + } + }, + "id": 1088, + "indexExpression": { + "argumentTypes": null, + "id": 1087, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1076, + "src": "2119:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2113:13:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage", + "typeString": "struct GovernanceMock.Node storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2093:33:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1091, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "2140:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1092, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1085, + "src": "2150:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node storage pointer" + } + }, + "id": 1093, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "staked", + "nodeType": "MemberAccess", + "referencedDeclaration": 869, + "src": "2150:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2140:21:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "756e7374616b6520616d6f756e74206c6172676572207468616e207374616b6564", + "id": 1095, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2163:35:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_da56d3718f884dacb9022ed441314ea8195e22c292243dd590454035e28b7b4b", + "typeString": "literal_string \"unstake amount larger than staked\"" + }, + "value": "unstake amount larger than staked" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_da56d3718f884dacb9022ed441314ea8195e22c292243dd590454035e28b7b4b", + "typeString": "literal_string \"unstake amount larger than staked\"" + } + ], + "id": 1090, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1535, + "src": "2132:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2132:67:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1097, + "nodeType": "ExpressionStatement", + "src": "2132:67:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1098, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1085, + "src": "2205:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node storage pointer" + } + }, + "id": 1100, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "staked", + "nodeType": "MemberAccess", + "referencedDeclaration": 869, + "src": "2205:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 1101, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "2220:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2205:21:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1103, + "nodeType": "ExpressionStatement", + "src": "2205:21:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1104, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1085, + "src": "2232:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node storage pointer" + } + }, + "id": 1106, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "unstaked", + "nodeType": "MemberAccess", + "referencedDeclaration": 881, + "src": "2232:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "id": 1107, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "2249:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2232:23:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1109, + "nodeType": "ExpressionStatement", + "src": "2232:23:4" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1111, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "2276:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2276:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1113, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "2288:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1110, + "name": "Unstaked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 932, + "src": "2267:8:4", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2267:28:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1115, + "nodeType": "EmitStatement", + "src": "2262:33:4" + } + ] + }, + "documentation": null, + "id": 1117, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unstake", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1065, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1064, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1117, + "src": "1956:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1063, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1956:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1955:16:4" + }, + "returnParameters": { + "id": 1066, + "nodeType": "ParameterList", + "parameters": [], + "src": "1979:0:4" + }, + "scope": 1259, + "src": "1939:361:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1181, + "nodeType": "Block", + "src": "2331:376:4", + "statements": [ + { + "assignments": [ + 1121 + ], + "declarations": [ + { + "constant": false, + "id": 1121, + "name": "offset", + "nodeType": "VariableDeclaration", + "scope": 1181, + "src": "2337:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1120, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2337:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1128, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1123, + "name": "nodesOffsetByAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 891, + "src": "2359:20:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_int256_$", + "typeString": "mapping(address => int256)" + } + }, + "id": 1126, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1124, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "2380:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2380:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2359:32:4", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 1122, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2354:4:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 1127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2354:38:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2337:55:4" + }, + { + "assignments": [ + 1130 + ], + "declarations": [ + { + "constant": false, + "id": 1130, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 1181, + "src": "2398:17:4", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node" + }, + "typeName": { + "contractScope": null, + "id": 1129, + "name": "Node", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 884, + "src": "2398:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1134, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1131, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "2418:5:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Node_$884_storage_$dyn_storage", + "typeString": "struct GovernanceMock.Node storage ref[] storage ref" + } + }, + "id": 1133, + "indexExpression": { + "argumentTypes": null, + "id": 1132, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1121, + "src": "2424:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2418:13:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage", + "typeString": "struct GovernanceMock.Node storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2398:33:4" + }, + { + "assignments": [ + 1136 + ], + "declarations": [ + { + "constant": false, + "id": 1136, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1181, + "src": "2437:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2437:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1139, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1137, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1130, + "src": "2454:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node storage pointer" + } + }, + "id": 1138, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "unstaked", + "nodeType": "MemberAccess", + "referencedDeclaration": 881, + "src": "2454:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2437:30:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1141, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1136, + "src": "2481:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2491:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2481:11:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6e6f20756e7374616b65642062616c616e6365", + "id": 1144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2494:21:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b3126609a1a445589de05c565cebb0d4ad64b5fe37801c93e070da34b6dd677f", + "typeString": "literal_string \"no unstaked balance\"" + }, + "value": "no unstaked balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b3126609a1a445589de05c565cebb0d4ad64b5fe37801c93e070da34b6dd677f", + "typeString": "literal_string \"no unstaked balance\"" + } + ], + "id": 1140, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1535, + "src": "2473:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2473:43:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1146, + "nodeType": "ExpressionStatement", + "src": "2473:43:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1149, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1557, + "src": "2538:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernanceMock_$1259", + "typeString": "contract GovernanceMock" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_GovernanceMock_$1259", + "typeString": "contract GovernanceMock" + } + ], + "id": 1148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2530:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2530:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2530:21:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 1152, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1136, + "src": "2555:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2530:31:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "696e76616c69642062616c616e6365", + "id": 1154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2563:17:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_35ae1f9f264101ff0420c267f3d7fc0c52f3e6953c363ae64beeee241247ccde", + "typeString": "literal_string \"invalid balance\"" + }, + "value": "invalid balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_35ae1f9f264101ff0420c267f3d7fc0c52f3e6953c363ae64beeee241247ccde", + "typeString": "literal_string \"invalid balance\"" + } + ], + "id": 1147, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1535, + "src": "2522:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2522:59:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1156, + "nodeType": "ExpressionStatement", + "src": "2522:59:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1157, + "name": "unstaked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 901, + "src": "2588:8:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 1158, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1136, + "src": "2600:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2588:18:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1160, + "nodeType": "ExpressionStatement", + "src": "2588:18:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1161, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1130, + "src": "2612:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node storage pointer" + } + }, + "id": 1163, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "unstaked", + "nodeType": "MemberAccess", + "referencedDeclaration": 881, + "src": "2612:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 1164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2628:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2612:17:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1166, + "nodeType": "ExpressionStatement", + "src": "2612:17:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1172, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1136, + "src": "2655:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1167, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "2635:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2635:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2635:19:4", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2635:27:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1174, + "nodeType": "ExpressionStatement", + "src": "2635:27:4" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1176, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "2683:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2683:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1178, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1136, + "src": "2695:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1175, + "name": "Withdrawn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "2673:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2673:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1180, + "nodeType": "EmitStatement", + "src": "2668:34:4" + } + ] + }, + "documentation": null, + "id": 1182, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1118, + "nodeType": "ParameterList", + "parameters": [], + "src": "2321:2:4" + }, + "returnParameters": { + "id": 1119, + "nodeType": "ParameterList", + "parameters": [], + "src": "2331:0:4" + }, + "scope": 1259, + "src": "2304:403:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1218, + "nodeType": "Block", + "src": "2762:200:4", + "statements": [ + { + "assignments": [ + 1188 + ], + "declarations": [ + { + "constant": false, + "id": 1188, + "name": "offset", + "nodeType": "VariableDeclaration", + "scope": 1218, + "src": "2768:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1187, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2768:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1195, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1190, + "name": "nodesOffsetByAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 891, + "src": "2790:20:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_int256_$", + "typeString": "mapping(address => int256)" + } + }, + "id": 1193, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1191, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "2811:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2811:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2790:32:4", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 1189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2785:4:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 1194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2785:38:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2768:55:4" + }, + { + "assignments": [ + 1197 + ], + "declarations": [ + { + "constant": false, + "id": 1197, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 1218, + "src": "2829:17:4", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node" + }, + "typeName": { + "contractScope": null, + "id": 1196, + "name": "Node", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 884, + "src": "2829:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1201, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1198, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "2849:5:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Node_$884_storage_$dyn_storage", + "typeString": "struct GovernanceMock.Node storage ref[] storage ref" + } + }, + "id": 1200, + "indexExpression": { + "argumentTypes": null, + "id": 1199, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1188, + "src": "2855:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2849:13:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage", + "typeString": "struct GovernanceMock.Node storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2829:33:4" + }, + { + "assignments": [ + 1203 + ], + "declarations": [ + { + "constant": false, + "id": 1203, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1218, + "src": "2868:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1202, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2868:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1206, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1204, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1197, + "src": "2885:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node storage pointer" + } + }, + "id": 1205, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "unstaked", + "nodeType": "MemberAccess", + "referencedDeclaration": 881, + "src": "2885:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2868:30:4" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1207, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1203, + "src": "2911:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2921:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2911:11:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1211, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1557, + "src": "2934:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernanceMock_$1259", + "typeString": "contract GovernanceMock" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_GovernanceMock_$1259", + "typeString": "contract GovernanceMock" + } + ], + "id": 1210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2926:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2926:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2926:21:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 1214, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1203, + "src": "2951:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2926:31:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2911:46:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1186, + "id": 1217, + "nodeType": "Return", + "src": "2904:53:4" + } + ] + }, + "documentation": null, + "id": 1219, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawable", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1183, + "nodeType": "ParameterList", + "parameters": [], + "src": "2732:2:4" + }, + "returnParameters": { + "id": 1186, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1185, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1219, + "src": "2756:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1184, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2756:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2755:6:4" + }, + "scope": 1259, + "src": "2711:251:4", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1245, + "nodeType": "Block", + "src": "3021:131:4", + "statements": [ + { + "assignments": [ + 1225 + ], + "declarations": [ + { + "constant": false, + "id": 1225, + "name": "offset", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "3027:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1224, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3027:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1232, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1227, + "name": "nodesOffsetByAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 891, + "src": "3049:20:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_int256_$", + "typeString": "mapping(address => int256)" + } + }, + "id": 1230, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1228, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "3070:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3070:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3049:32:4", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 1226, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3044:4:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 1231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3044:38:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3027:55:4" + }, + { + "assignments": [ + 1234 + ], + "declarations": [ + { + "constant": false, + "id": 1234, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "3088:17:4", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node" + }, + "typeName": { + "contractScope": null, + "id": 1233, + "name": "Node", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 884, + "src": "3088:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1238, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1235, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "3108:5:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Node_$884_storage_$dyn_storage", + "typeString": "struct GovernanceMock.Node storage ref[] storage ref" + } + }, + "id": 1237, + "indexExpression": { + "argumentTypes": null, + "id": 1236, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1225, + "src": "3114:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3108:13:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage", + "typeString": "struct GovernanceMock.Node storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3088:33:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1239, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1234, + "src": "3127:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node storage pointer" + } + }, + "id": 1241, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "publicKey", + "nodeType": "MemberAccess", + "referencedDeclaration": 867, + "src": "3127:14:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1242, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1221, + "src": "3144:3:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "3127:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "id": 1244, + "nodeType": "ExpressionStatement", + "src": "3127:20:4" + } + ] + }, + "documentation": null, + "id": 1246, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "replaceNodePublicKey", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1222, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1221, + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 1246, + "src": "2996:16:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1220, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2996:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2995:18:4" + }, + "returnParameters": { + "id": 1223, + "nodeType": "ParameterList", + "parameters": [], + "src": "3021:0:4" + }, + "scope": 1259, + "src": "2966:186:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1257, + "nodeType": "Block", + "src": "3212:61:4", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1252, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "3247:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3247:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1254, + "name": "NewOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "3259:8:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1251, + "name": "NodeOwnershipTransfered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "3223:23:4", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 1255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3223:45:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1256, + "nodeType": "EmitStatement", + "src": "3218:50:4" + } + ] + }, + "documentation": null, + "id": 1258, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferNodeOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1249, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1248, + "name": "NewOwner", + "nodeType": "VariableDeclaration", + "scope": 1258, + "src": "3187:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3187:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3186:18:4" + }, + "returnParameters": { + "id": 1250, + "nodeType": "ParameterList", + "parameters": [], + "src": "3212:0:4" + }, + "scope": 1259, + "src": "3156:117:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 1260, + "src": "187:3088:4" + } + ], + "src": "0:3276:4" + }, + "legacyAST": { + "absolutePath": "/Users/aitjcize/Work/tangerine-network/node-staker/contracts/test/GovernanceMock.sol", + "exportedSymbols": { + "GovernanceMock": [ + 1259 + ] + }, + "id": 1260, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 863, + "literals": [ + "solidity", + "^", + "0.5", + ".11" + ], + "nodeType": "PragmaDirective", + "src": "0:24:4" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1259, + "linearizedBaseContracts": [ + 1259 + ], + "name": "GovernanceMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "GovernanceMock.Node", + "id": 884, + "members": [ + { + "constant": false, + "id": 865, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 884, + "src": "234:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 864, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "234:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 867, + "name": "publicKey", + "nodeType": "VariableDeclaration", + "scope": 884, + "src": "253:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 866, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "253:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 869, + "name": "staked", + "nodeType": "VariableDeclaration", + "scope": 884, + "src": "274:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 868, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "274:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 871, + "name": "fined", + "nodeType": "VariableDeclaration", + "scope": 884, + "src": "294:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "294:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 873, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 884, + "src": "313:11:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 872, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "313:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 875, + "name": "email", + "nodeType": "VariableDeclaration", + "scope": 884, + "src": "330:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 874, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "330:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 877, + "name": "location", + "nodeType": "VariableDeclaration", + "scope": 884, + "src": "348:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 876, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "348:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 879, + "name": "url", + "nodeType": "VariableDeclaration", + "scope": 884, + "src": "369:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 878, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "369:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 881, + "name": "unstaked", + "nodeType": "VariableDeclaration", + "scope": 884, + "src": "385:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 880, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "385:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 883, + "name": "unstakedAt", + "nodeType": "VariableDeclaration", + "scope": 884, + "src": "407:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 882, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "407:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Node", + "nodeType": "StructDefinition", + "scope": 1259, + "src": "216:214:4", + "visibility": "public" + }, + { + "constant": false, + "id": 887, + "name": "nodes", + "nodeType": "VariableDeclaration", + "scope": 1259, + "src": "434:19:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Node_$884_storage_$dyn_storage", + "typeString": "struct GovernanceMock.Node[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 885, + "name": "Node", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 884, + "src": "434:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node" + } + }, + "id": 886, + "length": null, + "nodeType": "ArrayTypeName", + "src": "434:6:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Node_$884_storage_$dyn_storage_ptr", + "typeString": "struct GovernanceMock.Node[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 891, + "name": "nodesOffsetByAddress", + "nodeType": "VariableDeclaration", + "scope": 1259, + "src": "457:54:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_int256_$", + "typeString": "mapping(address => int256)" + }, + "typeName": { + "id": 890, + "keyType": { + "id": 888, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "465:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "457:26:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_int256_$", + "typeString": "mapping(address => int256)" + }, + "valueType": { + "id": 889, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "476:6:4", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 895, + "name": "registered", + "nodeType": "VariableDeclaration", + "scope": 1259, + "src": "516:42:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 894, + "keyType": { + "id": 892, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "524:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "516:24:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 893, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "535:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 898, + "name": "staked", + "nodeType": "VariableDeclaration", + "scope": 1259, + "src": "562:25:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "562:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "586:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 901, + "name": "unstaked", + "nodeType": "VariableDeclaration", + "scope": 1259, + "src": "591:27:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 899, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "591:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "617:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 904, + "name": "minStake", + "nodeType": "VariableDeclaration", + "scope": 1259, + "src": "622:45:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 902, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "622:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31303030303030303030303030303030303030", + "id": 903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "648:19:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1000000000000000000" + }, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 920, + "name": "Register", + "nodeType": "EventDefinition", + "parameters": { + "id": 919, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 906, + "indexed": false, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 920, + "src": "692:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 905, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "692:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 908, + "indexed": false, + "name": "publicKey", + "nodeType": "VariableDeclaration", + "scope": 920, + "src": "711:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 907, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "711:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 910, + "indexed": false, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 920, + "src": "732:11:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 909, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "732:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 912, + "indexed": false, + "name": "email", + "nodeType": "VariableDeclaration", + "scope": 920, + "src": "749:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 911, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "749:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 914, + "indexed": false, + "name": "location", + "nodeType": "VariableDeclaration", + "scope": 920, + "src": "767:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 913, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "767:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 916, + "indexed": false, + "name": "url", + "nodeType": "VariableDeclaration", + "scope": 920, + "src": "788:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 915, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "788:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 918, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 920, + "src": "804:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 917, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "804:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "686:135:4" + }, + "src": "672:150:4" + }, + { + "anonymous": false, + "documentation": null, + "id": 926, + "name": "Staked", + "nodeType": "EventDefinition", + "parameters": { + "id": 925, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 922, + "indexed": false, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 926, + "src": "838:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 921, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "838:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 924, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 926, + "src": "853:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 923, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "853:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "837:31:4" + }, + "src": "825:44:4" + }, + { + "anonymous": false, + "documentation": null, + "id": 932, + "name": "Unstaked", + "nodeType": "EventDefinition", + "parameters": { + "id": 931, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 928, + "indexed": false, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 932, + "src": "887:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 927, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "887:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 930, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 932, + "src": "902:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 929, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "902:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "886:31:4" + }, + "src": "872:46:4" + }, + { + "anonymous": false, + "documentation": null, + "id": 938, + "name": "Withdrawn", + "nodeType": "EventDefinition", + "parameters": { + "id": 937, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 934, + "indexed": false, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 938, + "src": "937:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 933, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "937:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 936, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 938, + "src": "952:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 935, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "952:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "936:31:4" + }, + "src": "921:47:4" + }, + { + "anonymous": false, + "documentation": null, + "id": 944, + "name": "NodeOwnershipTransfered", + "nodeType": "EventDefinition", + "parameters": { + "id": 943, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 940, + "indexed": true, + "name": "NodeAddress", + "nodeType": "VariableDeclaration", + "scope": 944, + "src": "1001:27:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 939, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1001:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 942, + "indexed": true, + "name": "NewOwnerAddress", + "nodeType": "VariableDeclaration", + "scope": 944, + "src": "1030:31:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 941, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1030:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1000:62:4" + }, + "src": "971:92:4" + }, + { + "body": { + "id": 1023, + "nodeType": "Block", + "src": "1232:465:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1246:23:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 958, + "name": "registered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 895, + "src": "1247:10:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 961, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 959, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1258:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1258:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1247:22:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "73656e64657220616464726573732069732072656769737465726564", + "id": 963, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1271:30:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c24a0f5fdd53d2f742399d6417aa70a456bab998090535234528d61ce245c7e6", + "typeString": "literal_string \"sender address is registered\"" + }, + "value": "sender address is registered" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c24a0f5fdd53d2f742399d6417aa70a456bab998090535234528d61ce245c7e6", + "typeString": "literal_string \"sender address is registered\"" + } + ], + "id": 957, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1535, + "src": "1238:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1238:64:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 965, + "nodeType": "ExpressionStatement", + "src": "1238:64:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 966, + "name": "registered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 895, + "src": "1308:10:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 969, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 967, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1319:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1319:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1308:22:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1333:4:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1308:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 972, + "nodeType": "ExpressionStatement", + "src": "1308:29:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 973, + "name": "staked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 898, + "src": "1343:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 974, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1353:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1353:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1343:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 977, + "nodeType": "ExpressionStatement", + "src": "1343:19:4" + }, + { + "assignments": [ + 979 + ], + "declarations": [ + { + "constant": false, + "id": 979, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 1023, + "src": "1369:16:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_memory_ptr", + "typeString": "struct GovernanceMock.Node" + }, + "typeName": { + "contractScope": null, + "id": 978, + "name": "Node", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 884, + "src": "1369:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 994, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 981, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1400:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1400:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 983, + "name": "publicKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 946, + "src": "1418:9:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 984, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1435:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1435:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1452:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "id": 987, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 948, + "src": "1461:4:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 988, + "name": "email", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 950, + "src": "1473:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 989, + "name": "location", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 952, + "src": "1486:8:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 990, + "name": "url", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 954, + "src": "1502:3:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 991, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1513:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1522:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 980, + "name": "Node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 884, + "src": "1388:4:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Node_$884_storage_ptr_$", + "typeString": "type(struct GovernanceMock.Node storage pointer)" + } + }, + "id": 993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1388:141:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_memory", + "typeString": "struct GovernanceMock.Node memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1369:160:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 995, + "name": "nodesOffsetByAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 891, + "src": "1536:20:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_int256_$", + "typeString": "mapping(address => int256)" + } + }, + "id": 998, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 996, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1557:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1557:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1536:32:4", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1000, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "1575:5:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Node_$884_storage_$dyn_storage", + "typeString": "struct GovernanceMock.Node storage ref[] storage ref" + } + }, + "id": 1001, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1575:12:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 999, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1571:3:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": "int" + }, + "id": 1002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1571:17:4", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1536:52:4", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 1004, + "nodeType": "ExpressionStatement", + "src": "1536:52:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1008, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 979, + "src": "1605:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_memory_ptr", + "typeString": "struct GovernanceMock.Node memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Node_$884_memory_ptr", + "typeString": "struct GovernanceMock.Node memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 1005, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "1594:5:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Node_$884_storage_$dyn_storage", + "typeString": "struct GovernanceMock.Node storage ref[] storage ref" + } + }, + "id": 1007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1594:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Node_$884_storage_$returns$_t_uint256_$", + "typeString": "function (struct GovernanceMock.Node storage ref) returns (uint256)" + } + }, + "id": 1009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1594:16:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1010, + "nodeType": "ExpressionStatement", + "src": "1594:16:4" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1012, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1631:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1631:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1014, + "name": "publicKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 946, + "src": "1643:9:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 1015, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 948, + "src": "1654:4:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1016, + "name": "email", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 950, + "src": "1660:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1017, + "name": "location", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 952, + "src": "1667:8:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1018, + "name": "url", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 954, + "src": "1677:3:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1019, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1682:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1682:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1011, + "name": "Register", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 920, + "src": "1622:8:4", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (address,bytes memory,string memory,string memory,string memory,string memory,uint256)" + } + }, + "id": 1021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1622:70:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1022, + "nodeType": "EmitStatement", + "src": "1617:75:4" + } + ] + }, + "documentation": null, + "id": 1024, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "register", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 955, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 946, + "name": "publicKey", + "nodeType": "VariableDeclaration", + "scope": 1024, + "src": "1090:22:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 945, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1090:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 948, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 1024, + "src": "1118:18:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 947, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1118:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 950, + "name": "email", + "nodeType": "VariableDeclaration", + "scope": 1024, + "src": "1142:19:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 949, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1142:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 952, + "name": "location", + "nodeType": "VariableDeclaration", + "scope": 1024, + "src": "1167:22:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 951, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1167:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 954, + "name": "url", + "nodeType": "VariableDeclaration", + "scope": 1024, + "src": "1195:17:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 953, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1195:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1084:132:4" + }, + "returnParameters": { + "id": 956, + "nodeType": "ParameterList", + "parameters": [], + "src": "1232:0:4" + }, + "scope": 1259, + "src": "1067:630:4", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1061, + "nodeType": "Block", + "src": "1733:202:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1027, + "name": "staked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 898, + "src": "1739:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1028, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1749:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1749:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1739:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1031, + "nodeType": "ExpressionStatement", + "src": "1739:19:4" + }, + { + "assignments": [ + 1033 + ], + "declarations": [ + { + "constant": false, + "id": 1033, + "name": "offset", + "nodeType": "VariableDeclaration", + "scope": 1061, + "src": "1765:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1032, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1765:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1040, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1035, + "name": "nodesOffsetByAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 891, + "src": "1787:20:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_int256_$", + "typeString": "mapping(address => int256)" + } + }, + "id": 1038, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1036, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1808:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1808:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1787:32:4", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 1034, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1782:4:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 1039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1782:38:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1765:55:4" + }, + { + "assignments": [ + 1042 + ], + "declarations": [ + { + "constant": false, + "id": 1042, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 1061, + "src": "1826:17:4", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node" + }, + "typeName": { + "contractScope": null, + "id": 1041, + "name": "Node", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 884, + "src": "1826:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1046, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1043, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "1846:5:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Node_$884_storage_$dyn_storage", + "typeString": "struct GovernanceMock.Node storage ref[] storage ref" + } + }, + "id": 1045, + "indexExpression": { + "argumentTypes": null, + "id": 1044, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1033, + "src": "1852:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1846:13:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage", + "typeString": "struct GovernanceMock.Node storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1826:33:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1047, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1042, + "src": "1865:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node storage pointer" + } + }, + "id": 1049, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "staked", + "nodeType": "MemberAccess", + "referencedDeclaration": 869, + "src": "1865:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1050, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1880:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1880:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1865:24:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1053, + "nodeType": "ExpressionStatement", + "src": "1865:24:4" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1055, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1908:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1908:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1057, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1920:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1920:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1054, + "name": "Staked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 926, + "src": "1901:6:4", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1901:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1060, + "nodeType": "EmitStatement", + "src": "1896:34:4" + } + ] + }, + "documentation": null, + "id": 1062, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "stake", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1025, + "nodeType": "ParameterList", + "parameters": [], + "src": "1715:2:4" + }, + "returnParameters": { + "id": 1026, + "nodeType": "ParameterList", + "parameters": [], + "src": "1733:0:4" + }, + "scope": 1259, + "src": "1701:234:4", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1116, + "nodeType": "Block", + "src": "1979:321:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1067, + "name": "staked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 898, + "src": "1985:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 1068, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "1995:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1985:16:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1070, + "nodeType": "ExpressionStatement", + "src": "1985:16:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1071, + "name": "unstaked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 901, + "src": "2007:8:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "id": 1072, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "2019:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2007:18:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1074, + "nodeType": "ExpressionStatement", + "src": "2007:18:4" + }, + { + "assignments": [ + 1076 + ], + "declarations": [ + { + "constant": false, + "id": 1076, + "name": "offset", + "nodeType": "VariableDeclaration", + "scope": 1116, + "src": "2032:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1075, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2032:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1083, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1078, + "name": "nodesOffsetByAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 891, + "src": "2054:20:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_int256_$", + "typeString": "mapping(address => int256)" + } + }, + "id": 1081, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1079, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "2075:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2075:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2054:32:4", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2049:4:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 1082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2049:38:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2032:55:4" + }, + { + "assignments": [ + 1085 + ], + "declarations": [ + { + "constant": false, + "id": 1085, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 1116, + "src": "2093:17:4", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node" + }, + "typeName": { + "contractScope": null, + "id": 1084, + "name": "Node", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 884, + "src": "2093:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1089, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1086, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "2113:5:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Node_$884_storage_$dyn_storage", + "typeString": "struct GovernanceMock.Node storage ref[] storage ref" + } + }, + "id": 1088, + "indexExpression": { + "argumentTypes": null, + "id": 1087, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1076, + "src": "2119:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2113:13:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage", + "typeString": "struct GovernanceMock.Node storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2093:33:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1091, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "2140:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1092, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1085, + "src": "2150:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node storage pointer" + } + }, + "id": 1093, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "staked", + "nodeType": "MemberAccess", + "referencedDeclaration": 869, + "src": "2150:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2140:21:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "756e7374616b6520616d6f756e74206c6172676572207468616e207374616b6564", + "id": 1095, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2163:35:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_da56d3718f884dacb9022ed441314ea8195e22c292243dd590454035e28b7b4b", + "typeString": "literal_string \"unstake amount larger than staked\"" + }, + "value": "unstake amount larger than staked" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_da56d3718f884dacb9022ed441314ea8195e22c292243dd590454035e28b7b4b", + "typeString": "literal_string \"unstake amount larger than staked\"" + } + ], + "id": 1090, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1535, + "src": "2132:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2132:67:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1097, + "nodeType": "ExpressionStatement", + "src": "2132:67:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1098, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1085, + "src": "2205:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node storage pointer" + } + }, + "id": 1100, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "staked", + "nodeType": "MemberAccess", + "referencedDeclaration": 869, + "src": "2205:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 1101, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "2220:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2205:21:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1103, + "nodeType": "ExpressionStatement", + "src": "2205:21:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1104, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1085, + "src": "2232:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node storage pointer" + } + }, + "id": 1106, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "unstaked", + "nodeType": "MemberAccess", + "referencedDeclaration": 881, + "src": "2232:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "id": 1107, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "2249:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2232:23:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1109, + "nodeType": "ExpressionStatement", + "src": "2232:23:4" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1111, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "2276:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2276:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1113, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1064, + "src": "2288:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1110, + "name": "Unstaked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 932, + "src": "2267:8:4", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2267:28:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1115, + "nodeType": "EmitStatement", + "src": "2262:33:4" + } + ] + }, + "documentation": null, + "id": 1117, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unstake", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1065, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1064, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1117, + "src": "1956:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1063, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1956:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1955:16:4" + }, + "returnParameters": { + "id": 1066, + "nodeType": "ParameterList", + "parameters": [], + "src": "1979:0:4" + }, + "scope": 1259, + "src": "1939:361:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1181, + "nodeType": "Block", + "src": "2331:376:4", + "statements": [ + { + "assignments": [ + 1121 + ], + "declarations": [ + { + "constant": false, + "id": 1121, + "name": "offset", + "nodeType": "VariableDeclaration", + "scope": 1181, + "src": "2337:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1120, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2337:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1128, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1123, + "name": "nodesOffsetByAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 891, + "src": "2359:20:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_int256_$", + "typeString": "mapping(address => int256)" + } + }, + "id": 1126, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1124, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "2380:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2380:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2359:32:4", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 1122, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2354:4:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 1127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2354:38:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2337:55:4" + }, + { + "assignments": [ + 1130 + ], + "declarations": [ + { + "constant": false, + "id": 1130, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 1181, + "src": "2398:17:4", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node" + }, + "typeName": { + "contractScope": null, + "id": 1129, + "name": "Node", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 884, + "src": "2398:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1134, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1131, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "2418:5:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Node_$884_storage_$dyn_storage", + "typeString": "struct GovernanceMock.Node storage ref[] storage ref" + } + }, + "id": 1133, + "indexExpression": { + "argumentTypes": null, + "id": 1132, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1121, + "src": "2424:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2418:13:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage", + "typeString": "struct GovernanceMock.Node storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2398:33:4" + }, + { + "assignments": [ + 1136 + ], + "declarations": [ + { + "constant": false, + "id": 1136, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1181, + "src": "2437:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2437:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1139, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1137, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1130, + "src": "2454:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node storage pointer" + } + }, + "id": 1138, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "unstaked", + "nodeType": "MemberAccess", + "referencedDeclaration": 881, + "src": "2454:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2437:30:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1141, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1136, + "src": "2481:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2491:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2481:11:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6e6f20756e7374616b65642062616c616e6365", + "id": 1144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2494:21:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b3126609a1a445589de05c565cebb0d4ad64b5fe37801c93e070da34b6dd677f", + "typeString": "literal_string \"no unstaked balance\"" + }, + "value": "no unstaked balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b3126609a1a445589de05c565cebb0d4ad64b5fe37801c93e070da34b6dd677f", + "typeString": "literal_string \"no unstaked balance\"" + } + ], + "id": 1140, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1535, + "src": "2473:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2473:43:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1146, + "nodeType": "ExpressionStatement", + "src": "2473:43:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1149, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1557, + "src": "2538:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernanceMock_$1259", + "typeString": "contract GovernanceMock" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_GovernanceMock_$1259", + "typeString": "contract GovernanceMock" + } + ], + "id": 1148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2530:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2530:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2530:21:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 1152, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1136, + "src": "2555:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2530:31:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "696e76616c69642062616c616e6365", + "id": 1154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2563:17:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_35ae1f9f264101ff0420c267f3d7fc0c52f3e6953c363ae64beeee241247ccde", + "typeString": "literal_string \"invalid balance\"" + }, + "value": "invalid balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_35ae1f9f264101ff0420c267f3d7fc0c52f3e6953c363ae64beeee241247ccde", + "typeString": "literal_string \"invalid balance\"" + } + ], + "id": 1147, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1535, + "src": "2522:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2522:59:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1156, + "nodeType": "ExpressionStatement", + "src": "2522:59:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1157, + "name": "unstaked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 901, + "src": "2588:8:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 1158, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1136, + "src": "2600:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2588:18:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1160, + "nodeType": "ExpressionStatement", + "src": "2588:18:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1161, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1130, + "src": "2612:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node storage pointer" + } + }, + "id": 1163, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "unstaked", + "nodeType": "MemberAccess", + "referencedDeclaration": 881, + "src": "2612:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 1164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2628:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2612:17:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1166, + "nodeType": "ExpressionStatement", + "src": "2612:17:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1172, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1136, + "src": "2655:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1167, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "2635:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2635:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2635:19:4", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2635:27:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1174, + "nodeType": "ExpressionStatement", + "src": "2635:27:4" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1176, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "2683:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2683:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1178, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1136, + "src": "2695:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1175, + "name": "Withdrawn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "2673:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2673:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1180, + "nodeType": "EmitStatement", + "src": "2668:34:4" + } + ] + }, + "documentation": null, + "id": 1182, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1118, + "nodeType": "ParameterList", + "parameters": [], + "src": "2321:2:4" + }, + "returnParameters": { + "id": 1119, + "nodeType": "ParameterList", + "parameters": [], + "src": "2331:0:4" + }, + "scope": 1259, + "src": "2304:403:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1218, + "nodeType": "Block", + "src": "2762:200:4", + "statements": [ + { + "assignments": [ + 1188 + ], + "declarations": [ + { + "constant": false, + "id": 1188, + "name": "offset", + "nodeType": "VariableDeclaration", + "scope": 1218, + "src": "2768:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1187, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2768:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1195, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1190, + "name": "nodesOffsetByAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 891, + "src": "2790:20:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_int256_$", + "typeString": "mapping(address => int256)" + } + }, + "id": 1193, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1191, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "2811:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2811:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2790:32:4", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 1189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2785:4:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 1194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2785:38:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2768:55:4" + }, + { + "assignments": [ + 1197 + ], + "declarations": [ + { + "constant": false, + "id": 1197, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 1218, + "src": "2829:17:4", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node" + }, + "typeName": { + "contractScope": null, + "id": 1196, + "name": "Node", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 884, + "src": "2829:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1201, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1198, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "2849:5:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Node_$884_storage_$dyn_storage", + "typeString": "struct GovernanceMock.Node storage ref[] storage ref" + } + }, + "id": 1200, + "indexExpression": { + "argumentTypes": null, + "id": 1199, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1188, + "src": "2855:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2849:13:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage", + "typeString": "struct GovernanceMock.Node storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2829:33:4" + }, + { + "assignments": [ + 1203 + ], + "declarations": [ + { + "constant": false, + "id": 1203, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1218, + "src": "2868:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1202, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2868:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1206, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1204, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1197, + "src": "2885:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node storage pointer" + } + }, + "id": 1205, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "unstaked", + "nodeType": "MemberAccess", + "referencedDeclaration": 881, + "src": "2885:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2868:30:4" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1207, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1203, + "src": "2911:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2921:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2911:11:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1211, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1557, + "src": "2934:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GovernanceMock_$1259", + "typeString": "contract GovernanceMock" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_GovernanceMock_$1259", + "typeString": "contract GovernanceMock" + } + ], + "id": 1210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2926:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2926:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2926:21:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 1214, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1203, + "src": "2951:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2926:31:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2911:46:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1186, + "id": 1217, + "nodeType": "Return", + "src": "2904:53:4" + } + ] + }, + "documentation": null, + "id": 1219, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawable", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1183, + "nodeType": "ParameterList", + "parameters": [], + "src": "2732:2:4" + }, + "returnParameters": { + "id": 1186, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1185, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1219, + "src": "2756:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1184, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2756:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2755:6:4" + }, + "scope": 1259, + "src": "2711:251:4", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1245, + "nodeType": "Block", + "src": "3021:131:4", + "statements": [ + { + "assignments": [ + 1225 + ], + "declarations": [ + { + "constant": false, + "id": 1225, + "name": "offset", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "3027:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1224, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3027:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1232, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1227, + "name": "nodesOffsetByAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 891, + "src": "3049:20:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_int256_$", + "typeString": "mapping(address => int256)" + } + }, + "id": 1230, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1228, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "3070:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3070:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3049:32:4", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 1226, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3044:4:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 1231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3044:38:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3027:55:4" + }, + { + "assignments": [ + 1234 + ], + "declarations": [ + { + "constant": false, + "id": 1234, + "name": "node", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "3088:17:4", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node" + }, + "typeName": { + "contractScope": null, + "id": 1233, + "name": "Node", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 884, + "src": "3088:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1238, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1235, + "name": "nodes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "3108:5:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Node_$884_storage_$dyn_storage", + "typeString": "struct GovernanceMock.Node storage ref[] storage ref" + } + }, + "id": 1237, + "indexExpression": { + "argumentTypes": null, + "id": 1236, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1225, + "src": "3114:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3108:13:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage", + "typeString": "struct GovernanceMock.Node storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3088:33:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1239, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1234, + "src": "3127:4:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$884_storage_ptr", + "typeString": "struct GovernanceMock.Node storage pointer" + } + }, + "id": 1241, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "publicKey", + "nodeType": "MemberAccess", + "referencedDeclaration": 867, + "src": "3127:14:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1242, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1221, + "src": "3144:3:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "3127:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "id": 1244, + "nodeType": "ExpressionStatement", + "src": "3127:20:4" + } + ] + }, + "documentation": null, + "id": 1246, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "replaceNodePublicKey", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1222, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1221, + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 1246, + "src": "2996:16:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1220, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2996:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2995:18:4" + }, + "returnParameters": { + "id": 1223, + "nodeType": "ParameterList", + "parameters": [], + "src": "3021:0:4" + }, + "scope": 1259, + "src": "2966:186:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1257, + "nodeType": "Block", + "src": "3212:61:4", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1252, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "3247:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3247:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1254, + "name": "NewOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "3259:8:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1251, + "name": "NodeOwnershipTransfered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "3223:23:4", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 1255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3223:45:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1256, + "nodeType": "EmitStatement", + "src": "3218:50:4" + } + ] + }, + "documentation": null, + "id": 1258, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferNodeOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1249, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1248, + "name": "NewOwner", + "nodeType": "VariableDeclaration", + "scope": 1258, + "src": "3187:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3187:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3186:18:4" + }, + "returnParameters": { + "id": 1250, + "nodeType": "ParameterList", + "parameters": [], + "src": "3212:0:4" + }, + "scope": 1259, + "src": "3156:117:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 1260, + "src": "187:3088:4" + } + ], + "src": "0:3276:4" + }, + "compiler": { + "name": "solc", + "version": "0.5.11+commit.c082d0b4.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.11", + "updatedAt": "2019-09-29T03:09:06.443Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +}
\ No newline at end of file diff --git a/build/contracts/Migrations.json b/build/contracts/Migrations.json new file mode 100644 index 0000000..4a0e728 --- /dev/null +++ b/build/contracts/Migrations.json @@ -0,0 +1,1396 @@ +{ + "contractName": "Migrations", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "last_completed_migration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "completed", + "type": "uint256" + } + ], + "name": "setCompleted", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "new_address", + "type": "address" + } + ], + "name": "upgrade", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.11+commit.c082d0b4\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"new_address\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"last_completed_migration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/aitjcize/Work/tangerine-network/node-staker/contracts/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/aitjcize/Work/tangerine-network/node-staker/contracts/Migrations.sol\":{\"keccak256\":\"0xdf42c09ce9adb5888e190bffec1f5ed46efb313314af6b45463fc66493458eda\",\"urls\":[\"bzz-raw://05071f01b13c08b1890a892fe0d2f96e3119eec5e43165e4b4f4f02ae638e7d3\",\"dweb:/ipfs/QmSao6xWUPajiMFgXCe7tpPCaGsrqJG7ydjmKqn1yGhEkj\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b031916331790556101b3806100326000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100795780638da5cb5b14610093578063fdacd576146100b7575b600080fd5b6100776004803603602081101561006757600080fd5b50356001600160a01b03166100d4565b005b610081610151565b60408051918252519081900360200190f35b61009b610157565b604080516001600160a01b039092168252519081900360200190f35b610077600480360360208110156100cd57600080fd5b5035610166565b6000546001600160a01b031633141561014e576000819050806001600160a01b031663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561013457600080fd5b505af1158015610148573d6000803e3d6000fd5b50505050505b50565b60015481565b6000546001600160a01b031681565b6000546001600160a01b031633141561014e5760015556fea265627a7a72315820b5027af3e4971bb75bb6b4b729e24e7f04610fd5f51b4bcb7297c2da2f8d26ab64736f6c634300050b0032", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100795780638da5cb5b14610093578063fdacd576146100b7575b600080fd5b6100776004803603602081101561006757600080fd5b50356001600160a01b03166100d4565b005b610081610151565b60408051918252519081900360200190f35b61009b610157565b604080516001600160a01b039092168252519081900360200190f35b610077600480360360208110156100cd57600080fd5b5035610166565b6000546001600160a01b031633141561014e576000819050806001600160a01b031663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561013457600080fd5b505af1158015610148573d6000803e3d6000fd5b50505050505b50565b60015481565b6000546001600160a01b031681565b6000546001600160a01b031633141561014e5760015556fea265627a7a72315820b5027af3e4971bb75bb6b4b729e24e7f04610fd5f51b4bcb7297c2da2f8d26ab64736f6c634300050b0032", + "sourceMap": "34:480:2:-;;;123:50;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;150:5:2;:18;;-1:-1:-1;;;;;;150:18:2;158:10;150:18;;;34:480;;;;;;", + "deployedSourceMap": "34:480:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34:480:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;347:165;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;347:165:2;-1:-1:-1;;;;;347:165:2;;:::i;:::-;;82:36;;;:::i;:::-;;;;;;;;;;;;;;;;58:20;;;:::i;:::-;;;;-1:-1:-1;;;;;58:20:2;;;;;;;;;;;;;;240:103;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;240:103:2;;:::i;347:165::-;223:5;;-1:-1:-1;;;;;223:5:2;209:10;:19;205:26;;;409:19;442:11;409:45;;460:8;-1:-1:-1;;;;;460:21:2;;482:24;;460:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;460:47:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;460:47:2;;;;230:1;205:26;347:165;:::o;82:36::-;;;;:::o;58:20::-;;;-1:-1:-1;;;;;58:20:2;;:::o;240:103::-;223:5;;-1:-1:-1;;;;;223:5:2;209:10;:19;205:26;;;302:24;:36;240:103::o", + "source": "pragma solidity >=0.4.21 <0.6.0;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n\n function upgrade(address new_address) public restricted {\n Migrations upgraded = Migrations(new_address);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n\n", + "sourcePath": "/Users/aitjcize/Work/tangerine-network/node-staker/contracts/Migrations.sol", + "ast": { + "absolutePath": "/Users/aitjcize/Work/tangerine-network/node-staker/contracts/Migrations.sol", + "exportedSymbols": { + "Migrations": [ + 487 + ] + }, + "id": 488, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 432, + "literals": [ + "solidity", + ">=", + "0.4", + ".21", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:2" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 487, + "linearizedBaseContracts": [ + 487 + ], + "name": "Migrations", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 434, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 487, + "src": "58:20:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 433, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 436, + "name": "last_completed_migration", + "nodeType": "VariableDeclaration", + "scope": 487, + "src": "82:36:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 435, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "82:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 444, + "nodeType": "Block", + "src": "144:29:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 439, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "150:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 440, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "158:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "158:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "150:18:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 443, + "nodeType": "ExpressionStatement", + "src": "150:18:2" + } + ] + }, + "documentation": null, + "id": 445, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 437, + "nodeType": "ParameterList", + "parameters": [], + "src": "134:2:2" + }, + "returnParameters": { + "id": 438, + "nodeType": "ParameterList", + "parameters": [], + "src": "144:0:2" + }, + "scope": 487, + "src": "123:50:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 453, + "nodeType": "Block", + "src": "199:37:2", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 447, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "209:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "209:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 449, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "223:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "209:19:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 452, + "nodeType": "IfStatement", + "src": "205:26:2", + "trueBody": { + "id": 451, + "nodeType": "PlaceholderStatement", + "src": "230:1:2" + } + } + ] + }, + "documentation": null, + "id": 454, + "name": "restricted", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 446, + "nodeType": "ParameterList", + "parameters": [], + "src": "196:2:2" + }, + "src": "177:59:2", + "visibility": "internal" + }, + { + "body": { + "id": 465, + "nodeType": "Block", + "src": "296:47:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 461, + "name": "last_completed_migration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 436, + "src": "302:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 462, + "name": "completed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 456, + "src": "329:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "302:36:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 464, + "nodeType": "ExpressionStatement", + "src": "302:36:2" + } + ] + }, + "documentation": null, + "id": 466, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 459, + "modifierName": { + "argumentTypes": null, + "id": 458, + "name": "restricted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 454, + "src": "285:10:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "285:10:2" + } + ], + "name": "setCompleted", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 457, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 456, + "name": "completed", + "nodeType": "VariableDeclaration", + "scope": 466, + "src": "262:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 455, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "262:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "261:16:2" + }, + "returnParameters": { + "id": 460, + "nodeType": "ParameterList", + "parameters": [], + "src": "296:0:2" + }, + "scope": 487, + "src": "240:103:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 485, + "nodeType": "Block", + "src": "403:109:2", + "statements": [ + { + "assignments": [ + 474 + ], + "declarations": [ + { + "constant": false, + "id": 474, + "name": "upgraded", + "nodeType": "VariableDeclaration", + "scope": 485, + "src": "409:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$487", + "typeString": "contract Migrations" + }, + "typeName": { + "contractScope": null, + "id": 473, + "name": "Migrations", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 487, + "src": "409:10:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$487", + "typeString": "contract Migrations" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 478, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 476, + "name": "new_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 468, + "src": "442:11:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 475, + "name": "Migrations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 487, + "src": "431:10:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Migrations_$487_$", + "typeString": "type(contract Migrations)" + } + }, + "id": 477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "431:23:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$487", + "typeString": "contract Migrations" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "409:45:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 482, + "name": "last_completed_migration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 436, + "src": "482:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 479, + "name": "upgraded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 474, + "src": "460:8:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$487", + "typeString": "contract Migrations" + } + }, + "id": 481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "setCompleted", + "nodeType": "MemberAccess", + "referencedDeclaration": 466, + "src": "460:21:2", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "460:47:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 484, + "nodeType": "ExpressionStatement", + "src": "460:47:2" + } + ] + }, + "documentation": null, + "id": 486, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 471, + "modifierName": { + "argumentTypes": null, + "id": 470, + "name": "restricted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 454, + "src": "392:10:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "392:10:2" + } + ], + "name": "upgrade", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 469, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 468, + "name": "new_address", + "nodeType": "VariableDeclaration", + "scope": 486, + "src": "364:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 467, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "364:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "363:21:2" + }, + "returnParameters": { + "id": 472, + "nodeType": "ParameterList", + "parameters": [], + "src": "403:0:2" + }, + "scope": 487, + "src": "347:165:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 488, + "src": "34:480:2" + } + ], + "src": "0:516:2" + }, + "legacyAST": { + "absolutePath": "/Users/aitjcize/Work/tangerine-network/node-staker/contracts/Migrations.sol", + "exportedSymbols": { + "Migrations": [ + 487 + ] + }, + "id": 488, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 432, + "literals": [ + "solidity", + ">=", + "0.4", + ".21", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:2" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 487, + "linearizedBaseContracts": [ + 487 + ], + "name": "Migrations", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 434, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 487, + "src": "58:20:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 433, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 436, + "name": "last_completed_migration", + "nodeType": "VariableDeclaration", + "scope": 487, + "src": "82:36:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 435, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "82:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 444, + "nodeType": "Block", + "src": "144:29:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 439, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "150:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 440, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "158:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "158:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "150:18:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 443, + "nodeType": "ExpressionStatement", + "src": "150:18:2" + } + ] + }, + "documentation": null, + "id": 445, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 437, + "nodeType": "ParameterList", + "parameters": [], + "src": "134:2:2" + }, + "returnParameters": { + "id": 438, + "nodeType": "ParameterList", + "parameters": [], + "src": "144:0:2" + }, + "scope": 487, + "src": "123:50:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 453, + "nodeType": "Block", + "src": "199:37:2", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 447, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "209:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "209:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 449, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "223:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "209:19:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 452, + "nodeType": "IfStatement", + "src": "205:26:2", + "trueBody": { + "id": 451, + "nodeType": "PlaceholderStatement", + "src": "230:1:2" + } + } + ] + }, + "documentation": null, + "id": 454, + "name": "restricted", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 446, + "nodeType": "ParameterList", + "parameters": [], + "src": "196:2:2" + }, + "src": "177:59:2", + "visibility": "internal" + }, + { + "body": { + "id": 465, + "nodeType": "Block", + "src": "296:47:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 461, + "name": "last_completed_migration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 436, + "src": "302:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 462, + "name": "completed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 456, + "src": "329:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "302:36:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 464, + "nodeType": "ExpressionStatement", + "src": "302:36:2" + } + ] + }, + "documentation": null, + "id": 466, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 459, + "modifierName": { + "argumentTypes": null, + "id": 458, + "name": "restricted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 454, + "src": "285:10:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "285:10:2" + } + ], + "name": "setCompleted", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 457, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 456, + "name": "completed", + "nodeType": "VariableDeclaration", + "scope": 466, + "src": "262:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 455, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "262:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "261:16:2" + }, + "returnParameters": { + "id": 460, + "nodeType": "ParameterList", + "parameters": [], + "src": "296:0:2" + }, + "scope": 487, + "src": "240:103:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 485, + "nodeType": "Block", + "src": "403:109:2", + "statements": [ + { + "assignments": [ + 474 + ], + "declarations": [ + { + "constant": false, + "id": 474, + "name": "upgraded", + "nodeType": "VariableDeclaration", + "scope": 485, + "src": "409:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$487", + "typeString": "contract Migrations" + }, + "typeName": { + "contractScope": null, + "id": 473, + "name": "Migrations", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 487, + "src": "409:10:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$487", + "typeString": "contract Migrations" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 478, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 476, + "name": "new_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 468, + "src": "442:11:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 475, + "name": "Migrations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 487, + "src": "431:10:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Migrations_$487_$", + "typeString": "type(contract Migrations)" + } + }, + "id": 477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "431:23:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$487", + "typeString": "contract Migrations" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "409:45:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 482, + "name": "last_completed_migration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 436, + "src": "482:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 479, + "name": "upgraded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 474, + "src": "460:8:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$487", + "typeString": "contract Migrations" + } + }, + "id": 481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "setCompleted", + "nodeType": "MemberAccess", + "referencedDeclaration": 466, + "src": "460:21:2", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "460:47:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 484, + "nodeType": "ExpressionStatement", + "src": "460:47:2" + } + ] + }, + "documentation": null, + "id": 486, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 471, + "modifierName": { + "argumentTypes": null, + "id": 470, + "name": "restricted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 454, + "src": "392:10:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "392:10:2" + } + ], + "name": "upgrade", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 469, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 468, + "name": "new_address", + "nodeType": "VariableDeclaration", + "scope": 486, + "src": "364:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 467, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "364:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "363:21:2" + }, + "returnParameters": { + "id": 472, + "nodeType": "ParameterList", + "parameters": [], + "src": "403:0:2" + }, + "scope": 487, + "src": "347:165:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 488, + "src": "34:480:2" + } + ], + "src": "0:516:2" + }, + "compiler": { + "name": "solc", + "version": "0.5.11+commit.c082d0b4.Emscripten.clang" + }, + "networks": { + "411": { + "events": {}, + "links": {}, + "address": "0x0082Bf992f11C28EAA9072a768883956814828c8", + "transactionHash": "0xe339e49e9a0bbc506bc045b4de5d8023d4baed1bc9a905a90f9bcf35026c40c1" + } + }, + "schemaVersion": "3.0.11", + "updatedAt": "2019-09-29T03:11:52.546Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +}
\ No newline at end of file diff --git a/build/contracts/NodeStaker.json b/build/contracts/NodeStaker.json new file mode 100644 index 0000000..353fd96 --- /dev/null +++ b/build/contracts/NodeStaker.json @@ -0,0 +1,10076 @@ +{ + "contractName": "NodeStaker", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "registered", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "availableUnstakeAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isFoundation", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_address", + "type": "address" + } + ], + "name": "setFoundationAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vested", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "publicKey", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "email", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "location", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "url", + "type": "string" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "NodeRegister", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "NodeDeposited", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "NodeVested", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "NodeWithdrawn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes", + "name": "oldKey", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "newKey", + "type": "bytes" + } + ], + "name": "NodePublicKeyReplaced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "UnstakedByFoundation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "OwnershipTranferedByFoundation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "getStakedAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getUnstakedAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes", + "name": "publicKey", + "type": "bytes" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "email", + "type": "string" + }, + { + "internalType": "string", + "name": "location", + "type": "string" + }, + { + "internalType": "string", + "name": "url", + "type": "string" + } + ], + "name": "register", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "withdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes", + "name": "key", + "type": "bytes" + } + ], + "name": "replaceNodePublicKey", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnershipByFoundation", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "unstakeByFoundation", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "vest", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.11+commit.c082d0b4\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"registered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"key\",\"type\":\"bytes\"}],\"name\":\"replaceNodePublicKey\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"vest\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"availableUnstakeAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unstakeByFoundation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getStakedAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getUnstakedAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"email\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"}],\"name\":\"register\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isFoundation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnershipByFoundation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setFoundationAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"vested\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"email\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"NodeRegister\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NodeDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NodeVested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NodeWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"oldKey\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"newKey\",\"type\":\"bytes\"}],\"name\":\"NodePublicKeyReplaced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UnstakedByFoundation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTranferedByFoundation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"isOwner()\":{\"return\":\"true if `msg.sender` is the owner of the contract.\"},\"owner()\":{\"return\":\"the address of the owner.\"},\"register(bytes,string,string,string,string)\":{\"details\":\"register a node\"},\"renounceOwnership()\":{\"details\":\"Allows the current owner to relinquish control of the contract.\"},\"replaceNodePublicKey(bytes)\":{\"details\":\"replace node public key\"},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to transfer control of the contract to a newOwner.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}},\"transferOwnershipByFoundation(address)\":{\"details\":\"transfer node ownership\"},\"unstakeByFoundation(uint256)\":{\"details\":\"unstake by foundation\"},\"vest(uint256)\":{\"details\":\"vest\"},\"withdraw()\":{\"details\":\"withdraw balance\"}}},\"userdoc\":{\"methods\":{\"renounceOwnership()\":{\"notice\":\"Renouncing to ownership will leave the contract without an owner. It will not be possible to call the functions with the `onlyOwner` modifier anymore.\"},\"unstakeByFoundation(uint256)\":{\"notice\":\"only can unstake vested amount\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/aitjcize/Work/tangerine-network/node-staker/contracts/NodeStaker.sol\":\"NodeStaker\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/aitjcize/Work/tangerine-network/node-staker/contracts/FoundationOwnable.sol\":{\"keccak256\":\"0xf7a0313191c80af18efbb2c914fa12bf5a96fb5a43c20c21371f67bcaf449bcf\",\"urls\":[\"bzz-raw://6bc9950f402bb1654e0ab1b1357fa857f6bd6e8a5863b9ca7e59d97b51ebd1ab\",\"dweb:/ipfs/QmeWak99q7rfSZzV79n5GhFQZTeZHhkoV4Loxw6sFmiQC4\"]},\"/Users/aitjcize/Work/tangerine-network/node-staker/contracts/Governance.sol\":{\"keccak256\":\"0xcfdc3785ac2c5c1937e80ca46b030d083952a66f22732cd80e440cc45675ea62\",\"urls\":[\"bzz-raw://5f33f67e58c7ddc0f100cd2fbe89f2a0a0169bda17742a3d633df62a7921d051\",\"dweb:/ipfs/QmSHtHd9VBagDzc4FaKRZ56pZkZ9Nu1AA7YjwyokhFRU5q\"]},\"/Users/aitjcize/Work/tangerine-network/node-staker/contracts/NodeStaker.sol\":{\"keccak256\":\"0x2e7b39e18d5a0a27afee23974ec54491286ece6f89c12818ee67829a4e5be905\",\"urls\":[\"bzz-raw://aeb7693cf5be3214117b4949c90e9dee3b8bce27f1bf9ffaa8952eb20faacffe\",\"dweb:/ipfs/Qmc15ZPPcRK54dDnVMfXiTE8abdbdSrcX3kwjtFjVuENVm\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x965012d27b4262d7a41f5028cbb30c51ebd9ecd4be8fb30380aaa7a3c64fbc8b\",\"urls\":[\"bzz-raw://1eb493553b27efd46c231a836a83ce50d215639feb97b4aac9f301d0fd034ff5\",\"dweb:/ipfs/QmbMdvSXcqGKxeeYvzF3VrWpoHQyVzMXBhzhAokF2Gdymv\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0x980de387a1a020a498f53d00f89fecebb12c949a17e8f160093c0303ede2b786\",\"urls\":[\"bzz-raw://f07a2c393caa85f62f0aaa461e3edd50aa59371d4209778ba0558d7f8b4b856c\",\"dweb:/ipfs/QmeN3ZiYGSjCnQFeYaJNgoXjF9eDue1g3e9pqManRkeBtV\"]}},\"version\":1}", + "bytecode": "0x60806040819052600280546001600160a01b031990811673246fcde58581e2754f215a523c0718c4bfc8041f179091556000805490911633178082556001600160a01b0316917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600180546001600160a01b031916331790556123a88061008b6000396000f3fe6080604052600436106100fe5760003560e01c80638f32d59b11610095578063d392a7d511610064578063d392a7d5146105f0578063e97b387414610605578063f2fde38b14610638578063f41377ca1461066b578063fea5657c1461069e576100fe565b80638f32d59b146102ec578063a4e15db914610301578063b244fdcb14610316578063d242f4cc1461032b576100fe565b80636d6c12f3116100d15780636d6c12f314610255578063715018a61461027c57806375fc0e0d146102915780638da5cb5b146102bb576100fe565b80632de40ce31461013a5780633ccfd60b146101635780633f007c201461017a5780636a760b801461022b575b6040805133815234602082015281517f47a6374f7d50799673b068330af87c22b7a43b4d8ac57b66965556967d814ea0929181900390910190a1005b34801561014657600080fd5b5061014f6106b3565b604080519115158252519081900360200190f35b34801561016f57600080fd5b506101786106c3565b005b34801561018657600080fd5b506101786004803603602081101561019d57600080fd5b810190602081018135600160201b8111156101b757600080fd5b8201836020820111156101c957600080fd5b803590602001918460018302840111600160201b831117156101ea57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061087e945050505050565b34801561023757600080fd5b506101786004803603602081101561024e57600080fd5b5035610f7c565b34801561026157600080fd5b5061026a61107c565b60408051918252519081900360200190f35b34801561028857600080fd5b50610178611082565b34801561029d57600080fd5b50610178600480360360208110156102b457600080fd5b50356110dd565b3480156102c757600080fd5b506102d061126c565b604080516001600160a01b039092168252519081900360200190f35b3480156102f857600080fd5b5061014f61127b565b34801561030d57600080fd5b5061026a61128c565b34801561032257600080fd5b5061026a611710565b34801561033757600080fd5b50610178600480360360a081101561034e57600080fd5b810190602081018135600160201b81111561036857600080fd5b82018360208201111561037a57600080fd5b803590602001918460018302840111600160201b8311171561039b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156103ed57600080fd5b8201836020820111156103ff57600080fd5b803590602001918460018302840111600160201b8311171561042057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561047257600080fd5b82018360208201111561048457600080fd5b803590602001918460018302840111600160201b831117156104a557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156104f757600080fd5b82018360208201111561050957600080fd5b803590602001918460018302840111600160201b8311171561052a57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561057c57600080fd5b82018360208201111561058e57600080fd5b803590602001918460018302840111600160201b831117156105af57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611b97945050505050565b3480156105fc57600080fd5b5061014f61214a565b34801561061157600080fd5b506101786004803603602081101561062857600080fd5b50356001600160a01b031661215b565b34801561064457600080fd5b506101786004803603602081101561065b57600080fd5b50356001600160a01b0316612204565b34801561067757600080fd5b506101786004803603602081101561068e57600080fd5b50356001600160a01b0316612221565b3480156106aa57600080fd5b5061026a61228e565b600254600160a01b900460ff1681565b6106cb61127b565b6106d457600080fd5b600254600160a01b900460ff16610727576040805162461bcd60e51b81526020600482015260126024820152711b9bdd081c9959da5cdd195c9959081e595d60721b604482015290519081900360640190fd5b600260009054906101000a90046001600160a01b03166001600160a01b031663501883016040518163ffffffff1660e01b815260040160206040518083038186803b15801561077557600080fd5b505afa158015610789573d6000803e3d6000fd5b505050506040513d602081101561079f57600080fd5b50511561080f57600260009054906101000a90046001600160a01b03166001600160a01b0316633ccfd60b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107f657600080fd5b505af115801561080a573d6000803e3d6000fd5b505050505b604051303190339082156108fc029083906000818181858888f1935050505015801561083f573d6000803e3d6000fd5b50604080513381526020810183905281517f9f1245572fa226a27329c7a7ed7ea272cda61da69552acd8bb7bef5677d08367929181900390910190a150565b61088661127b565b61088f57600080fd5b600254600160a01b900460ff166108e2576040805162461bcd60e51b81526020600482015260126024820152711b9bdd081c9959da5cdd195c9959081e595d60721b604482015290519081900360640190fd5b60025460408051638503112360e01b815230600482015290516060926000926001600160a01b0390911691638503112391602480820192602092909190829003018186803b15801561093357600080fd5b505afa158015610947573d6000803e3d6000fd5b505050506040513d602081101561095d57600080fd5b5051600254604080516238a78560e71b81526004810184905290519293506001600160a01b0390911691631c53c28091602480820192600092909190829003018186803b1580156109ad57600080fd5b505afa1580156109c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101408110156109eb57600080fd5b815160208301805160405192949293830192919084600160201b821115610a1157600080fd5b908301906020820185811115610a2657600080fd5b8251600160201b811182820188101715610a3f57600080fd5b82525081516020918201929091019080838360005b83811015610a6c578181015183820152602001610a54565b50505050905090810190601f168015610a995780820380516001836020036101000a031916815260200191505b50604081815260208301519083015160609093018051919593949293929184600160201b821115610ac957600080fd5b908301906020820185811115610ade57600080fd5b8251600160201b811182820188101715610af757600080fd5b82525081516020918201929091019080838360005b83811015610b24578181015183820152602001610b0c565b50505050905090810190601f168015610b515780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115610b7357600080fd5b908301906020820185811115610b8857600080fd5b8251600160201b811182820188101715610ba157600080fd5b82525081516020918201929091019080838360005b83811015610bce578181015183820152602001610bb6565b50505050905090810190601f168015610bfb5780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115610c1d57600080fd5b908301906020820185811115610c3257600080fd5b8251600160201b811182820188101715610c4b57600080fd5b82525081516020918201929091019080838360005b83811015610c78578181015183820152602001610c60565b50505050905090810190601f168015610ca55780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115610cc757600080fd5b908301906020820185811115610cdc57600080fd5b8251600160201b811182820188101715610cf557600080fd5b82525081516020918201929091019080838360005b83811015610d22578181015183820152602001610d0a565b50505050905090810190601f168015610d4f5780820380516001836020036101000a031916815260200191505b5060405260200180519060200190929190805190602001909291905050509091929394959697985088985090919293949596509091929394955090919293945090919293509091925090915090505080925050600260009054906101000a90046001600160a01b03166001600160a01b0316633f007c20846040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e13578181015183820152602001610dfb565b50505050905090810190601f168015610e405780820380516001836020036101000a031916815260200191505b5092505050600060405180830381600087803b158015610e5f57600080fd5b505af1158015610e73573d6000803e3d6000fd5b505050507f2a886948c8f577e57fd34e5888c9b134e579ddaaeabac3cb20ead075782f17db8284604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610edb578181015183820152602001610ec3565b50505050905090810190601f168015610f085780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610f3b578181015183820152602001610f23565b50505050905090810190601f168015610f685780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b610f8461214a565b610fc7576040805162461bcd60e51b815260206004820152600f60248201526e37b7363c903337bab73230ba34b7b760891b604482015290519081900360640190fd5b600254600160a01b900460ff1661101a576040805162461bcd60e51b81526020600482015260126024820152711b9bdd081c9959da5cdd195c9959081e595d60721b604482015290519081900360640190fd5b60035461102d908263ffffffff61229416565b600355600454611043908263ffffffff61229416565b6004556040805182815290517fa7f17da00ac7401519320391a010c46adcec80f542c7783c14b2fde4afe380539181900360200190a150565b60045481565b61108a61127b565b61109357600080fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6110e561214a565b611128576040805162461bcd60e51b815260206004820152600f60248201526e37b7363c903337bab73230ba34b7b760891b604482015290519081900360640190fd5b600254600160a01b900460ff1661117b576040805162461bcd60e51b81526020600482015260126024820152711b9bdd081c9959da5cdd195c9959081e595d60721b604482015290519081900360640190fd5b6004548111156111bc5760405162461bcd60e51b81526004018080602001828103825260438152602001806123316043913960600191505060405180910390fd5b6004546111cf908263ffffffff6122ad16565b50600254604080516305c2fbcf60e31b81526004810184905290516001600160a01b0390921691632e17de789160248082019260009290919082900301818387803b15801561121d57600080fd5b505af1158015611231573d6000803e3d6000fd5b50506040805184815290517f78db5ae4d05ddd56ed1b359714d67cf8b55a5ed64a3d6783c0372f3cefe9e2089350908190036020019150a150565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b60025460408051638503112360e01b8152306004820152905160009283926001600160a01b0390911691638503112391602480820192602092909190829003018186803b1580156112dc57600080fd5b505afa1580156112f0573d6000803e3d6000fd5b505050506040513d602081101561130657600080fd5b5051600254604080516238a78560e71b81526004810184905290519293506000926001600160a01b0390921691631c53c280916024808201928692909190829003018186803b15801561135857600080fd5b505afa15801561136c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261014081101561139657600080fd5b815160208301805160405192949293830192919084600160201b8211156113bc57600080fd5b9083019060208201858111156113d157600080fd5b8251600160201b8111828201881017156113ea57600080fd5b82525081516020918201929091019080838360005b838110156114175781810151838201526020016113ff565b50505050905090810190601f1680156114445780820380516001836020036101000a031916815260200191505b50604081815260208301519083015160609093018051919593949293929184600160201b82111561147457600080fd5b90830190602082018581111561148957600080fd5b8251600160201b8111828201881017156114a257600080fd5b82525081516020918201929091019080838360005b838110156114cf5781810151838201526020016114b7565b50505050905090810190601f1680156114fc5780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b82111561151e57600080fd5b90830190602082018581111561153357600080fd5b8251600160201b81118282018810171561154c57600080fd5b82525081516020918201929091019080838360005b83811015611579578181015183820152602001611561565b50505050905090810190601f1680156115a65780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b8211156115c857600080fd5b9083019060208201858111156115dd57600080fd5b8251600160201b8111828201881017156115f657600080fd5b82525081516020918201929091019080838360005b8381101561162357818101518382015260200161160b565b50505050905090810190601f1680156116505780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b82111561167257600080fd5b90830190602082018581111561168757600080fd5b8251600160201b8111828201881017156116a057600080fd5b82525081516020918201929091019080838360005b838110156116cd5781810151838201526020016116b5565b50505050905090810190601f1680156116fa5780820380516001836020036101000a031916815260200191505b5060405250969b50505050505050505050505090565b60025460408051638503112360e01b8152306004820152905160009283926001600160a01b0390911691638503112391602480820192602092909190829003018186803b15801561176057600080fd5b505afa158015611774573d6000803e3d6000fd5b505050506040513d602081101561178a57600080fd5b5051600254604080516238a78560e71b81526004810184905290519293506000926001600160a01b0390921691631c53c280916024808201928692909190829003018186803b1580156117dc57600080fd5b505afa1580156117f0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261014081101561181a57600080fd5b815160208301805160405192949293830192919084600160201b82111561184057600080fd5b90830190602082018581111561185557600080fd5b8251600160201b81118282018810171561186e57600080fd5b82525081516020918201929091019080838360005b8381101561189b578181015183820152602001611883565b50505050905090810190601f1680156118c85780820380516001836020036101000a031916815260200191505b50604081815260208301519083015160609093018051919593949293929184600160201b8211156118f857600080fd5b90830190602082018581111561190d57600080fd5b8251600160201b81118282018810171561192657600080fd5b82525081516020918201929091019080838360005b8381101561195357818101518382015260200161193b565b50505050905090810190601f1680156119805780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b8211156119a257600080fd5b9083019060208201858111156119b757600080fd5b8251600160201b8111828201881017156119d057600080fd5b82525081516020918201929091019080838360005b838110156119fd5781810151838201526020016119e5565b50505050905090810190601f168015611a2a5780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115611a4c57600080fd5b908301906020820185811115611a6157600080fd5b8251600160201b811182820188101715611a7a57600080fd5b82525081516020918201929091019080838360005b83811015611aa7578181015183820152602001611a8f565b50505050905090810190601f168015611ad45780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115611af657600080fd5b908301906020820185811115611b0b57600080fd5b8251600160201b811182820188101715611b2457600080fd5b82525081516020918201929091019080838360005b83811015611b51578181015183820152602001611b39565b50505050905090810190601f168015611b7e5780820380516001836020036101000a031916815260200191505b50604052602001519c5050505050505050505050505090565b611b9f61127b565b611ba857600080fd5b600254600160a01b900460ff1615611bfc576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e481c9959da5cdd195c995960721b604482015290519081900360640190fd5b60025460408051631bad9e0560e11b815290516000926001600160a01b03169163375b3c0a916004808301926020929190829003018186803b158015611c4157600080fd5b505afa158015611c55573d6000803e3d6000fd5b505050506040513d6020811015611c6b57600080fd5b5051600254604051633490bd3360e21b815260a060048201908152895160a483015289519394506001600160a01b039092169263d242f4cc9285928b928b928b928b928b92918291602482019160448101916064820191608481019160c49091019060208d019080838360005b83811015611cf0578181015183820152602001611cd8565b50505050905090810190601f168015611d1d5780820380516001836020036101000a031916815260200191505b5086810385528a5181528a516020918201918c019080838360005b83811015611d50578181015183820152602001611d38565b50505050905090810190601f168015611d7d5780820380516001836020036101000a031916815260200191505b5086810384528951815289516020918201918b019080838360005b83811015611db0578181015183820152602001611d98565b50505050905090810190601f168015611ddd5780820380516001836020036101000a031916815260200191505b5086810383528851815288516020918201918a019080838360005b83811015611e10578181015183820152602001611df8565b50505050905090810190601f168015611e3d5780820380516001836020036101000a031916815260200191505b50868103825287518152875160209182019189019080838360005b83811015611e70578181015183820152602001611e58565b50505050905090810190601f168015611e9d5780820380516001836020036101000a031916815260200191505b509a50505050505050505050506000604051808303818588803b158015611ec357600080fd5b505af1158015611ed7573d6000803e3d6000fd5b50506002805460ff60a01b1916600160a01b1790555050604080513380825260c0820185905260e060208084018281528c51928501929092528b517f4d0296a31b4182dca6aff087582c284441743a09fbc7484015f5b57cb6801f8e965092948c948c948c948c948c948c9493908401916060850191608086019160a08701916101008801918e019080838360005b83811015611f7e578181015183820152602001611f66565b50505050905090810190601f168015611fab5780820380516001836020036101000a031916815260200191505b5086810385528b5181528b516020918201918d019080838360005b83811015611fde578181015183820152602001611fc6565b50505050905090810190601f16801561200b5780820380516001836020036101000a031916815260200191505b5086810384528a5181528a516020918201918c019080838360005b8381101561203e578181015183820152602001612026565b50505050905090810190601f16801561206b5780820380516001836020036101000a031916815260200191505b5086810383528951815289516020918201918b019080838360005b8381101561209e578181015183820152602001612086565b50505050905090810190601f1680156120cb5780820380516001836020036101000a031916815260200191505b5086810382528851815288516020918201918a019080838360005b838110156120fe5781810151838201526020016120e6565b50505050905090810190601f16801561212b5780820380516001836020036101000a031916815260200191505b509c5050505050505050505050505060405180910390a1505050505050565b6001546001600160a01b0316331490565b61216361214a565b6121a6576040805162461bcd60e51b815260206004820152600f60248201526e37b7363c903337bab73230ba34b7b760891b604482015290519081900360640190fd5b60006121b061126c565b90506121bb826122c2565b604080516001600160a01b0380841682528416602082015281517ffe459a7f10652ddcfe92820200e4635f93262667763531372e5bc42e56ec7c9b929181900390910190a15050565b61220c61127b565b61221557600080fd5b61221e816122c2565b50565b61222961214a565b61226c576040805162461bcd60e51b815260206004820152600f60248201526e37b7363c903337bab73230ba34b7b760891b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60035481565b6000828201838110156122a657600080fd5b9392505050565b6000828211156122bc57600080fd5b50900390565b6001600160a01b0381166122d557600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe756e7374616b696e6720616d6f756e742073686f756c64206e6f742062652067726561746572207468616e20617661696c61626c65556e7374616b65416d6f756e742ea265627a7a7231582098ec4cc44baa73fb87c6aaf60182c2dc71374051e4adc40bf8cbfdd0dcf009db64736f6c634300050b0032", + "deployedBytecode": "0x6080604052600436106100fe5760003560e01c80638f32d59b11610095578063d392a7d511610064578063d392a7d5146105f0578063e97b387414610605578063f2fde38b14610638578063f41377ca1461066b578063fea5657c1461069e576100fe565b80638f32d59b146102ec578063a4e15db914610301578063b244fdcb14610316578063d242f4cc1461032b576100fe565b80636d6c12f3116100d15780636d6c12f314610255578063715018a61461027c57806375fc0e0d146102915780638da5cb5b146102bb576100fe565b80632de40ce31461013a5780633ccfd60b146101635780633f007c201461017a5780636a760b801461022b575b6040805133815234602082015281517f47a6374f7d50799673b068330af87c22b7a43b4d8ac57b66965556967d814ea0929181900390910190a1005b34801561014657600080fd5b5061014f6106b3565b604080519115158252519081900360200190f35b34801561016f57600080fd5b506101786106c3565b005b34801561018657600080fd5b506101786004803603602081101561019d57600080fd5b810190602081018135600160201b8111156101b757600080fd5b8201836020820111156101c957600080fd5b803590602001918460018302840111600160201b831117156101ea57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061087e945050505050565b34801561023757600080fd5b506101786004803603602081101561024e57600080fd5b5035610f7c565b34801561026157600080fd5b5061026a61107c565b60408051918252519081900360200190f35b34801561028857600080fd5b50610178611082565b34801561029d57600080fd5b50610178600480360360208110156102b457600080fd5b50356110dd565b3480156102c757600080fd5b506102d061126c565b604080516001600160a01b039092168252519081900360200190f35b3480156102f857600080fd5b5061014f61127b565b34801561030d57600080fd5b5061026a61128c565b34801561032257600080fd5b5061026a611710565b34801561033757600080fd5b50610178600480360360a081101561034e57600080fd5b810190602081018135600160201b81111561036857600080fd5b82018360208201111561037a57600080fd5b803590602001918460018302840111600160201b8311171561039b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156103ed57600080fd5b8201836020820111156103ff57600080fd5b803590602001918460018302840111600160201b8311171561042057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561047257600080fd5b82018360208201111561048457600080fd5b803590602001918460018302840111600160201b831117156104a557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156104f757600080fd5b82018360208201111561050957600080fd5b803590602001918460018302840111600160201b8311171561052a57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561057c57600080fd5b82018360208201111561058e57600080fd5b803590602001918460018302840111600160201b831117156105af57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611b97945050505050565b3480156105fc57600080fd5b5061014f61214a565b34801561061157600080fd5b506101786004803603602081101561062857600080fd5b50356001600160a01b031661215b565b34801561064457600080fd5b506101786004803603602081101561065b57600080fd5b50356001600160a01b0316612204565b34801561067757600080fd5b506101786004803603602081101561068e57600080fd5b50356001600160a01b0316612221565b3480156106aa57600080fd5b5061026a61228e565b600254600160a01b900460ff1681565b6106cb61127b565b6106d457600080fd5b600254600160a01b900460ff16610727576040805162461bcd60e51b81526020600482015260126024820152711b9bdd081c9959da5cdd195c9959081e595d60721b604482015290519081900360640190fd5b600260009054906101000a90046001600160a01b03166001600160a01b031663501883016040518163ffffffff1660e01b815260040160206040518083038186803b15801561077557600080fd5b505afa158015610789573d6000803e3d6000fd5b505050506040513d602081101561079f57600080fd5b50511561080f57600260009054906101000a90046001600160a01b03166001600160a01b0316633ccfd60b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107f657600080fd5b505af115801561080a573d6000803e3d6000fd5b505050505b604051303190339082156108fc029083906000818181858888f1935050505015801561083f573d6000803e3d6000fd5b50604080513381526020810183905281517f9f1245572fa226a27329c7a7ed7ea272cda61da69552acd8bb7bef5677d08367929181900390910190a150565b61088661127b565b61088f57600080fd5b600254600160a01b900460ff166108e2576040805162461bcd60e51b81526020600482015260126024820152711b9bdd081c9959da5cdd195c9959081e595d60721b604482015290519081900360640190fd5b60025460408051638503112360e01b815230600482015290516060926000926001600160a01b0390911691638503112391602480820192602092909190829003018186803b15801561093357600080fd5b505afa158015610947573d6000803e3d6000fd5b505050506040513d602081101561095d57600080fd5b5051600254604080516238a78560e71b81526004810184905290519293506001600160a01b0390911691631c53c28091602480820192600092909190829003018186803b1580156109ad57600080fd5b505afa1580156109c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101408110156109eb57600080fd5b815160208301805160405192949293830192919084600160201b821115610a1157600080fd5b908301906020820185811115610a2657600080fd5b8251600160201b811182820188101715610a3f57600080fd5b82525081516020918201929091019080838360005b83811015610a6c578181015183820152602001610a54565b50505050905090810190601f168015610a995780820380516001836020036101000a031916815260200191505b50604081815260208301519083015160609093018051919593949293929184600160201b821115610ac957600080fd5b908301906020820185811115610ade57600080fd5b8251600160201b811182820188101715610af757600080fd5b82525081516020918201929091019080838360005b83811015610b24578181015183820152602001610b0c565b50505050905090810190601f168015610b515780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115610b7357600080fd5b908301906020820185811115610b8857600080fd5b8251600160201b811182820188101715610ba157600080fd5b82525081516020918201929091019080838360005b83811015610bce578181015183820152602001610bb6565b50505050905090810190601f168015610bfb5780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115610c1d57600080fd5b908301906020820185811115610c3257600080fd5b8251600160201b811182820188101715610c4b57600080fd5b82525081516020918201929091019080838360005b83811015610c78578181015183820152602001610c60565b50505050905090810190601f168015610ca55780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115610cc757600080fd5b908301906020820185811115610cdc57600080fd5b8251600160201b811182820188101715610cf557600080fd5b82525081516020918201929091019080838360005b83811015610d22578181015183820152602001610d0a565b50505050905090810190601f168015610d4f5780820380516001836020036101000a031916815260200191505b5060405260200180519060200190929190805190602001909291905050509091929394959697985088985090919293949596509091929394955090919293945090919293509091925090915090505080925050600260009054906101000a90046001600160a01b03166001600160a01b0316633f007c20846040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e13578181015183820152602001610dfb565b50505050905090810190601f168015610e405780820380516001836020036101000a031916815260200191505b5092505050600060405180830381600087803b158015610e5f57600080fd5b505af1158015610e73573d6000803e3d6000fd5b505050507f2a886948c8f577e57fd34e5888c9b134e579ddaaeabac3cb20ead075782f17db8284604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610edb578181015183820152602001610ec3565b50505050905090810190601f168015610f085780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610f3b578181015183820152602001610f23565b50505050905090810190601f168015610f685780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b610f8461214a565b610fc7576040805162461bcd60e51b815260206004820152600f60248201526e37b7363c903337bab73230ba34b7b760891b604482015290519081900360640190fd5b600254600160a01b900460ff1661101a576040805162461bcd60e51b81526020600482015260126024820152711b9bdd081c9959da5cdd195c9959081e595d60721b604482015290519081900360640190fd5b60035461102d908263ffffffff61229416565b600355600454611043908263ffffffff61229416565b6004556040805182815290517fa7f17da00ac7401519320391a010c46adcec80f542c7783c14b2fde4afe380539181900360200190a150565b60045481565b61108a61127b565b61109357600080fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6110e561214a565b611128576040805162461bcd60e51b815260206004820152600f60248201526e37b7363c903337bab73230ba34b7b760891b604482015290519081900360640190fd5b600254600160a01b900460ff1661117b576040805162461bcd60e51b81526020600482015260126024820152711b9bdd081c9959da5cdd195c9959081e595d60721b604482015290519081900360640190fd5b6004548111156111bc5760405162461bcd60e51b81526004018080602001828103825260438152602001806123316043913960600191505060405180910390fd5b6004546111cf908263ffffffff6122ad16565b50600254604080516305c2fbcf60e31b81526004810184905290516001600160a01b0390921691632e17de789160248082019260009290919082900301818387803b15801561121d57600080fd5b505af1158015611231573d6000803e3d6000fd5b50506040805184815290517f78db5ae4d05ddd56ed1b359714d67cf8b55a5ed64a3d6783c0372f3cefe9e2089350908190036020019150a150565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b60025460408051638503112360e01b8152306004820152905160009283926001600160a01b0390911691638503112391602480820192602092909190829003018186803b1580156112dc57600080fd5b505afa1580156112f0573d6000803e3d6000fd5b505050506040513d602081101561130657600080fd5b5051600254604080516238a78560e71b81526004810184905290519293506000926001600160a01b0390921691631c53c280916024808201928692909190829003018186803b15801561135857600080fd5b505afa15801561136c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261014081101561139657600080fd5b815160208301805160405192949293830192919084600160201b8211156113bc57600080fd5b9083019060208201858111156113d157600080fd5b8251600160201b8111828201881017156113ea57600080fd5b82525081516020918201929091019080838360005b838110156114175781810151838201526020016113ff565b50505050905090810190601f1680156114445780820380516001836020036101000a031916815260200191505b50604081815260208301519083015160609093018051919593949293929184600160201b82111561147457600080fd5b90830190602082018581111561148957600080fd5b8251600160201b8111828201881017156114a257600080fd5b82525081516020918201929091019080838360005b838110156114cf5781810151838201526020016114b7565b50505050905090810190601f1680156114fc5780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b82111561151e57600080fd5b90830190602082018581111561153357600080fd5b8251600160201b81118282018810171561154c57600080fd5b82525081516020918201929091019080838360005b83811015611579578181015183820152602001611561565b50505050905090810190601f1680156115a65780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b8211156115c857600080fd5b9083019060208201858111156115dd57600080fd5b8251600160201b8111828201881017156115f657600080fd5b82525081516020918201929091019080838360005b8381101561162357818101518382015260200161160b565b50505050905090810190601f1680156116505780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b82111561167257600080fd5b90830190602082018581111561168757600080fd5b8251600160201b8111828201881017156116a057600080fd5b82525081516020918201929091019080838360005b838110156116cd5781810151838201526020016116b5565b50505050905090810190601f1680156116fa5780820380516001836020036101000a031916815260200191505b5060405250969b50505050505050505050505090565b60025460408051638503112360e01b8152306004820152905160009283926001600160a01b0390911691638503112391602480820192602092909190829003018186803b15801561176057600080fd5b505afa158015611774573d6000803e3d6000fd5b505050506040513d602081101561178a57600080fd5b5051600254604080516238a78560e71b81526004810184905290519293506000926001600160a01b0390921691631c53c280916024808201928692909190829003018186803b1580156117dc57600080fd5b505afa1580156117f0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261014081101561181a57600080fd5b815160208301805160405192949293830192919084600160201b82111561184057600080fd5b90830190602082018581111561185557600080fd5b8251600160201b81118282018810171561186e57600080fd5b82525081516020918201929091019080838360005b8381101561189b578181015183820152602001611883565b50505050905090810190601f1680156118c85780820380516001836020036101000a031916815260200191505b50604081815260208301519083015160609093018051919593949293929184600160201b8211156118f857600080fd5b90830190602082018581111561190d57600080fd5b8251600160201b81118282018810171561192657600080fd5b82525081516020918201929091019080838360005b8381101561195357818101518382015260200161193b565b50505050905090810190601f1680156119805780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b8211156119a257600080fd5b9083019060208201858111156119b757600080fd5b8251600160201b8111828201881017156119d057600080fd5b82525081516020918201929091019080838360005b838110156119fd5781810151838201526020016119e5565b50505050905090810190601f168015611a2a5780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115611a4c57600080fd5b908301906020820185811115611a6157600080fd5b8251600160201b811182820188101715611a7a57600080fd5b82525081516020918201929091019080838360005b83811015611aa7578181015183820152602001611a8f565b50505050905090810190601f168015611ad45780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115611af657600080fd5b908301906020820185811115611b0b57600080fd5b8251600160201b811182820188101715611b2457600080fd5b82525081516020918201929091019080838360005b83811015611b51578181015183820152602001611b39565b50505050905090810190601f168015611b7e5780820380516001836020036101000a031916815260200191505b50604052602001519c5050505050505050505050505090565b611b9f61127b565b611ba857600080fd5b600254600160a01b900460ff1615611bfc576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e481c9959da5cdd195c995960721b604482015290519081900360640190fd5b60025460408051631bad9e0560e11b815290516000926001600160a01b03169163375b3c0a916004808301926020929190829003018186803b158015611c4157600080fd5b505afa158015611c55573d6000803e3d6000fd5b505050506040513d6020811015611c6b57600080fd5b5051600254604051633490bd3360e21b815260a060048201908152895160a483015289519394506001600160a01b039092169263d242f4cc9285928b928b928b928b928b92918291602482019160448101916064820191608481019160c49091019060208d019080838360005b83811015611cf0578181015183820152602001611cd8565b50505050905090810190601f168015611d1d5780820380516001836020036101000a031916815260200191505b5086810385528a5181528a516020918201918c019080838360005b83811015611d50578181015183820152602001611d38565b50505050905090810190601f168015611d7d5780820380516001836020036101000a031916815260200191505b5086810384528951815289516020918201918b019080838360005b83811015611db0578181015183820152602001611d98565b50505050905090810190601f168015611ddd5780820380516001836020036101000a031916815260200191505b5086810383528851815288516020918201918a019080838360005b83811015611e10578181015183820152602001611df8565b50505050905090810190601f168015611e3d5780820380516001836020036101000a031916815260200191505b50868103825287518152875160209182019189019080838360005b83811015611e70578181015183820152602001611e58565b50505050905090810190601f168015611e9d5780820380516001836020036101000a031916815260200191505b509a50505050505050505050506000604051808303818588803b158015611ec357600080fd5b505af1158015611ed7573d6000803e3d6000fd5b50506002805460ff60a01b1916600160a01b1790555050604080513380825260c0820185905260e060208084018281528c51928501929092528b517f4d0296a31b4182dca6aff087582c284441743a09fbc7484015f5b57cb6801f8e965092948c948c948c948c948c948c9493908401916060850191608086019160a08701916101008801918e019080838360005b83811015611f7e578181015183820152602001611f66565b50505050905090810190601f168015611fab5780820380516001836020036101000a031916815260200191505b5086810385528b5181528b516020918201918d019080838360005b83811015611fde578181015183820152602001611fc6565b50505050905090810190601f16801561200b5780820380516001836020036101000a031916815260200191505b5086810384528a5181528a516020918201918c019080838360005b8381101561203e578181015183820152602001612026565b50505050905090810190601f16801561206b5780820380516001836020036101000a031916815260200191505b5086810383528951815289516020918201918b019080838360005b8381101561209e578181015183820152602001612086565b50505050905090810190601f1680156120cb5780820380516001836020036101000a031916815260200191505b5086810382528851815288516020918201918a019080838360005b838110156120fe5781810151838201526020016120e6565b50505050905090810190601f16801561212b5780820380516001836020036101000a031916815260200191505b509c5050505050505050505050505060405180910390a1505050505050565b6001546001600160a01b0316331490565b61216361214a565b6121a6576040805162461bcd60e51b815260206004820152600f60248201526e37b7363c903337bab73230ba34b7b760891b604482015290519081900360640190fd5b60006121b061126c565b90506121bb826122c2565b604080516001600160a01b0380841682528416602082015281517ffe459a7f10652ddcfe92820200e4635f93262667763531372e5bc42e56ec7c9b929181900390910190a15050565b61220c61127b565b61221557600080fd5b61221e816122c2565b50565b61222961214a565b61226c576040805162461bcd60e51b815260206004820152600f60248201526e37b7363c903337bab73230ba34b7b760891b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60035481565b6000828201838110156122a657600080fd5b9392505050565b6000828211156122bc57600080fd5b50900390565b6001600160a01b0381166122d557600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe756e7374616b696e6720616d6f756e742073686f756c64206e6f742062652067726561746572207468616e20617661696c61626c65556e7374616b65416d6f756e742ea265627a7a7231582098ec4cc44baa73fb87c6aaf60182c2dc71374051e4adc40bf8cbfdd0dcf009db64736f6c634300050b0032", + "sourceMap": "212:3794:3:-;;;;;298:71;;;-1:-1:-1;;;;;;298:71:3;;;326:42;298:71;;;;;515:19:7;;;;;524:10;515:19;;;;-1:-1:-1;;;;;582:6:7;;549:40;;298:71:3;;549:40:7;114:17:0;:30;;-1:-1:-1;;;;;;114:30:0;134:10;114:30;;;212:3794:3;;;;;;", + "deployedSourceMap": "212:3794:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1251:36;;;1265:10;1251:36;;1277:9;1251:36;;;;;;;;;;;;;;;;;212:3794;373:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;373:22:3;;;:::i;:::-;;;;;;;;;;;;;;;;;;2432:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2432:222:3;;;:::i;:::-;;2706:304;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2706:304:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2706:304:3;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2706:304:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2706:304:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2706:304:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2706:304:3;;-1:-1:-1;2706:304:3;;-1:-1:-1;;;;;2706:304:3:i;3804:200::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3804:200:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3804:200:3;;:::i;424:37::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;424:37:3;;;:::i;:::-;;;;;;;;;;;;;;;;1347:137:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1347:137:7;;;:::i;3462:309:3:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3462:309:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3462:309:3;;:::i;659:77:7:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;659:77:7;;;:::i;:::-;;;;-1:-1:-1;;;;;659:77:7;;;;;;;;;;;;;;979:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;979:90:7;;;:::i;1371:215:3:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1371:215:3;;;:::i;1590:223::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1590:223:3;;;:::i;1948:439::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1948:439:3;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1948:439:3;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;1948:439:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1948:439:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1948:439:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1948:439:3;;;;;;;;-1:-1:-1;1948:439:3;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;1948:439:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1948:439:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1948:439:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1948:439:3;;;;;;;;-1:-1:-1;1948:439:3;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;1948:439:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1948:439:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1948:439:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1948:439:3;;;;;;;;-1:-1:-1;1948:439:3;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;1948:439:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1948:439:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1948:439:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1948:439:3;;;;;;;;-1:-1:-1;1948:439:3;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;1948:439:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1948:439:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1948:439:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1948:439:3;;-1:-1:-1;1948:439:3;;-1:-1:-1;;;;;1948:439:3:i;335:100:0:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;335:100:0;;;:::i;3156:211:3:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3156:211:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3156:211:3;-1:-1:-1;;;;;3156:211:3;;:::i;1655:107:7:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1655:107:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1655:107:7;-1:-1:-1;;;;;1655:107:7;;:::i;439:109:0:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;439:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;439:109:0;-1:-1:-1;;;;;439:109:0;;:::i;399:21:3:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;399:21:3;;;:::i;373:22::-;;;-1:-1:-1;;;373:22:3;;;;;:::o;2432:222::-;863:9:7;:7;:9::i;:::-;855:18;;;;;;1064:10:3;;-1:-1:-1;;;1064:10:3;;;;1056:41;;;;;-1:-1:-1;;;1056:41:3;;;;;;;;;;;;-1:-1:-1;;;1056:41:3;;;;;;;;;;;;;;;2494:3;;;;;;;;;-1:-1:-1;;;;;2494:3:3;-1:-1:-1;;;;;2494:16:3;;:18;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2494:18:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2494:18:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2494:18:3;2490:38;;;2514:3;;;;;;;;;-1:-1:-1;;;;;2514:3:3;-1:-1:-1;;;;;2514:12:3;;:14;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2514:14:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2514:14:3;;;;2490:38;2578:27;;2559:4;2551:21;;2578:10;;:27;;;;;2551:21;;2534:14;2578:27;2534:14;2578:27;2551:21;2578:10;:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;2616:33:3;;;2630:10;2616:33;;;;;;;;;;;;;;;;;;;;;1103:1;2432:222::o;2706:304::-;863:9:7;:7;:9::i;:::-;855:18;;;;;;1064:10:3;;-1:-1:-1;;;1064:10:3;;;;1056:41;;;;;-1:-1:-1;;;1056:41:3;;;;;;;;;;;;-1:-1:-1;;;1056:41:3;;;;;;;;;;;;;;;2842:3;;:39;;;-1:-1:-1;;;2842:39:3;;2875:4;2842:39;;;;;;2792:19;;2817:14;;-1:-1:-1;;;;;2842:3:3;;;;:24;;:39;;;;;;;;;;;;;;;:3;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;2842:39:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2842:39:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2842:39:3;2908:3;;:17;;;-1:-1:-1;;;2908:17:3;;;;;;;;;;2842:39;;-1:-1:-1;;;;;;2908:3:3;;;;:9;;:17;;;;;:3;;:17;;;;;;;;:3;:17;;;5:2:-1;;;;30:1;27;20:12;5:2;2908:17:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2908:17:3;;;;;;39:16:-1;36:1;17:17;2:54;101:4;2908:17:3;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;2908:17:3;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;2908:17:3;;420:4:-1;411:14;;;;2908:17:3;;;;;411:14:-1;2908:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2908:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2908:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;2908:17:3;;420:4:-1;411:14;;;;2908:17:3;;;;;411:14:-1;2908:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2908:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;2908:17:3;;420:4:-1;411:14;;;;2908:17:3;;;;;411:14:-1;2908:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2908:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;2908:17:3;;420:4:-1;411:14;;;;2908:17:3;;;;;411:14:-1;2908:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2908:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;2908:17:3;;420:4:-1;411:14;;;;2908:17:3;;;;;411:14:-1;2908:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2908:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2888:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2931:3;;;;;;;;;-1:-1:-1;;;;;2931:3:3;-1:-1:-1;;;;;2931:24:3;;2956:3;2931:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2931:29:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2931:29:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2931:29:3;;;;2971:34;2993:6;3001:3;2971:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2971:34:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2971:34:3;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2971:34:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1103:1;;2706:304;:::o;3804:200::-;239:14:0;:12;:14::i;:::-;231:42;;;;;-1:-1:-1;;;231:42:0;;;;;;;;;;;;-1:-1:-1;;;231:42:0;;;;;;;;;;;;;;;1064:10:3;;-1:-1:-1;;;1064:10:3;;;;1056:41;;;;;-1:-1:-1;;;1056:41:3;;;;;;;;;;;;-1:-1:-1;;;1056:41:3;;;;;;;;;;;;;;;3886:6;;:18;;3897:6;3886:18;:10;:18;:::i;:::-;3877:6;:27;3936:22;;:34;;3963:6;3936:34;:26;:34;:::i;:::-;3911:22;:59;3981:18;;;;;;;;;;;;;;;;;3804:200;:::o;424:37::-;;;;:::o;1347:137:7:-;863:9;:7;:9::i;:::-;855:18;;;;;;1445:1;1429:6;;1408:40;;-1:-1:-1;;;;;1429:6:7;;;;1408:40;;1445:1;;1408:40;1475:1;1458:19;;-1:-1:-1;;;;;;1458:19:7;;;1347:137::o;3462:309:3:-;239:14:0;:12;:14::i;:::-;231:42;;;;;-1:-1:-1;;;231:42:0;;;;;;;;;;;;-1:-1:-1;;;231:42:0;;;;;;;;;;;;;;;1064:10:3;;-1:-1:-1;;;1064:10:3;;;;1056:41;;;;;-1:-1:-1;;;1056:41:3;;;;;;;;;;;;-1:-1:-1;;;1056:41:3;;;;;;;;;;;;;;;3568:22;;3558:6;:32;;3550:112;;;;-1:-1:-1;;;3550:112:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3668:22;;:34;;3695:6;3668:34;:26;:34;:::i;:::-;-1:-1:-1;3708:3:3;;:19;;;-1:-1:-1;;;3708:19:3;;;;;;;;;;-1:-1:-1;;;;;3708:3:3;;;;:11;;:19;;;;;:3;;:19;;;;;;;;:3;;:19;;;5:2:-1;;;;30:1;27;20:12;5:2;3708:19:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3738:28:3;;;;;;;;;;-1:-1:-1;3738:28:3;;;;;;;-1:-1:-1;3738:28:3;3462:309;:::o;659:77:7:-;697:7;723:6;-1:-1:-1;;;;;723:6:7;659:77;:::o;979:90::-;1019:4;1056:6;-1:-1:-1;;;;;1056:6:7;1042:10;:20;;979:90::o;1371:215:3:-;1459:3;;:39;;;-1:-1:-1;;;1459:39:3;;1492:4;1459:39;;;;;;1419:7;;;;-1:-1:-1;;;;;1459:3:3;;;;:24;;:39;;;;;;;;;;;;;;;:3;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;1459:39:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1459:39:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1459:39:3;1545:3;;:17;;;-1:-1:-1;;;1545:17:3;;;;;;;;;;1459:39;;-1:-1:-1;1505:14:3;;-1:-1:-1;;;;;1545:3:3;;;;:9;;:17;;;;;1505:14;;1545:17;;;;;;;;:3;:17;;;5:2:-1;;;;30:1;27;20:12;5:2;1545:17:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1545:17:3;;;;;;39:16:-1;36:1;17:17;2:54;101:4;1545:17:3;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;1545:17:3;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;1545:17:3;;420:4:-1;411:14;;;;1545:17:3;;;;;411:14:-1;1545:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1545:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1545:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;1545:17:3;;420:4:-1;411:14;;;;1545:17:3;;;;;411:14:-1;1545:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1545:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;1545:17:3;;420:4:-1;411:14;;;;1545:17:3;;;;;411:14:-1;1545:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1545:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;1545:17:3;;420:4:-1;411:14;;;;1545:17:3;;;;;411:14:-1;1545:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1545:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;1545:17:3;;420:4:-1;411:14;;;;1545:17:3;;;;;411:14:-1;1545:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1545:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1545:17:3;;-1:-1:-1;1525:37:3;;-1:-1:-1;;;;;;;;;;;;1371:215:3;:::o;1590:223::-;1680:3;;:39;;;-1:-1:-1;;;1680:39:3;;1713:4;1680:39;;;;;;1640:7;;;;-1:-1:-1;;;;;1680:3:3;;;;:24;;:39;;;;;;;;;;;;;;;:3;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;1680:39:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1680:39:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1680:39:3;1770:3;;:17;;;-1:-1:-1;;;1770:17:3;;;;;;;;;;1680:39;;-1:-1:-1;1726:16:3;;-1:-1:-1;;;;;1770:3:3;;;;:9;;:17;;;;;1726:16;;1770:17;;;;;;;;:3;:17;;;5:2:-1;;;;30:1;27;20:12;5:2;1770:17:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1770:17:3;;;;;;39:16:-1;36:1;17:17;2:54;101:4;1770:17:3;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;1770:17:3;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;1770:17:3;;420:4:-1;411:14;;;;1770:17:3;;;;;411:14:-1;1770:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1770:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1770:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;1770:17:3;;420:4:-1;411:14;;;;1770:17:3;;;;;411:14:-1;1770:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1770:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;1770:17:3;;420:4:-1;411:14;;;;1770:17:3;;;;;411:14:-1;1770:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1770:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;1770:17:3;;420:4:-1;411:14;;;;1770:17:3;;;;;411:14:-1;1770:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1770:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;1770:17:3;;420:4:-1;411:14;;;;1770:17:3;;;;;411:14:-1;1770:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1770:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1770:17:3;;;;;;-1:-1:-1;;;;;;;;;;;;;1590:223:3;:::o;1948:439::-;863:9:7;:7;:9::i;:::-;855:18;;;;;;2130:10:3;;-1:-1:-1;;;2130:10:3;;;;2129:11;2121:42;;;;;-1:-1:-1;;;2121:42:3;;;;;;;;;;;;-1:-1:-1;;;2121:42:3;;;;;;;;;;;;;;;2188:3;;:14;;;-1:-1:-1;;;2188:14:3;;;;2169:16;;-1:-1:-1;;;;;2188:3:3;;:12;;:14;;;;;;;;;;;;;;:3;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;2188:14:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2188:14:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2188:14:3;2208:3;;:67;;-1:-1:-1;;;2208:67:3;;;;;;;;;;;;;;;;;2188:14;;-1:-1:-1;;;;;;2208:3:3;;;;:12;;2188:14;;2237:9;;2248:4;;2254:5;;2261:8;;2271:3;;2208:67;;;;;;;;;;;;;;;;;;;;;;;;2188:14;2208:67;;;;;;:3;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2208:67:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2208:67:3;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2208:67:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2208:67:3;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2208:67:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2208:67:3;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2208:67:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2208:67:3;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2208:67:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2208:67:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2281:10:3;:17;;-1:-1:-1;;;;2281:17:3;-1:-1:-1;;;2281:17:3;;;-1:-1:-1;;2309:73:3;;;2322:10;2309:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2322:10:3;;2334:9;;2345:4;;2351:5;;2358:8;;2368:3;;2373:8;;2309:73;;;;;;;;;;;;;;;;;2281:17;2309:73;;;;;;;;;2281:17;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2309:73:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2309:73:3;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2309:73:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2309:73:3;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2309:73:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2309:73:3;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2309:73:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2309:73:3;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2309:73:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;883:1:7;1948:439:3;;;;;:::o;335:100:0:-;413:17;;-1:-1:-1;;;;;413:17:0;399:10;:31;;335:100::o;3156:211:3:-;239:14:0;:12;:14::i;:::-;231:42;;;;;-1:-1:-1;;;231:42:0;;;;;;;;;;;;-1:-1:-1;;;231:42:0;;;;;;;;;;;;;;;3241:16:3;3260:7;:5;:7::i;:::-;3241:26;;3273:28;3292:8;3273:18;:28::i;:::-;3312:50;;;-1:-1:-1;;;;;3312:50:3;;;;;;;;;;;;;;;;;;;;;;;;279:1:0;3156:211:3;:::o;1655:107:7:-;863:9;:7;:9::i;:::-;855:18;;;;;;1727:28;1746:8;1727:18;:28::i;:::-;1655:107;:::o;439:109:0:-;239:14;:12;:14::i;:::-;231:42;;;;;-1:-1:-1;;;231:42:0;;;;;;;;;;;;-1:-1:-1;;;231:42:0;;;;;;;;;;;;;;;515:17;:28;;-1:-1:-1;;;;;;515:28:0;-1:-1:-1;;;;;515:28:0;;;;;;;;;;439:109::o;399:21:3:-;;;;:::o;1431:145:6:-;1489:7;1520:5;;;1543:6;;;;1535:15;;;;;;1568:1;1431:145;-1:-1:-1;;;1431:145:6:o;1205:::-;1263:7;1295:1;1290;:6;;1282:15;;;;;;-1:-1:-1;1319:5:6;;;1205:145::o;1906:183:7:-;-1:-1:-1;;;;;1979:22:7;;1971:31;;;;;;2038:6;;;2017:38;;-1:-1:-1;;;;;2017:38:7;;;;2038:6;;;2017:38;;;2065:6;:17;;-1:-1:-1;;;;;;2065:17:7;-1:-1:-1;;;;;2065:17:7;;;;;;;;;;1906:183::o", + "source": "pragma solidity ^0.5.11;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"./Governance.sol\";\nimport \"./FoundationOwnable.sol\";\n\ncontract NodeStaker is Ownable, FoundationOwnable {\n\n using SafeMath for uint256;\n\n Governance gov = Governance(0x246FcDE58581e2754f215A523C0718C4BFc8041F);\n bool public registered;\n uint256 public vested;\n uint256 public availableUnstakeAmount;\n\n // ------\n // Events\n // ------\n\n event NodeRegister(\n address sender,\n bytes publicKey,\n string name,\n string email,\n string location,\n string url,\n uint256 value\n );\n event NodeDeposited(address sender, uint256 amount);\n event NodeVested(uint256 amount);\n event NodeWithdrawn(address owner, uint256 amount);\n event NodePublicKeyReplaced(bytes oldKey, bytes newKey);\n event UnstakedByFoundation(uint256 amount);\n event OwnershipTranferedByFoundation(address from, address to);\n\n // ---------\n // Modifiers\n // ---------\n\n modifier onlyRegistered() {\n require(registered, \"not registered yet\");\n _;\n }\n\n /**\n * @notice funds from non-governance source will be prorated refund to foundation\n */\n function () external payable {\n emit NodeDeposited(msg.sender, msg.value);\n }\n\n // -------------------\n // Getters and Setters\n // -------------------\n function getStakedAmount() public view returns (uint256) {\n uint256 offset = uint256(gov.nodesOffsetByAddress(address(this)));\n uint256 staked;\n (,,staked,,,,,,,) = gov.nodes(offset);\n return staked;\n }\n\n function getUnstakedAmount() public view returns (uint256) {\n uint256 offset = uint256(gov.nodesOffsetByAddress(address(this)));\n uint256 unstaked;\n (,,,,,,,,unstaked,) = gov.nodes(offset);\n return unstaked;\n }\n\n // ------------------------\n // Node Operation Functions\n // ------------------------\n\n /**\n * @dev register a node\n */\n function register(\n bytes memory publicKey,\n string memory name,\n string memory email,\n string memory location,\n string memory url\n ) public onlyOwner {\n require(!registered, \"already registered\");\n uint256 minStake = gov.minStake();\n gov.register.value(minStake)(publicKey, name, email, location, url);\n registered = true;\n emit NodeRegister(msg.sender, publicKey, name, email, location, url, minStake);\n }\n\n /**\n * @dev withdraw balance\n */\n function withdraw() public onlyOwner onlyRegistered {\n if (gov.withdrawable()) gov.withdraw();\n uint256 amount = address(this).balance;\n msg.sender.transfer(amount);\n emit NodeWithdrawn(msg.sender, amount);\n }\n\n /**\n * @dev replace node public key\n */\n function replaceNodePublicKey(bytes memory key) public onlyOwner onlyRegistered {\n bytes memory oldKey;\n uint256 offset = uint256(gov.nodesOffsetByAddress(address(this)));\n (,oldKey,,,,,,,,) = gov.nodes(offset);\n gov.replaceNodePublicKey(key);\n emit NodePublicKeyReplaced(oldKey, key);\n }\n\n // -------------------------\n // Foundation Only Functions\n // -------------------------\n\n /**\n * @dev transfer node ownership\n */\n function transferOwnershipByFoundation(address newOwner) public onlyFoundation {\n address oldOwner = owner();\n _transferOwnership(newOwner);\n emit OwnershipTranferedByFoundation(oldOwner, newOwner);\n }\n\n /**\n * @dev unstake by foundation\n * @notice only can unstake vested amount\n */\n function unstakeByFoundation(uint256 amount) public onlyFoundation onlyRegistered {\n require(amount <= availableUnstakeAmount, \"unstaking amount should not be greater than availableUnstakeAmount.\");\n availableUnstakeAmount.sub(amount);\n gov.unstake(amount);\n emit UnstakedByFoundation(amount);\n }\n\n /**\n * @dev vest\n */\n function vest(uint256 amount) public onlyFoundation onlyRegistered {\n vested = vested.add(amount); \n availableUnstakeAmount = availableUnstakeAmount.add(amount);\n emit NodeVested(amount);\n }\n}\n", + "sourcePath": "/Users/aitjcize/Work/tangerine-network/node-staker/contracts/NodeStaker.sol", + "ast": { + "absolutePath": "/Users/aitjcize/Work/tangerine-network/node-staker/contracts/NodeStaker.sol", + "exportedSymbols": { + "NodeStaker": [ + 861 + ] + }, + "id": 862, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 489, + "literals": [ + "solidity", + "^", + "0.5", + ".11" + ], + "nodeType": "PragmaDirective", + "src": "0:24:3" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "id": 490, + "nodeType": "ImportDirective", + "scope": 862, + "sourceUnit": 1408, + "src": "26:59:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "id": 491, + "nodeType": "ImportDirective", + "scope": 862, + "sourceUnit": 1517, + "src": "86:63:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/Users/aitjcize/Work/tangerine-network/node-staker/contracts/Governance.sol", + "file": "./Governance.sol", + "id": 492, + "nodeType": "ImportDirective", + "scope": 862, + "sourceUnit": 431, + "src": "150:26:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/Users/aitjcize/Work/tangerine-network/node-staker/contracts/FoundationOwnable.sol", + "file": "./FoundationOwnable.sol", + "id": 493, + "nodeType": "ImportDirective", + "scope": 862, + "sourceUnit": 47, + "src": "177:33:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 494, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1516, + "src": "235:7:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$1516", + "typeString": "contract Ownable" + } + }, + "id": 495, + "nodeType": "InheritanceSpecifier", + "src": "235:7:3" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 496, + "name": "FoundationOwnable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 46, + "src": "244:17:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_FoundationOwnable_$46", + "typeString": "contract FoundationOwnable" + } + }, + "id": 497, + "nodeType": "InheritanceSpecifier", + "src": "244:17:3" + } + ], + "contractDependencies": [ + 46, + 1516 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 861, + "linearizedBaseContracts": [ + 861, + 46, + 1516 + ], + "name": "NodeStaker", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 500, + "libraryName": { + "contractScope": null, + "id": 498, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1407, + "src": "273:8:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$1407", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "267:27:3", + "typeName": { + "id": 499, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "286:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 505, + "name": "gov", + "nodeType": "VariableDeclaration", + "scope": 861, + "src": "298:71:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + }, + "typeName": { + "contractScope": null, + "id": 501, + "name": "Governance", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 430, + "src": "298:10:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307832343646634445353835383165323735346632313541353233433037313843344246633830343146", + "id": 503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "326:42:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "value": "0x246FcDE58581e2754f215A523C0718C4BFc8041F" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 502, + "name": "Governance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 430, + "src": "315:10:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Governance_$430_$", + "typeString": "type(contract Governance)" + } + }, + "id": 504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "315:54:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 507, + "name": "registered", + "nodeType": "VariableDeclaration", + "scope": 861, + "src": "373:22:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 506, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "373:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 509, + "name": "vested", + "nodeType": "VariableDeclaration", + "scope": 861, + "src": "399:21:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 508, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "399:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 511, + "name": "availableUnstakeAmount", + "nodeType": "VariableDeclaration", + "scope": 861, + "src": "424:37:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "424:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 527, + "name": "NodeRegister", + "nodeType": "EventDefinition", + "parameters": { + "id": 526, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 513, + "indexed": false, + "name": "sender", + "nodeType": "VariableDeclaration", + "scope": 527, + "src": "527:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 512, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "527:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 515, + "indexed": false, + "name": "publicKey", + "nodeType": "VariableDeclaration", + "scope": 527, + "src": "547:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 514, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "547:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 517, + "indexed": false, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 527, + "src": "568:11:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 516, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "568:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 519, + "indexed": false, + "name": "email", + "nodeType": "VariableDeclaration", + "scope": 527, + "src": "585:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 518, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "585:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 521, + "indexed": false, + "name": "location", + "nodeType": "VariableDeclaration", + "scope": 527, + "src": "603:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 520, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "603:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 523, + "indexed": false, + "name": "url", + "nodeType": "VariableDeclaration", + "scope": 527, + "src": "624:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 522, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "624:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 525, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 527, + "src": "640:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 524, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "640:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "521:136:3" + }, + "src": "503:155:3" + }, + { + "anonymous": false, + "documentation": null, + "id": 533, + "name": "NodeDeposited", + "nodeType": "EventDefinition", + "parameters": { + "id": 532, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 529, + "indexed": false, + "name": "sender", + "nodeType": "VariableDeclaration", + "scope": 533, + "src": "681:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 528, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "681:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 531, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 533, + "src": "697:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 530, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "697:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "680:32:3" + }, + "src": "661:52:3" + }, + { + "anonymous": false, + "documentation": null, + "id": 537, + "name": "NodeVested", + "nodeType": "EventDefinition", + "parameters": { + "id": 536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 535, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 537, + "src": "733:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 534, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "733:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "732:16:3" + }, + "src": "716:33:3" + }, + { + "anonymous": false, + "documentation": null, + "id": 543, + "name": "NodeWithdrawn", + "nodeType": "EventDefinition", + "parameters": { + "id": 542, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 539, + "indexed": false, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 543, + "src": "772:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 538, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "772:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 541, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 543, + "src": "787:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 540, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "787:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "771:31:3" + }, + "src": "752:51:3" + }, + { + "anonymous": false, + "documentation": null, + "id": 549, + "name": "NodePublicKeyReplaced", + "nodeType": "EventDefinition", + "parameters": { + "id": 548, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 545, + "indexed": false, + "name": "oldKey", + "nodeType": "VariableDeclaration", + "scope": 549, + "src": "834:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 544, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "834:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 547, + "indexed": false, + "name": "newKey", + "nodeType": "VariableDeclaration", + "scope": 549, + "src": "848:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 546, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "848:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "833:28:3" + }, + "src": "806:56:3" + }, + { + "anonymous": false, + "documentation": null, + "id": 553, + "name": "UnstakedByFoundation", + "nodeType": "EventDefinition", + "parameters": { + "id": 552, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 551, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 553, + "src": "892:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 550, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "892:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "891:16:3" + }, + "src": "865:43:3" + }, + { + "anonymous": false, + "documentation": null, + "id": 559, + "name": "OwnershipTranferedByFoundation", + "nodeType": "EventDefinition", + "parameters": { + "id": 558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 555, + "indexed": false, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 559, + "src": "948:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 554, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "948:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 557, + "indexed": false, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 559, + "src": "962:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "962:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "947:26:3" + }, + "src": "911:63:3" + }, + { + "body": { + "id": 567, + "nodeType": "Block", + "src": "1050:59:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 562, + "name": "registered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 507, + "src": "1064:10:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6e6f74207265676973746572656420796574", + "id": 563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1076:20:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c16aaa8f3b2fb22af6aabfa7f0392eed554bc4af8ac4b02f0e9cb83f01994d2b", + "typeString": "literal_string \"not registered yet\"" + }, + "value": "not registered yet" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c16aaa8f3b2fb22af6aabfa7f0392eed554bc4af8ac4b02f0e9cb83f01994d2b", + "typeString": "literal_string \"not registered yet\"" + } + ], + "id": 561, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1535, + "src": "1056:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1056:41:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 565, + "nodeType": "ExpressionStatement", + "src": "1056:41:3" + }, + { + "id": 566, + "nodeType": "PlaceholderStatement", + "src": "1103:1:3" + } + ] + }, + "documentation": null, + "id": 568, + "name": "onlyRegistered", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 560, + "nodeType": "ParameterList", + "parameters": [], + "src": "1047:2:3" + }, + "src": "1024:85:3", + "visibility": "internal" + }, + { + "body": { + "id": 578, + "nodeType": "Block", + "src": "1240:52:3", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 572, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1265:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1265:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 574, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1277:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1277:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 571, + "name": "NodeDeposited", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 533, + "src": "1251:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1251:36:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 577, + "nodeType": "EmitStatement", + "src": "1246:41:3" + } + ] + }, + "documentation": "@notice funds from non-governance source will be prorated refund to foundation", + "id": 579, + "implemented": true, + "kind": "fallback", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 569, + "nodeType": "ParameterList", + "parameters": [], + "src": "1220:2:3" + }, + "returnParameters": { + "id": 570, + "nodeType": "ParameterList", + "parameters": [], + "src": "1240:0:3" + }, + "scope": 861, + "src": "1211:81:3", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 608, + "nodeType": "Block", + "src": "1428:158:3", + "statements": [ + { + "assignments": [ + 585 + ], + "declarations": [ + { + "constant": false, + "id": 585, + "name": "offset", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "1434:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 584, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1434:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 594, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 590, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1555, + "src": "1492:4:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NodeStaker_$861", + "typeString": "contract NodeStaker" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_NodeStaker_$861", + "typeString": "contract NodeStaker" + } + ], + "id": 589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1484:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1484:13:3", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "id": 587, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "1459:3:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "nodesOffsetByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 89, + "src": "1459:24:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_int256_$", + "typeString": "function (address) view external returns (int256)" + } + }, + "id": 592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1459:39:3", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 586, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1451:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1451:48:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1434:65:3" + }, + { + "assignments": [ + 596 + ], + "declarations": [ + { + "constant": false, + "id": 596, + "name": "staked", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "1505:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 595, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1505:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 597, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "1505:14:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + null, + null, + { + "argumentTypes": null, + "id": 598, + "name": "staked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 596, + "src": "1528:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + null, + null, + null, + null, + null, + null, + null + ], + "id": 599, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "1525:17:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$__$_t_uint256_$__$__$__$__$__$__$__$", + "typeString": "tuple(,,uint256,,,,,,,)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 602, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 585, + "src": "1555:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 600, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "1545:3:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "nodes", + "nodeType": "MemberAccess", + "referencedDeclaration": 85, + "src": "1545:9:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$_t_bytes_memory_$_t_uint256_$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_string_memory_$_t_string_memory_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) view external returns (address,bytes memory,uint256,uint256,string memory,string memory,string memory,string memory,uint256,uint256)" + } + }, + "id": 603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1545:17:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_bytes_memory_$_t_uint256_$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_string_memory_$_t_string_memory_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(address,bytes memory,uint256,uint256,string memory,string memory,string memory,string memory,uint256,uint256)" + } + }, + "src": "1525:37:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 605, + "nodeType": "ExpressionStatement", + "src": "1525:37:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 606, + "name": "staked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 596, + "src": "1575:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 583, + "id": 607, + "nodeType": "Return", + "src": "1568:13:3" + } + ] + }, + "documentation": null, + "id": 609, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getStakedAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 580, + "nodeType": "ParameterList", + "parameters": [], + "src": "1395:2:3" + }, + "returnParameters": { + "id": 583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 582, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 609, + "src": "1419:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 581, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1419:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1418:9:3" + }, + "scope": 861, + "src": "1371:215:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 638, + "nodeType": "Block", + "src": "1649:164:3", + "statements": [ + { + "assignments": [ + 615 + ], + "declarations": [ + { + "constant": false, + "id": 615, + "name": "offset", + "nodeType": "VariableDeclaration", + "scope": 638, + "src": "1655:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 614, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1655:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 624, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 620, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1555, + "src": "1713:4:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NodeStaker_$861", + "typeString": "contract NodeStaker" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_NodeStaker_$861", + "typeString": "contract NodeStaker" + } + ], + "id": 619, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1705:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1705:13:3", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "id": 617, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "1680:3:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "nodesOffsetByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 89, + "src": "1680:24:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_int256_$", + "typeString": "function (address) view external returns (int256)" + } + }, + "id": 622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1680:39:3", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1672:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1672:48:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1655:65:3" + }, + { + "assignments": [ + 626 + ], + "declarations": [ + { + "constant": false, + "id": 626, + "name": "unstaked", + "nodeType": "VariableDeclaration", + "scope": 638, + "src": "1726:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 625, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1726:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 627, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "1726:16:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + null, + null, + null, + null, + null, + null, + null, + null, + { + "argumentTypes": null, + "id": 628, + "name": "unstaked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 626, + "src": "1757:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + null + ], + "id": 629, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "1748:19:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$__$__$__$__$__$__$__$_t_uint256_$__$", + "typeString": "tuple(,,,,,,,,uint256,)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 632, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 615, + "src": "1780:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 630, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "1770:3:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "nodes", + "nodeType": "MemberAccess", + "referencedDeclaration": 85, + "src": "1770:9:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$_t_bytes_memory_$_t_uint256_$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_string_memory_$_t_string_memory_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) view external returns (address,bytes memory,uint256,uint256,string memory,string memory,string memory,string memory,uint256,uint256)" + } + }, + "id": 633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1770:17:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_bytes_memory_$_t_uint256_$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_string_memory_$_t_string_memory_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(address,bytes memory,uint256,uint256,string memory,string memory,string memory,string memory,uint256,uint256)" + } + }, + "src": "1748:39:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 635, + "nodeType": "ExpressionStatement", + "src": "1748:39:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 636, + "name": "unstaked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 626, + "src": "1800:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 613, + "id": 637, + "nodeType": "Return", + "src": "1793:15:3" + } + ] + }, + "documentation": null, + "id": 639, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getUnstakedAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 610, + "nodeType": "ParameterList", + "parameters": [], + "src": "1616:2:3" + }, + "returnParameters": { + "id": 613, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 612, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 639, + "src": "1640:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1640:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1639:9:3" + }, + "scope": 861, + "src": "1590:223:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 695, + "nodeType": "Block", + "src": "2115:272:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2129:11:3", + "subExpression": { + "argumentTypes": null, + "id": 655, + "name": "registered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 507, + "src": "2130:10:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "616c72656164792072656769737465726564", + "id": 657, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2142:20:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_269c06100417d6799f278320f8bfa70884ed5db37cbbb03507b2629ec69f83d0", + "typeString": "literal_string \"already registered\"" + }, + "value": "already registered" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_269c06100417d6799f278320f8bfa70884ed5db37cbbb03507b2629ec69f83d0", + "typeString": "literal_string \"already registered\"" + } + ], + "id": 654, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1535, + "src": "2121:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2121:42:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 659, + "nodeType": "ExpressionStatement", + "src": "2121:42:3" + }, + { + "assignments": [ + 661 + ], + "declarations": [ + { + "constant": false, + "id": 661, + "name": "minStake", + "nodeType": "VariableDeclaration", + "scope": 695, + "src": "2169:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2169:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 665, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 662, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "2188:3:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "minStake", + "nodeType": "MemberAccess", + "referencedDeclaration": 142, + "src": "2188:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2188:14:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2169:33:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 673, + "name": "publicKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 641, + "src": "2237:9:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 674, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 643, + "src": "2248:4:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 675, + "name": "email", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 645, + "src": "2254:5:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 676, + "name": "location", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 647, + "src": "2261:8:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 677, + "name": "url", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 649, + "src": "2271:3:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "arguments": [ + { + "argumentTypes": null, + "id": 671, + "name": "minStake", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 661, + "src": "2227:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 666, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "2208:3:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "register", + "nodeType": "MemberAccess", + "referencedDeclaration": 377, + "src": "2208:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bytes memory,string memory,string memory,string memory,string memory) payable external" + } + }, + "id": 670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2208:18:3", + "typeDescriptions": { + "typeIdentifier": "t_function_setvalue_pure$_t_uint256_$returns$_t_function_external_payable$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$value_$", + "typeString": "function (uint256) pure returns (function (bytes memory,string memory,string memory,string memory,string memory) payable external)" + } + }, + "id": 672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2208:28:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$value", + "typeString": "function (bytes memory,string memory,string memory,string memory,string memory) payable external" + } + }, + "id": 678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2208:67:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 679, + "nodeType": "ExpressionStatement", + "src": "2208:67:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 680, + "name": "registered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 507, + "src": "2281:10:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2294:4:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2281:17:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 683, + "nodeType": "ExpressionStatement", + "src": "2281:17:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 685, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "2322:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2322:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 687, + "name": "publicKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 641, + "src": "2334:9:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 688, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 643, + "src": "2345:4:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 689, + "name": "email", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 645, + "src": "2351:5:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 690, + "name": "location", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 647, + "src": "2358:8:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 691, + "name": "url", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 649, + "src": "2368:3:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 692, + "name": "minStake", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 661, + "src": "2373:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 684, + "name": "NodeRegister", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "2309:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (address,bytes memory,string memory,string memory,string memory,string memory,uint256)" + } + }, + "id": 693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2309:73:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 694, + "nodeType": "EmitStatement", + "src": "2304:78:3" + } + ] + }, + "documentation": "@dev register a node", + "id": 696, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 652, + "modifierName": { + "argumentTypes": null, + "id": 651, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1450, + "src": "2105:9:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2105:9:3" + } + ], + "name": "register", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 641, + "name": "publicKey", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1971:22:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 640, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1971:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 643, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1999:18:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 642, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1999:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 645, + "name": "email", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "2023:19:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 644, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2023:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 647, + "name": "location", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "2048:22:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 646, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2048:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 649, + "name": "url", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "2076:17:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 648, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2076:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1965:132:3" + }, + "returnParameters": { + "id": 653, + "nodeType": "ParameterList", + "parameters": [], + "src": "2115:0:3" + }, + "scope": 861, + "src": "1948:439:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 733, + "nodeType": "Block", + "src": "2484:170:3", + "statements": [ + { + "condition": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 703, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "2494:3:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawable", + "nodeType": "MemberAccess", + "referencedDeclaration": 429, + "src": "2494:16:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$", + "typeString": "function () view external returns (bool)" + } + }, + "id": 705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2494:18:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 711, + "nodeType": "IfStatement", + "src": "2490:38:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 706, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "2514:3:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 423, + "src": "2514:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2514:14:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 710, + "nodeType": "ExpressionStatement", + "src": "2514:14:3" + } + }, + { + "assignments": [ + 713 + ], + "declarations": [ + { + "constant": false, + "id": 713, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 733, + "src": "2534:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 712, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2534:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 718, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 715, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1555, + "src": "2559:4:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NodeStaker_$861", + "typeString": "contract NodeStaker" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_NodeStaker_$861", + "typeString": "contract NodeStaker" + } + ], + "id": 714, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2551:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2551:13:3", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2551:21:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2534:38:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 724, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 713, + "src": "2598:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 719, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "2578:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2578:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2578:19:3", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2578:27:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 726, + "nodeType": "ExpressionStatement", + "src": "2578:27:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 728, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "2630:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2630:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 730, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 713, + "src": "2642:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 727, + "name": "NodeWithdrawn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 543, + "src": "2616:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2616:33:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 732, + "nodeType": "EmitStatement", + "src": "2611:38:3" + } + ] + }, + "documentation": "@dev withdraw balance", + "id": 734, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 699, + "modifierName": { + "argumentTypes": null, + "id": 698, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1450, + "src": "2459:9:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2459:9:3" + }, + { + "arguments": null, + "id": 701, + "modifierName": { + "argumentTypes": null, + "id": 700, + "name": "onlyRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 568, + "src": "2469:14:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2469:14:3" + } + ], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 697, + "nodeType": "ParameterList", + "parameters": [], + "src": "2449:2:3" + }, + "returnParameters": { + "id": 702, + "nodeType": "ParameterList", + "parameters": [], + "src": "2484:0:3" + }, + "scope": 861, + "src": "2432:222:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 776, + "nodeType": "Block", + "src": "2786:224:3", + "statements": [ + { + "assignments": [ + 744 + ], + "declarations": [ + { + "constant": false, + "id": 744, + "name": "oldKey", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "2792:19:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 743, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2792:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 745, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "2792:19:3" + }, + { + "assignments": [ + 747 + ], + "declarations": [ + { + "constant": false, + "id": 747, + "name": "offset", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "2817:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 746, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2817:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 756, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 752, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1555, + "src": "2875:4:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NodeStaker_$861", + "typeString": "contract NodeStaker" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_NodeStaker_$861", + "typeString": "contract NodeStaker" + } + ], + "id": 751, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2867:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2867:13:3", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "id": 749, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "2842:3:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "nodesOffsetByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 89, + "src": "2842:24:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_int256_$", + "typeString": "function (address) view external returns (int256)" + } + }, + "id": 754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2842:39:3", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 748, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2834:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2834:48:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2817:65:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + null, + { + "argumentTypes": null, + "id": 757, + "name": "oldKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 744, + "src": "2890:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + null, + null, + null, + null, + null, + null, + null, + null + ], + "id": 758, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "2888:17:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$_t_bytes_memory_ptr_$__$__$__$__$__$__$__$__$", + "typeString": "tuple(,bytes memory,,,,,,,,)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 761, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 747, + "src": "2918:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 759, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "2908:3:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "nodes", + "nodeType": "MemberAccess", + "referencedDeclaration": 85, + "src": "2908:9:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$_t_bytes_memory_$_t_uint256_$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_string_memory_$_t_string_memory_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) view external returns (address,bytes memory,uint256,uint256,string memory,string memory,string memory,string memory,uint256,uint256)" + } + }, + "id": 762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2908:17:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_bytes_memory_$_t_uint256_$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_string_memory_$_t_string_memory_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(address,bytes memory,uint256,uint256,string memory,string memory,string memory,string memory,uint256,uint256)" + } + }, + "src": "2888:37:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 764, + "nodeType": "ExpressionStatement", + "src": "2888:37:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 768, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 736, + "src": "2956:3:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 765, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "2931:3:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "replaceNodePublicKey", + "nodeType": "MemberAccess", + "referencedDeclaration": 383, + "src": "2931:24:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory) external" + } + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2931:29:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 770, + "nodeType": "ExpressionStatement", + "src": "2931:29:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 772, + "name": "oldKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 744, + "src": "2993:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 773, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 736, + "src": "3001:3:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 771, + "name": "NodePublicKeyReplaced", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 549, + "src": "2971:21:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory,bytes memory)" + } + }, + "id": 774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2971:34:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 775, + "nodeType": "EmitStatement", + "src": "2966:39:3" + } + ] + }, + "documentation": "@dev replace node public key", + "id": 777, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 739, + "modifierName": { + "argumentTypes": null, + "id": 738, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1450, + "src": "2761:9:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2761:9:3" + }, + { + "arguments": null, + "id": 741, + "modifierName": { + "argumentTypes": null, + "id": 740, + "name": "onlyRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 568, + "src": "2771:14:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2771:14:3" + } + ], + "name": "replaceNodePublicKey", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 736, + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 777, + "src": "2736:16:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 735, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2736:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2735:18:3" + }, + "returnParameters": { + "id": 742, + "nodeType": "ParameterList", + "parameters": [], + "src": "2786:0:3" + }, + "scope": 861, + "src": "2706:304:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 798, + "nodeType": "Block", + "src": "3235:132:3", + "statements": [ + { + "assignments": [ + 785 + ], + "declarations": [ + { + "constant": false, + "id": 785, + "name": "oldOwner", + "nodeType": "VariableDeclaration", + "scope": 798, + "src": "3241:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 784, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3241:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 788, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 786, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1441, + "src": "3260:5:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3260:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3241:26:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 790, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "3292:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 789, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1515, + "src": "3273:18:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3273:28:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 792, + "nodeType": "ExpressionStatement", + "src": "3273:28:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 794, + "name": "oldOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 785, + "src": "3343:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 795, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "3353:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 793, + "name": "OwnershipTranferedByFoundation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "3312:30:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3312:50:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 797, + "nodeType": "EmitStatement", + "src": "3307:55:3" + } + ] + }, + "documentation": "@dev transfer node ownership", + "id": 799, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 782, + "modifierName": { + "argumentTypes": null, + "id": 781, + "name": "onlyFoundation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22, + "src": "3220:14:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3220:14:3" + } + ], + "name": "transferOwnershipByFoundation", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 780, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 779, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 799, + "src": "3195:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3195:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3194:18:3" + }, + "returnParameters": { + "id": 783, + "nodeType": "ParameterList", + "parameters": [], + "src": "3235:0:3" + }, + "scope": 861, + "src": "3156:211:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 831, + "nodeType": "Block", + "src": "3544:227:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 809, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 801, + "src": "3558:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 810, + "name": "availableUnstakeAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 511, + "src": "3568:22:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3558:32:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "756e7374616b696e6720616d6f756e742073686f756c64206e6f742062652067726561746572207468616e20617661696c61626c65556e7374616b65416d6f756e742e", + "id": 812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3592:69:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b7d94a053a83410c106ebcc410fc4fe23df1b7ed4a1d6d6b32a2118eb0e69c13", + "typeString": "literal_string \"unstaking amount should not be greater than availableUnstakeAmount.\"" + }, + "value": "unstaking amount should not be greater than availableUnstakeAmount." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b7d94a053a83410c106ebcc410fc4fe23df1b7ed4a1d6d6b32a2118eb0e69c13", + "typeString": "literal_string \"unstaking amount should not be greater than availableUnstakeAmount.\"" + } + ], + "id": 808, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1535, + "src": "3550:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3550:112:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 814, + "nodeType": "ExpressionStatement", + "src": "3550:112:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 818, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 801, + "src": "3695:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 815, + "name": "availableUnstakeAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 511, + "src": "3668:22:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1362, + "src": "3668:26: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": 819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3668:34:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 820, + "nodeType": "ExpressionStatement", + "src": "3668:34:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 824, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 801, + "src": "3720:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 821, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "3708:3:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "unstake", + "nodeType": "MemberAccess", + "referencedDeclaration": 407, + "src": "3708:11:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3708:19:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 826, + "nodeType": "ExpressionStatement", + "src": "3708:19:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 828, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 801, + "src": "3759:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 827, + "name": "UnstakedByFoundation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 553, + "src": "3738:20:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3738:28:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 830, + "nodeType": "EmitStatement", + "src": "3733:33:3" + } + ] + }, + "documentation": "@dev unstake by foundation\n@notice only can unstake vested amount", + "id": 832, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 804, + "modifierName": { + "argumentTypes": null, + "id": 803, + "name": "onlyFoundation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22, + "src": "3514:14:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3514:14:3" + }, + { + "arguments": null, + "id": 806, + "modifierName": { + "argumentTypes": null, + "id": 805, + "name": "onlyRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 568, + "src": "3529:14:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3529:14:3" + } + ], + "name": "unstakeByFoundation", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 802, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 801, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 832, + "src": "3491:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 800, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3491:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3490:16:3" + }, + "returnParameters": { + "id": 807, + "nodeType": "ParameterList", + "parameters": [], + "src": "3544:0:3" + }, + "scope": 861, + "src": "3462:309:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 859, + "nodeType": "Block", + "src": "3871:133:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 841, + "name": "vested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 509, + "src": "3877:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 844, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "3897:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 842, + "name": "vested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 509, + "src": "3886:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1386, + "src": "3886:10: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": 845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3886:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3877:27:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 847, + "nodeType": "ExpressionStatement", + "src": "3877:27:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 848, + "name": "availableUnstakeAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 511, + "src": "3911:22:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 851, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "3963:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 849, + "name": "availableUnstakeAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 511, + "src": "3936:22:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1386, + "src": "3936:26: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": 852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3936:34:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3911:59:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 854, + "nodeType": "ExpressionStatement", + "src": "3911:59:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 856, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "3992:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 855, + "name": "NodeVested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 537, + "src": "3981:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3981:18:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 858, + "nodeType": "EmitStatement", + "src": "3976:23:3" + } + ] + }, + "documentation": "@dev vest", + "id": 860, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 837, + "modifierName": { + "argumentTypes": null, + "id": 836, + "name": "onlyFoundation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22, + "src": "3841:14:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3841:14:3" + }, + { + "arguments": null, + "id": 839, + "modifierName": { + "argumentTypes": null, + "id": 838, + "name": "onlyRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 568, + "src": "3856:14:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3856:14:3" + } + ], + "name": "vest", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 835, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 834, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 860, + "src": "3818:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 833, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3818:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3817:16:3" + }, + "returnParameters": { + "id": 840, + "nodeType": "ParameterList", + "parameters": [], + "src": "3871:0:3" + }, + "scope": 861, + "src": "3804:200:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 862, + "src": "212:3794:3" + } + ], + "src": "0:4007:3" + }, + "legacyAST": { + "absolutePath": "/Users/aitjcize/Work/tangerine-network/node-staker/contracts/NodeStaker.sol", + "exportedSymbols": { + "NodeStaker": [ + 861 + ] + }, + "id": 862, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 489, + "literals": [ + "solidity", + "^", + "0.5", + ".11" + ], + "nodeType": "PragmaDirective", + "src": "0:24:3" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "id": 490, + "nodeType": "ImportDirective", + "scope": 862, + "sourceUnit": 1408, + "src": "26:59:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "id": 491, + "nodeType": "ImportDirective", + "scope": 862, + "sourceUnit": 1517, + "src": "86:63:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/Users/aitjcize/Work/tangerine-network/node-staker/contracts/Governance.sol", + "file": "./Governance.sol", + "id": 492, + "nodeType": "ImportDirective", + "scope": 862, + "sourceUnit": 431, + "src": "150:26:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/Users/aitjcize/Work/tangerine-network/node-staker/contracts/FoundationOwnable.sol", + "file": "./FoundationOwnable.sol", + "id": 493, + "nodeType": "ImportDirective", + "scope": 862, + "sourceUnit": 47, + "src": "177:33:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 494, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1516, + "src": "235:7:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$1516", + "typeString": "contract Ownable" + } + }, + "id": 495, + "nodeType": "InheritanceSpecifier", + "src": "235:7:3" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 496, + "name": "FoundationOwnable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 46, + "src": "244:17:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_FoundationOwnable_$46", + "typeString": "contract FoundationOwnable" + } + }, + "id": 497, + "nodeType": "InheritanceSpecifier", + "src": "244:17:3" + } + ], + "contractDependencies": [ + 46, + 1516 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 861, + "linearizedBaseContracts": [ + 861, + 46, + 1516 + ], + "name": "NodeStaker", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 500, + "libraryName": { + "contractScope": null, + "id": 498, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1407, + "src": "273:8:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$1407", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "267:27:3", + "typeName": { + "id": 499, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "286:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 505, + "name": "gov", + "nodeType": "VariableDeclaration", + "scope": 861, + "src": "298:71:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + }, + "typeName": { + "contractScope": null, + "id": 501, + "name": "Governance", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 430, + "src": "298:10:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "307832343646634445353835383165323735346632313541353233433037313843344246633830343146", + "id": 503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "326:42:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "value": "0x246FcDE58581e2754f215A523C0718C4BFc8041F" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 502, + "name": "Governance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 430, + "src": "315:10:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Governance_$430_$", + "typeString": "type(contract Governance)" + } + }, + "id": 504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "315:54:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 507, + "name": "registered", + "nodeType": "VariableDeclaration", + "scope": 861, + "src": "373:22:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 506, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "373:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 509, + "name": "vested", + "nodeType": "VariableDeclaration", + "scope": 861, + "src": "399:21:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 508, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "399:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 511, + "name": "availableUnstakeAmount", + "nodeType": "VariableDeclaration", + "scope": 861, + "src": "424:37:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "424:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 527, + "name": "NodeRegister", + "nodeType": "EventDefinition", + "parameters": { + "id": 526, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 513, + "indexed": false, + "name": "sender", + "nodeType": "VariableDeclaration", + "scope": 527, + "src": "527:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 512, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "527:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 515, + "indexed": false, + "name": "publicKey", + "nodeType": "VariableDeclaration", + "scope": 527, + "src": "547:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 514, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "547:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 517, + "indexed": false, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 527, + "src": "568:11:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 516, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "568:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 519, + "indexed": false, + "name": "email", + "nodeType": "VariableDeclaration", + "scope": 527, + "src": "585:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 518, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "585:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 521, + "indexed": false, + "name": "location", + "nodeType": "VariableDeclaration", + "scope": 527, + "src": "603:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 520, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "603:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 523, + "indexed": false, + "name": "url", + "nodeType": "VariableDeclaration", + "scope": 527, + "src": "624:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 522, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "624:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 525, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 527, + "src": "640:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 524, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "640:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "521:136:3" + }, + "src": "503:155:3" + }, + { + "anonymous": false, + "documentation": null, + "id": 533, + "name": "NodeDeposited", + "nodeType": "EventDefinition", + "parameters": { + "id": 532, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 529, + "indexed": false, + "name": "sender", + "nodeType": "VariableDeclaration", + "scope": 533, + "src": "681:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 528, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "681:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 531, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 533, + "src": "697:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 530, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "697:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "680:32:3" + }, + "src": "661:52:3" + }, + { + "anonymous": false, + "documentation": null, + "id": 537, + "name": "NodeVested", + "nodeType": "EventDefinition", + "parameters": { + "id": 536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 535, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 537, + "src": "733:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 534, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "733:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "732:16:3" + }, + "src": "716:33:3" + }, + { + "anonymous": false, + "documentation": null, + "id": 543, + "name": "NodeWithdrawn", + "nodeType": "EventDefinition", + "parameters": { + "id": 542, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 539, + "indexed": false, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 543, + "src": "772:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 538, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "772:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 541, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 543, + "src": "787:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 540, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "787:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "771:31:3" + }, + "src": "752:51:3" + }, + { + "anonymous": false, + "documentation": null, + "id": 549, + "name": "NodePublicKeyReplaced", + "nodeType": "EventDefinition", + "parameters": { + "id": 548, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 545, + "indexed": false, + "name": "oldKey", + "nodeType": "VariableDeclaration", + "scope": 549, + "src": "834:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 544, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "834:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 547, + "indexed": false, + "name": "newKey", + "nodeType": "VariableDeclaration", + "scope": 549, + "src": "848:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 546, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "848:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "833:28:3" + }, + "src": "806:56:3" + }, + { + "anonymous": false, + "documentation": null, + "id": 553, + "name": "UnstakedByFoundation", + "nodeType": "EventDefinition", + "parameters": { + "id": 552, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 551, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 553, + "src": "892:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 550, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "892:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "891:16:3" + }, + "src": "865:43:3" + }, + { + "anonymous": false, + "documentation": null, + "id": 559, + "name": "OwnershipTranferedByFoundation", + "nodeType": "EventDefinition", + "parameters": { + "id": 558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 555, + "indexed": false, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 559, + "src": "948:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 554, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "948:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 557, + "indexed": false, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 559, + "src": "962:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "962:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "947:26:3" + }, + "src": "911:63:3" + }, + { + "body": { + "id": 567, + "nodeType": "Block", + "src": "1050:59:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 562, + "name": "registered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 507, + "src": "1064:10:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6e6f74207265676973746572656420796574", + "id": 563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1076:20:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c16aaa8f3b2fb22af6aabfa7f0392eed554bc4af8ac4b02f0e9cb83f01994d2b", + "typeString": "literal_string \"not registered yet\"" + }, + "value": "not registered yet" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c16aaa8f3b2fb22af6aabfa7f0392eed554bc4af8ac4b02f0e9cb83f01994d2b", + "typeString": "literal_string \"not registered yet\"" + } + ], + "id": 561, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1535, + "src": "1056:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1056:41:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 565, + "nodeType": "ExpressionStatement", + "src": "1056:41:3" + }, + { + "id": 566, + "nodeType": "PlaceholderStatement", + "src": "1103:1:3" + } + ] + }, + "documentation": null, + "id": 568, + "name": "onlyRegistered", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 560, + "nodeType": "ParameterList", + "parameters": [], + "src": "1047:2:3" + }, + "src": "1024:85:3", + "visibility": "internal" + }, + { + "body": { + "id": 578, + "nodeType": "Block", + "src": "1240:52:3", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 572, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1265:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1265:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 574, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1277:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1277:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 571, + "name": "NodeDeposited", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 533, + "src": "1251:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1251:36:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 577, + "nodeType": "EmitStatement", + "src": "1246:41:3" + } + ] + }, + "documentation": "@notice funds from non-governance source will be prorated refund to foundation", + "id": 579, + "implemented": true, + "kind": "fallback", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 569, + "nodeType": "ParameterList", + "parameters": [], + "src": "1220:2:3" + }, + "returnParameters": { + "id": 570, + "nodeType": "ParameterList", + "parameters": [], + "src": "1240:0:3" + }, + "scope": 861, + "src": "1211:81:3", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 608, + "nodeType": "Block", + "src": "1428:158:3", + "statements": [ + { + "assignments": [ + 585 + ], + "declarations": [ + { + "constant": false, + "id": 585, + "name": "offset", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "1434:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 584, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1434:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 594, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 590, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1555, + "src": "1492:4:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NodeStaker_$861", + "typeString": "contract NodeStaker" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_NodeStaker_$861", + "typeString": "contract NodeStaker" + } + ], + "id": 589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1484:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1484:13:3", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "id": 587, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "1459:3:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "nodesOffsetByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 89, + "src": "1459:24:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_int256_$", + "typeString": "function (address) view external returns (int256)" + } + }, + "id": 592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1459:39:3", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 586, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1451:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1451:48:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1434:65:3" + }, + { + "assignments": [ + 596 + ], + "declarations": [ + { + "constant": false, + "id": 596, + "name": "staked", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "1505:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 595, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1505:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 597, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "1505:14:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + null, + null, + { + "argumentTypes": null, + "id": 598, + "name": "staked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 596, + "src": "1528:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + null, + null, + null, + null, + null, + null, + null + ], + "id": 599, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "1525:17:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$__$_t_uint256_$__$__$__$__$__$__$__$", + "typeString": "tuple(,,uint256,,,,,,,)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 602, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 585, + "src": "1555:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 600, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "1545:3:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "nodes", + "nodeType": "MemberAccess", + "referencedDeclaration": 85, + "src": "1545:9:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$_t_bytes_memory_$_t_uint256_$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_string_memory_$_t_string_memory_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) view external returns (address,bytes memory,uint256,uint256,string memory,string memory,string memory,string memory,uint256,uint256)" + } + }, + "id": 603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1545:17:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_bytes_memory_$_t_uint256_$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_string_memory_$_t_string_memory_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(address,bytes memory,uint256,uint256,string memory,string memory,string memory,string memory,uint256,uint256)" + } + }, + "src": "1525:37:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 605, + "nodeType": "ExpressionStatement", + "src": "1525:37:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 606, + "name": "staked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 596, + "src": "1575:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 583, + "id": 607, + "nodeType": "Return", + "src": "1568:13:3" + } + ] + }, + "documentation": null, + "id": 609, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getStakedAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 580, + "nodeType": "ParameterList", + "parameters": [], + "src": "1395:2:3" + }, + "returnParameters": { + "id": 583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 582, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 609, + "src": "1419:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 581, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1419:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1418:9:3" + }, + "scope": 861, + "src": "1371:215:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 638, + "nodeType": "Block", + "src": "1649:164:3", + "statements": [ + { + "assignments": [ + 615 + ], + "declarations": [ + { + "constant": false, + "id": 615, + "name": "offset", + "nodeType": "VariableDeclaration", + "scope": 638, + "src": "1655:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 614, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1655:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 624, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 620, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1555, + "src": "1713:4:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NodeStaker_$861", + "typeString": "contract NodeStaker" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_NodeStaker_$861", + "typeString": "contract NodeStaker" + } + ], + "id": 619, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1705:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1705:13:3", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "id": 617, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "1680:3:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "nodesOffsetByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 89, + "src": "1680:24:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_int256_$", + "typeString": "function (address) view external returns (int256)" + } + }, + "id": 622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1680:39:3", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1672:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1672:48:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1655:65:3" + }, + { + "assignments": [ + 626 + ], + "declarations": [ + { + "constant": false, + "id": 626, + "name": "unstaked", + "nodeType": "VariableDeclaration", + "scope": 638, + "src": "1726:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 625, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1726:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 627, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "1726:16:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + null, + null, + null, + null, + null, + null, + null, + null, + { + "argumentTypes": null, + "id": 628, + "name": "unstaked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 626, + "src": "1757:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + null + ], + "id": 629, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "1748:19:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$__$__$__$__$__$__$__$_t_uint256_$__$", + "typeString": "tuple(,,,,,,,,uint256,)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 632, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 615, + "src": "1780:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 630, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "1770:3:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "nodes", + "nodeType": "MemberAccess", + "referencedDeclaration": 85, + "src": "1770:9:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$_t_bytes_memory_$_t_uint256_$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_string_memory_$_t_string_memory_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) view external returns (address,bytes memory,uint256,uint256,string memory,string memory,string memory,string memory,uint256,uint256)" + } + }, + "id": 633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1770:17:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_bytes_memory_$_t_uint256_$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_string_memory_$_t_string_memory_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(address,bytes memory,uint256,uint256,string memory,string memory,string memory,string memory,uint256,uint256)" + } + }, + "src": "1748:39:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 635, + "nodeType": "ExpressionStatement", + "src": "1748:39:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 636, + "name": "unstaked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 626, + "src": "1800:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 613, + "id": 637, + "nodeType": "Return", + "src": "1793:15:3" + } + ] + }, + "documentation": null, + "id": 639, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getUnstakedAmount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 610, + "nodeType": "ParameterList", + "parameters": [], + "src": "1616:2:3" + }, + "returnParameters": { + "id": 613, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 612, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 639, + "src": "1640:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1640:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1639:9:3" + }, + "scope": 861, + "src": "1590:223:3", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 695, + "nodeType": "Block", + "src": "2115:272:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2129:11:3", + "subExpression": { + "argumentTypes": null, + "id": 655, + "name": "registered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 507, + "src": "2130:10:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "616c72656164792072656769737465726564", + "id": 657, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2142:20:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_269c06100417d6799f278320f8bfa70884ed5db37cbbb03507b2629ec69f83d0", + "typeString": "literal_string \"already registered\"" + }, + "value": "already registered" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_269c06100417d6799f278320f8bfa70884ed5db37cbbb03507b2629ec69f83d0", + "typeString": "literal_string \"already registered\"" + } + ], + "id": 654, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1535, + "src": "2121:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2121:42:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 659, + "nodeType": "ExpressionStatement", + "src": "2121:42:3" + }, + { + "assignments": [ + 661 + ], + "declarations": [ + { + "constant": false, + "id": 661, + "name": "minStake", + "nodeType": "VariableDeclaration", + "scope": 695, + "src": "2169:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2169:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 665, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 662, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "2188:3:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "minStake", + "nodeType": "MemberAccess", + "referencedDeclaration": 142, + "src": "2188:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2188:14:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2169:33:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 673, + "name": "publicKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 641, + "src": "2237:9:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 674, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 643, + "src": "2248:4:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 675, + "name": "email", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 645, + "src": "2254:5:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 676, + "name": "location", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 647, + "src": "2261:8:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 677, + "name": "url", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 649, + "src": "2271:3:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "arguments": [ + { + "argumentTypes": null, + "id": 671, + "name": "minStake", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 661, + "src": "2227:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 666, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "2208:3:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "register", + "nodeType": "MemberAccess", + "referencedDeclaration": 377, + "src": "2208:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bytes memory,string memory,string memory,string memory,string memory) payable external" + } + }, + "id": 670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2208:18:3", + "typeDescriptions": { + "typeIdentifier": "t_function_setvalue_pure$_t_uint256_$returns$_t_function_external_payable$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$value_$", + "typeString": "function (uint256) pure returns (function (bytes memory,string memory,string memory,string memory,string memory) payable external)" + } + }, + "id": 672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2208:28:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$value", + "typeString": "function (bytes memory,string memory,string memory,string memory,string memory) payable external" + } + }, + "id": 678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2208:67:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 679, + "nodeType": "ExpressionStatement", + "src": "2208:67:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 680, + "name": "registered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 507, + "src": "2281:10:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2294:4:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2281:17:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 683, + "nodeType": "ExpressionStatement", + "src": "2281:17:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 685, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "2322:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2322:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 687, + "name": "publicKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 641, + "src": "2334:9:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 688, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 643, + "src": "2345:4:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 689, + "name": "email", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 645, + "src": "2351:5:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 690, + "name": "location", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 647, + "src": "2358:8:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 691, + "name": "url", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 649, + "src": "2368:3:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 692, + "name": "minStake", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 661, + "src": "2373:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 684, + "name": "NodeRegister", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "2309:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (address,bytes memory,string memory,string memory,string memory,string memory,uint256)" + } + }, + "id": 693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2309:73:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 694, + "nodeType": "EmitStatement", + "src": "2304:78:3" + } + ] + }, + "documentation": "@dev register a node", + "id": 696, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 652, + "modifierName": { + "argumentTypes": null, + "id": 651, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1450, + "src": "2105:9:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2105:9:3" + } + ], + "name": "register", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 641, + "name": "publicKey", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1971:22:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 640, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1971:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 643, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "1999:18:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 642, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1999:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 645, + "name": "email", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "2023:19:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 644, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2023:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 647, + "name": "location", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "2048:22:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 646, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2048:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 649, + "name": "url", + "nodeType": "VariableDeclaration", + "scope": 696, + "src": "2076:17:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 648, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2076:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1965:132:3" + }, + "returnParameters": { + "id": 653, + "nodeType": "ParameterList", + "parameters": [], + "src": "2115:0:3" + }, + "scope": 861, + "src": "1948:439:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 733, + "nodeType": "Block", + "src": "2484:170:3", + "statements": [ + { + "condition": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 703, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "2494:3:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawable", + "nodeType": "MemberAccess", + "referencedDeclaration": 429, + "src": "2494:16:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$", + "typeString": "function () view external returns (bool)" + } + }, + "id": 705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2494:18:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 711, + "nodeType": "IfStatement", + "src": "2490:38:3", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 706, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "2514:3:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 423, + "src": "2514:12:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2514:14:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 710, + "nodeType": "ExpressionStatement", + "src": "2514:14:3" + } + }, + { + "assignments": [ + 713 + ], + "declarations": [ + { + "constant": false, + "id": 713, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 733, + "src": "2534:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 712, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2534:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 718, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 715, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1555, + "src": "2559:4:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NodeStaker_$861", + "typeString": "contract NodeStaker" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_NodeStaker_$861", + "typeString": "contract NodeStaker" + } + ], + "id": 714, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2551:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2551:13:3", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2551:21:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2534:38:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 724, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 713, + "src": "2598:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 719, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "2578:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2578:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2578:19:3", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2578:27:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 726, + "nodeType": "ExpressionStatement", + "src": "2578:27:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 728, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "2630:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2630:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 730, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 713, + "src": "2642:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 727, + "name": "NodeWithdrawn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 543, + "src": "2616:13:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2616:33:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 732, + "nodeType": "EmitStatement", + "src": "2611:38:3" + } + ] + }, + "documentation": "@dev withdraw balance", + "id": 734, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 699, + "modifierName": { + "argumentTypes": null, + "id": 698, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1450, + "src": "2459:9:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2459:9:3" + }, + { + "arguments": null, + "id": 701, + "modifierName": { + "argumentTypes": null, + "id": 700, + "name": "onlyRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 568, + "src": "2469:14:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2469:14:3" + } + ], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 697, + "nodeType": "ParameterList", + "parameters": [], + "src": "2449:2:3" + }, + "returnParameters": { + "id": 702, + "nodeType": "ParameterList", + "parameters": [], + "src": "2484:0:3" + }, + "scope": 861, + "src": "2432:222:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 776, + "nodeType": "Block", + "src": "2786:224:3", + "statements": [ + { + "assignments": [ + 744 + ], + "declarations": [ + { + "constant": false, + "id": 744, + "name": "oldKey", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "2792:19:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 743, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2792:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 745, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "2792:19:3" + }, + { + "assignments": [ + 747 + ], + "declarations": [ + { + "constant": false, + "id": 747, + "name": "offset", + "nodeType": "VariableDeclaration", + "scope": 776, + "src": "2817:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 746, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2817:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 756, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 752, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1555, + "src": "2875:4:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NodeStaker_$861", + "typeString": "contract NodeStaker" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_NodeStaker_$861", + "typeString": "contract NodeStaker" + } + ], + "id": 751, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2867:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2867:13:3", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "id": 749, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "2842:3:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "nodesOffsetByAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 89, + "src": "2842:24:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_int256_$", + "typeString": "function (address) view external returns (int256)" + } + }, + "id": 754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2842:39:3", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 748, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2834:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2834:48:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2817:65:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + null, + { + "argumentTypes": null, + "id": 757, + "name": "oldKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 744, + "src": "2890:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + null, + null, + null, + null, + null, + null, + null, + null + ], + "id": 758, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "2888:17:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$_t_bytes_memory_ptr_$__$__$__$__$__$__$__$__$", + "typeString": "tuple(,bytes memory,,,,,,,,)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 761, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 747, + "src": "2918:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 759, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "2908:3:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "nodes", + "nodeType": "MemberAccess", + "referencedDeclaration": 85, + "src": "2908:9:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$_t_bytes_memory_$_t_uint256_$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_string_memory_$_t_string_memory_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) view external returns (address,bytes memory,uint256,uint256,string memory,string memory,string memory,string memory,uint256,uint256)" + } + }, + "id": 762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2908:17:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_bytes_memory_$_t_uint256_$_t_uint256_$_t_string_memory_$_t_string_memory_$_t_string_memory_$_t_string_memory_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(address,bytes memory,uint256,uint256,string memory,string memory,string memory,string memory,uint256,uint256)" + } + }, + "src": "2888:37:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 764, + "nodeType": "ExpressionStatement", + "src": "2888:37:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 768, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 736, + "src": "2956:3:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 765, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "2931:3:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "replaceNodePublicKey", + "nodeType": "MemberAccess", + "referencedDeclaration": 383, + "src": "2931:24:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory) external" + } + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2931:29:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 770, + "nodeType": "ExpressionStatement", + "src": "2931:29:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 772, + "name": "oldKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 744, + "src": "2993:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 773, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 736, + "src": "3001:3:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 771, + "name": "NodePublicKeyReplaced", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 549, + "src": "2971:21:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bytes memory,bytes memory)" + } + }, + "id": 774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2971:34:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 775, + "nodeType": "EmitStatement", + "src": "2966:39:3" + } + ] + }, + "documentation": "@dev replace node public key", + "id": 777, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 739, + "modifierName": { + "argumentTypes": null, + "id": 738, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1450, + "src": "2761:9:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2761:9:3" + }, + { + "arguments": null, + "id": 741, + "modifierName": { + "argumentTypes": null, + "id": 740, + "name": "onlyRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 568, + "src": "2771:14:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2771:14:3" + } + ], + "name": "replaceNodePublicKey", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 736, + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 777, + "src": "2736:16:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 735, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2736:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2735:18:3" + }, + "returnParameters": { + "id": 742, + "nodeType": "ParameterList", + "parameters": [], + "src": "2786:0:3" + }, + "scope": 861, + "src": "2706:304:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 798, + "nodeType": "Block", + "src": "3235:132:3", + "statements": [ + { + "assignments": [ + 785 + ], + "declarations": [ + { + "constant": false, + "id": 785, + "name": "oldOwner", + "nodeType": "VariableDeclaration", + "scope": 798, + "src": "3241:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 784, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3241:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 788, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 786, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1441, + "src": "3260:5:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3260:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3241:26:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 790, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "3292:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 789, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1515, + "src": "3273:18:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3273:28:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 792, + "nodeType": "ExpressionStatement", + "src": "3273:28:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 794, + "name": "oldOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 785, + "src": "3343:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 795, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "3353:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 793, + "name": "OwnershipTranferedByFoundation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "3312:30:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3312:50:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 797, + "nodeType": "EmitStatement", + "src": "3307:55:3" + } + ] + }, + "documentation": "@dev transfer node ownership", + "id": 799, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 782, + "modifierName": { + "argumentTypes": null, + "id": 781, + "name": "onlyFoundation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22, + "src": "3220:14:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3220:14:3" + } + ], + "name": "transferOwnershipByFoundation", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 780, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 779, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 799, + "src": "3195:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3195:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3194:18:3" + }, + "returnParameters": { + "id": 783, + "nodeType": "ParameterList", + "parameters": [], + "src": "3235:0:3" + }, + "scope": 861, + "src": "3156:211:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 831, + "nodeType": "Block", + "src": "3544:227:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 809, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 801, + "src": "3558:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 810, + "name": "availableUnstakeAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 511, + "src": "3568:22:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3558:32:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "756e7374616b696e6720616d6f756e742073686f756c64206e6f742062652067726561746572207468616e20617661696c61626c65556e7374616b65416d6f756e742e", + "id": 812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3592:69:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b7d94a053a83410c106ebcc410fc4fe23df1b7ed4a1d6d6b32a2118eb0e69c13", + "typeString": "literal_string \"unstaking amount should not be greater than availableUnstakeAmount.\"" + }, + "value": "unstaking amount should not be greater than availableUnstakeAmount." + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b7d94a053a83410c106ebcc410fc4fe23df1b7ed4a1d6d6b32a2118eb0e69c13", + "typeString": "literal_string \"unstaking amount should not be greater than availableUnstakeAmount.\"" + } + ], + "id": 808, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1535, + "src": "3550:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3550:112:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 814, + "nodeType": "ExpressionStatement", + "src": "3550:112:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 818, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 801, + "src": "3695:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 815, + "name": "availableUnstakeAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 511, + "src": "3668:22:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1362, + "src": "3668:26: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": 819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3668:34:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 820, + "nodeType": "ExpressionStatement", + "src": "3668:34:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 824, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 801, + "src": "3720:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 821, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "3708:3:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "unstake", + "nodeType": "MemberAccess", + "referencedDeclaration": 407, + "src": "3708:11:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3708:19:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 826, + "nodeType": "ExpressionStatement", + "src": "3708:19:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 828, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 801, + "src": "3759:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 827, + "name": "UnstakedByFoundation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 553, + "src": "3738:20:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3738:28:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 830, + "nodeType": "EmitStatement", + "src": "3733:33:3" + } + ] + }, + "documentation": "@dev unstake by foundation\n@notice only can unstake vested amount", + "id": 832, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 804, + "modifierName": { + "argumentTypes": null, + "id": 803, + "name": "onlyFoundation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22, + "src": "3514:14:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3514:14:3" + }, + { + "arguments": null, + "id": 806, + "modifierName": { + "argumentTypes": null, + "id": 805, + "name": "onlyRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 568, + "src": "3529:14:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3529:14:3" + } + ], + "name": "unstakeByFoundation", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 802, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 801, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 832, + "src": "3491:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 800, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3491:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3490:16:3" + }, + "returnParameters": { + "id": 807, + "nodeType": "ParameterList", + "parameters": [], + "src": "3544:0:3" + }, + "scope": 861, + "src": "3462:309:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 859, + "nodeType": "Block", + "src": "3871:133:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 841, + "name": "vested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 509, + "src": "3877:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 844, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "3897:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 842, + "name": "vested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 509, + "src": "3886:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1386, + "src": "3886:10: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": 845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3886:18:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3877:27:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 847, + "nodeType": "ExpressionStatement", + "src": "3877:27:3" + }, + { + "expression": { + "argumentTypes": null, + "id": 853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 848, + "name": "availableUnstakeAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 511, + "src": "3911:22:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 851, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "3963:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 849, + "name": "availableUnstakeAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 511, + "src": "3936:22:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1386, + "src": "3936:26: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": 852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3936:34:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3911:59:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 854, + "nodeType": "ExpressionStatement", + "src": "3911:59:3" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 856, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "3992:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 855, + "name": "NodeVested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 537, + "src": "3981:10:3", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3981:18:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 858, + "nodeType": "EmitStatement", + "src": "3976:23:3" + } + ] + }, + "documentation": "@dev vest", + "id": 860, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 837, + "modifierName": { + "argumentTypes": null, + "id": 836, + "name": "onlyFoundation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22, + "src": "3841:14:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3841:14:3" + }, + { + "arguments": null, + "id": 839, + "modifierName": { + "argumentTypes": null, + "id": 838, + "name": "onlyRegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 568, + "src": "3856:14:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3856:14:3" + } + ], + "name": "vest", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 835, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 834, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 860, + "src": "3818:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 833, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3818:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3817:16:3" + }, + "returnParameters": { + "id": 840, + "nodeType": "ParameterList", + "parameters": [], + "src": "3871:0:3" + }, + "scope": 861, + "src": "3804:200:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 862, + "src": "212:3794:3" + } + ], + "src": "0:4007:3" + }, + "compiler": { + "name": "solc", + "version": "0.5.11+commit.c082d0b4.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.11", + "updatedAt": "2019-09-29T03:11:52.528Z", + "devdoc": { + "methods": { + "isOwner()": { + "return": "true if `msg.sender` is the owner of the contract." + }, + "owner()": { + "return": "the address of the owner." + }, + "register(bytes,string,string,string,string)": { + "details": "register a node" + }, + "renounceOwnership()": { + "details": "Allows the current owner to relinquish control of the contract." + }, + "replaceNodePublicKey(bytes)": { + "details": "replace node public key" + }, + "transferOwnership(address)": { + "details": "Allows the current owner to transfer control of the contract to a newOwner.", + "params": { + "newOwner": "The address to transfer ownership to." + } + }, + "transferOwnershipByFoundation(address)": { + "details": "transfer node ownership" + }, + "unstakeByFoundation(uint256)": { + "details": "unstake by foundation" + }, + "vest(uint256)": { + "details": "vest" + }, + "withdraw()": { + "details": "withdraw balance" + } + } + }, + "userdoc": { + "methods": { + "renounceOwnership()": { + "notice": "Renouncing to ownership will leave the contract without an owner. It will not be possible to call the functions with the `onlyOwner` modifier anymore." + }, + "unstakeByFoundation(uint256)": { + "notice": "only can unstake vested amount" + } + } + } +}
\ No newline at end of file diff --git a/build/contracts/NodeStakerMock.json b/build/contracts/NodeStakerMock.json new file mode 100644 index 0000000..7560c93 --- /dev/null +++ b/build/contracts/NodeStakerMock.json @@ -0,0 +1,1001 @@ +{ + "contractName": "NodeStakerMock", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "registered", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "withdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes", + "name": "key", + "type": "bytes" + } + ], + "name": "replaceNodePublicKey", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "vest", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "availableUnstakeAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "unstakeByFoundation", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getStakedAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getUnstakedAmount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes", + "name": "publicKey", + "type": "bytes" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "email", + "type": "string" + }, + { + "internalType": "string", + "name": "location", + "type": "string" + }, + { + "internalType": "string", + "name": "url", + "type": "string" + } + ], + "name": "register", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isFoundation", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnershipByFoundation", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_address", + "type": "address" + } + ], + "name": "setFoundationAddress", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "vested", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "publicKey", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "email", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "location", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "url", + "type": "string" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "NodeRegister", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "NodeDeposited", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "NodeVested", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "NodeWithdrawn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes", + "name": "oldKey", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "newKey", + "type": "bytes" + } + ], + "name": "NodePublicKeyReplaced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "UnstakedByFoundation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "OwnershipTranferedByFoundation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "govAddress", + "type": "address" + } + ], + "name": "setGovernance", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.11+commit.c082d0b4\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"registered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"key\",\"type\":\"bytes\"}],\"name\":\"replaceNodePublicKey\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"vest\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"availableUnstakeAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"unstakeByFoundation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getStakedAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"govAddress\",\"type\":\"address\"}],\"name\":\"setGovernance\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getUnstakedAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"email\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"}],\"name\":\"register\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isFoundation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnershipByFoundation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setFoundationAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"vested\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"email\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"NodeRegister\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NodeDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NodeVested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"NodeWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"oldKey\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"newKey\",\"type\":\"bytes\"}],\"name\":\"NodePublicKeyReplaced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"UnstakedByFoundation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTranferedByFoundation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"isOwner()\":{\"return\":\"true if `msg.sender` is the owner of the contract.\"},\"owner()\":{\"return\":\"the address of the owner.\"},\"register(bytes,string,string,string,string)\":{\"details\":\"register a node\"},\"renounceOwnership()\":{\"details\":\"Allows the current owner to relinquish control of the contract.\"},\"replaceNodePublicKey(bytes)\":{\"details\":\"replace node public key\"},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to transfer control of the contract to a newOwner.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}},\"transferOwnershipByFoundation(address)\":{\"details\":\"transfer node ownership\"},\"unstakeByFoundation(uint256)\":{\"details\":\"unstake by foundation\"},\"vest(uint256)\":{\"details\":\"vest\"},\"withdraw()\":{\"details\":\"withdraw balance\"}}},\"userdoc\":{\"methods\":{\"renounceOwnership()\":{\"notice\":\"Renouncing to ownership will leave the contract without an owner. It will not be possible to call the functions with the `onlyOwner` modifier anymore.\"},\"unstakeByFoundation(uint256)\":{\"notice\":\"only can unstake vested amount\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/aitjcize/Work/tangerine-network/node-staker/contracts/test/NodeStakerMock.sol\":\"NodeStakerMock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/aitjcize/Work/tangerine-network/node-staker/contracts/FoundationOwnable.sol\":{\"keccak256\":\"0xf7a0313191c80af18efbb2c914fa12bf5a96fb5a43c20c21371f67bcaf449bcf\",\"urls\":[\"bzz-raw://6bc9950f402bb1654e0ab1b1357fa857f6bd6e8a5863b9ca7e59d97b51ebd1ab\",\"dweb:/ipfs/QmeWak99q7rfSZzV79n5GhFQZTeZHhkoV4Loxw6sFmiQC4\"]},\"/Users/aitjcize/Work/tangerine-network/node-staker/contracts/Governance.sol\":{\"keccak256\":\"0xcfdc3785ac2c5c1937e80ca46b030d083952a66f22732cd80e440cc45675ea62\",\"urls\":[\"bzz-raw://5f33f67e58c7ddc0f100cd2fbe89f2a0a0169bda17742a3d633df62a7921d051\",\"dweb:/ipfs/QmSHtHd9VBagDzc4FaKRZ56pZkZ9Nu1AA7YjwyokhFRU5q\"]},\"/Users/aitjcize/Work/tangerine-network/node-staker/contracts/NodeStaker.sol\":{\"keccak256\":\"0x2e7b39e18d5a0a27afee23974ec54491286ece6f89c12818ee67829a4e5be905\",\"urls\":[\"bzz-raw://aeb7693cf5be3214117b4949c90e9dee3b8bce27f1bf9ffaa8952eb20faacffe\",\"dweb:/ipfs/Qmc15ZPPcRK54dDnVMfXiTE8abdbdSrcX3kwjtFjVuENVm\"]},\"/Users/aitjcize/Work/tangerine-network/node-staker/contracts/test/NodeStakerMock.sol\":{\"keccak256\":\"0xc508a041aba17236f20669f722aad4f1cc0f41d37909d0ab8c55501c0255123b\",\"urls\":[\"bzz-raw://9171044c0e848711cce691f493936323ca8a7875a0acc2994a1a4d9c6252020d\",\"dweb:/ipfs/QmUykMgjhgQgFrkHXfVY1e7WsMqC1VyGraPTGYXnw4j4Am\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x965012d27b4262d7a41f5028cbb30c51ebd9ecd4be8fb30380aaa7a3c64fbc8b\",\"urls\":[\"bzz-raw://1eb493553b27efd46c231a836a83ce50d215639feb97b4aac9f301d0fd034ff5\",\"dweb:/ipfs/QmbMdvSXcqGKxeeYvzF3VrWpoHQyVzMXBhzhAokF2Gdymv\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0x980de387a1a020a498f53d00f89fecebb12c949a17e8f160093c0303ede2b786\",\"urls\":[\"bzz-raw://f07a2c393caa85f62f0aaa461e3edd50aa59371d4209778ba0558d7f8b4b856c\",\"dweb:/ipfs/QmeN3ZiYGSjCnQFeYaJNgoXjF9eDue1g3e9pqManRkeBtV\"]}},\"version\":1}", + "bytecode": "0x60806040819052600280546001600160a01b031990811673246fcde58581e2754f215a523c0718c4bfc8041f179091556000805490911633178082556001600160a01b0316917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600180546001600160a01b031916331790556124198061008b6000396000f3fe6080604052600436106101095760003560e01c8063a4e15db911610095578063d392a7d511610064578063d392a7d51461062e578063e97b387414610643578063f2fde38b14610676578063f41377ca146106a9578063fea5657c146106dc57610109565b8063a4e15db91461030c578063ab033ea914610321578063b244fdcb14610354578063d242f4cc1461036957610109565b80636d6c12f3116100dc5780636d6c12f314610260578063715018a61461028757806375fc0e0d1461029c5780638da5cb5b146102c65780638f32d59b146102f757610109565b80632de40ce3146101455780633ccfd60b1461016e5780633f007c20146101855780636a760b8014610236575b6040805133815234602082015281517f47a6374f7d50799673b068330af87c22b7a43b4d8ac57b66965556967d814ea0929181900390910190a1005b34801561015157600080fd5b5061015a6106f1565b604080519115158252519081900360200190f35b34801561017a57600080fd5b50610183610701565b005b34801561019157600080fd5b50610183600480360360208110156101a857600080fd5b810190602081018135600160201b8111156101c257600080fd5b8201836020820111156101d457600080fd5b803590602001918460018302840111600160201b831117156101f557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506108bc945050505050565b34801561024257600080fd5b506101836004803603602081101561025957600080fd5b5035610fba565b34801561026c57600080fd5b506102756110ba565b60408051918252519081900360200190f35b34801561029357600080fd5b506101836110c0565b3480156102a857600080fd5b50610183600480360360208110156102bf57600080fd5b503561111b565b3480156102d257600080fd5b506102db6112aa565b604080516001600160a01b039092168252519081900360200190f35b34801561030357600080fd5b5061015a6112b9565b34801561031857600080fd5b506102756112ca565b34801561032d57600080fd5b506101836004803603602081101561034457600080fd5b50356001600160a01b031661174e565b34801561036057600080fd5b50610275611781565b34801561037557600080fd5b50610183600480360360a081101561038c57600080fd5b810190602081018135600160201b8111156103a657600080fd5b8201836020820111156103b857600080fd5b803590602001918460018302840111600160201b831117156103d957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561042b57600080fd5b82018360208201111561043d57600080fd5b803590602001918460018302840111600160201b8311171561045e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156104b057600080fd5b8201836020820111156104c257600080fd5b803590602001918460018302840111600160201b831117156104e357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561053557600080fd5b82018360208201111561054757600080fd5b803590602001918460018302840111600160201b8311171561056857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156105ba57600080fd5b8201836020820111156105cc57600080fd5b803590602001918460018302840111600160201b831117156105ed57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611c08945050505050565b34801561063a57600080fd5b5061015a6121bb565b34801561064f57600080fd5b506101836004803603602081101561066657600080fd5b50356001600160a01b03166121cc565b34801561068257600080fd5b506101836004803603602081101561069957600080fd5b50356001600160a01b0316612275565b3480156106b557600080fd5b50610183600480360360208110156106cc57600080fd5b50356001600160a01b0316612292565b3480156106e857600080fd5b506102756122ff565b600254600160a01b900460ff1681565b6107096112b9565b61071257600080fd5b600254600160a01b900460ff16610765576040805162461bcd60e51b81526020600482015260126024820152711b9bdd081c9959da5cdd195c9959081e595d60721b604482015290519081900360640190fd5b600260009054906101000a90046001600160a01b03166001600160a01b031663501883016040518163ffffffff1660e01b815260040160206040518083038186803b1580156107b357600080fd5b505afa1580156107c7573d6000803e3d6000fd5b505050506040513d60208110156107dd57600080fd5b50511561084d57600260009054906101000a90046001600160a01b03166001600160a01b0316633ccfd60b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561083457600080fd5b505af1158015610848573d6000803e3d6000fd5b505050505b604051303190339082156108fc029083906000818181858888f1935050505015801561087d573d6000803e3d6000fd5b50604080513381526020810183905281517f9f1245572fa226a27329c7a7ed7ea272cda61da69552acd8bb7bef5677d08367929181900390910190a150565b6108c46112b9565b6108cd57600080fd5b600254600160a01b900460ff16610920576040805162461bcd60e51b81526020600482015260126024820152711b9bdd081c9959da5cdd195c9959081e595d60721b604482015290519081900360640190fd5b60025460408051638503112360e01b815230600482015290516060926000926001600160a01b0390911691638503112391602480820192602092909190829003018186803b15801561097157600080fd5b505afa158015610985573d6000803e3d6000fd5b505050506040513d602081101561099b57600080fd5b5051600254604080516238a78560e71b81526004810184905290519293506001600160a01b0390911691631c53c28091602480820192600092909190829003018186803b1580156109eb57600080fd5b505afa1580156109ff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610140811015610a2957600080fd5b815160208301805160405192949293830192919084600160201b821115610a4f57600080fd5b908301906020820185811115610a6457600080fd5b8251600160201b811182820188101715610a7d57600080fd5b82525081516020918201929091019080838360005b83811015610aaa578181015183820152602001610a92565b50505050905090810190601f168015610ad75780820380516001836020036101000a031916815260200191505b50604081815260208301519083015160609093018051919593949293929184600160201b821115610b0757600080fd5b908301906020820185811115610b1c57600080fd5b8251600160201b811182820188101715610b3557600080fd5b82525081516020918201929091019080838360005b83811015610b62578181015183820152602001610b4a565b50505050905090810190601f168015610b8f5780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115610bb157600080fd5b908301906020820185811115610bc657600080fd5b8251600160201b811182820188101715610bdf57600080fd5b82525081516020918201929091019080838360005b83811015610c0c578181015183820152602001610bf4565b50505050905090810190601f168015610c395780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115610c5b57600080fd5b908301906020820185811115610c7057600080fd5b8251600160201b811182820188101715610c8957600080fd5b82525081516020918201929091019080838360005b83811015610cb6578181015183820152602001610c9e565b50505050905090810190601f168015610ce35780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115610d0557600080fd5b908301906020820185811115610d1a57600080fd5b8251600160201b811182820188101715610d3357600080fd5b82525081516020918201929091019080838360005b83811015610d60578181015183820152602001610d48565b50505050905090810190601f168015610d8d5780820380516001836020036101000a031916815260200191505b5060405260200180519060200190929190805190602001909291905050509091929394959697985088985090919293949596509091929394955090919293945090919293509091925090915090505080925050600260009054906101000a90046001600160a01b03166001600160a01b0316633f007c20846040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e51578181015183820152602001610e39565b50505050905090810190601f168015610e7e5780820380516001836020036101000a031916815260200191505b5092505050600060405180830381600087803b158015610e9d57600080fd5b505af1158015610eb1573d6000803e3d6000fd5b505050507f2a886948c8f577e57fd34e5888c9b134e579ddaaeabac3cb20ead075782f17db8284604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610f19578181015183820152602001610f01565b50505050905090810190601f168015610f465780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610f79578181015183820152602001610f61565b50505050905090810190601f168015610fa65780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b610fc26121bb565b611005576040805162461bcd60e51b815260206004820152600f60248201526e37b7363c903337bab73230ba34b7b760891b604482015290519081900360640190fd5b600254600160a01b900460ff16611058576040805162461bcd60e51b81526020600482015260126024820152711b9bdd081c9959da5cdd195c9959081e595d60721b604482015290519081900360640190fd5b60035461106b908263ffffffff61230516565b600355600454611081908263ffffffff61230516565b6004556040805182815290517fa7f17da00ac7401519320391a010c46adcec80f542c7783c14b2fde4afe380539181900360200190a150565b60045481565b6110c86112b9565b6110d157600080fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6111236121bb565b611166576040805162461bcd60e51b815260206004820152600f60248201526e37b7363c903337bab73230ba34b7b760891b604482015290519081900360640190fd5b600254600160a01b900460ff166111b9576040805162461bcd60e51b81526020600482015260126024820152711b9bdd081c9959da5cdd195c9959081e595d60721b604482015290519081900360640190fd5b6004548111156111fa5760405162461bcd60e51b81526004018080602001828103825260438152602001806123a26043913960600191505060405180910390fd5b60045461120d908263ffffffff61231e16565b50600254604080516305c2fbcf60e31b81526004810184905290516001600160a01b0390921691632e17de789160248082019260009290919082900301818387803b15801561125b57600080fd5b505af115801561126f573d6000803e3d6000fd5b50506040805184815290517f78db5ae4d05ddd56ed1b359714d67cf8b55a5ed64a3d6783c0372f3cefe9e2089350908190036020019150a150565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b60025460408051638503112360e01b8152306004820152905160009283926001600160a01b0390911691638503112391602480820192602092909190829003018186803b15801561131a57600080fd5b505afa15801561132e573d6000803e3d6000fd5b505050506040513d602081101561134457600080fd5b5051600254604080516238a78560e71b81526004810184905290519293506000926001600160a01b0390921691631c53c280916024808201928692909190829003018186803b15801561139657600080fd5b505afa1580156113aa573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101408110156113d457600080fd5b815160208301805160405192949293830192919084600160201b8211156113fa57600080fd5b90830190602082018581111561140f57600080fd5b8251600160201b81118282018810171561142857600080fd5b82525081516020918201929091019080838360005b8381101561145557818101518382015260200161143d565b50505050905090810190601f1680156114825780820380516001836020036101000a031916815260200191505b50604081815260208301519083015160609093018051919593949293929184600160201b8211156114b257600080fd5b9083019060208201858111156114c757600080fd5b8251600160201b8111828201881017156114e057600080fd5b82525081516020918201929091019080838360005b8381101561150d5781810151838201526020016114f5565b50505050905090810190601f16801561153a5780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b82111561155c57600080fd5b90830190602082018581111561157157600080fd5b8251600160201b81118282018810171561158a57600080fd5b82525081516020918201929091019080838360005b838110156115b757818101518382015260200161159f565b50505050905090810190601f1680156115e45780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b82111561160657600080fd5b90830190602082018581111561161b57600080fd5b8251600160201b81118282018810171561163457600080fd5b82525081516020918201929091019080838360005b83811015611661578181015183820152602001611649565b50505050905090810190601f16801561168e5780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b8211156116b057600080fd5b9083019060208201858111156116c557600080fd5b8251600160201b8111828201881017156116de57600080fd5b82525081516020918201929091019080838360005b8381101561170b5781810151838201526020016116f3565b50505050905090810190601f1680156117385780820380516001836020036101000a031916815260200191505b5060405250969b50505050505050505050505090565b6117566112b9565b61175f57600080fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60025460408051638503112360e01b8152306004820152905160009283926001600160a01b0390911691638503112391602480820192602092909190829003018186803b1580156117d157600080fd5b505afa1580156117e5573d6000803e3d6000fd5b505050506040513d60208110156117fb57600080fd5b5051600254604080516238a78560e71b81526004810184905290519293506000926001600160a01b0390921691631c53c280916024808201928692909190829003018186803b15801561184d57600080fd5b505afa158015611861573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261014081101561188b57600080fd5b815160208301805160405192949293830192919084600160201b8211156118b157600080fd5b9083019060208201858111156118c657600080fd5b8251600160201b8111828201881017156118df57600080fd5b82525081516020918201929091019080838360005b8381101561190c5781810151838201526020016118f4565b50505050905090810190601f1680156119395780820380516001836020036101000a031916815260200191505b50604081815260208301519083015160609093018051919593949293929184600160201b82111561196957600080fd5b90830190602082018581111561197e57600080fd5b8251600160201b81118282018810171561199757600080fd5b82525081516020918201929091019080838360005b838110156119c45781810151838201526020016119ac565b50505050905090810190601f1680156119f15780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115611a1357600080fd5b908301906020820185811115611a2857600080fd5b8251600160201b811182820188101715611a4157600080fd5b82525081516020918201929091019080838360005b83811015611a6e578181015183820152602001611a56565b50505050905090810190601f168015611a9b5780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115611abd57600080fd5b908301906020820185811115611ad257600080fd5b8251600160201b811182820188101715611aeb57600080fd5b82525081516020918201929091019080838360005b83811015611b18578181015183820152602001611b00565b50505050905090810190601f168015611b455780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115611b6757600080fd5b908301906020820185811115611b7c57600080fd5b8251600160201b811182820188101715611b9557600080fd5b82525081516020918201929091019080838360005b83811015611bc2578181015183820152602001611baa565b50505050905090810190601f168015611bef5780820380516001836020036101000a031916815260200191505b50604052602001519c5050505050505050505050505090565b611c106112b9565b611c1957600080fd5b600254600160a01b900460ff1615611c6d576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e481c9959da5cdd195c995960721b604482015290519081900360640190fd5b60025460408051631bad9e0560e11b815290516000926001600160a01b03169163375b3c0a916004808301926020929190829003018186803b158015611cb257600080fd5b505afa158015611cc6573d6000803e3d6000fd5b505050506040513d6020811015611cdc57600080fd5b5051600254604051633490bd3360e21b815260a060048201908152895160a483015289519394506001600160a01b039092169263d242f4cc9285928b928b928b928b928b92918291602482019160448101916064820191608481019160c49091019060208d019080838360005b83811015611d61578181015183820152602001611d49565b50505050905090810190601f168015611d8e5780820380516001836020036101000a031916815260200191505b5086810385528a5181528a516020918201918c019080838360005b83811015611dc1578181015183820152602001611da9565b50505050905090810190601f168015611dee5780820380516001836020036101000a031916815260200191505b5086810384528951815289516020918201918b019080838360005b83811015611e21578181015183820152602001611e09565b50505050905090810190601f168015611e4e5780820380516001836020036101000a031916815260200191505b5086810383528851815288516020918201918a019080838360005b83811015611e81578181015183820152602001611e69565b50505050905090810190601f168015611eae5780820380516001836020036101000a031916815260200191505b50868103825287518152875160209182019189019080838360005b83811015611ee1578181015183820152602001611ec9565b50505050905090810190601f168015611f0e5780820380516001836020036101000a031916815260200191505b509a50505050505050505050506000604051808303818588803b158015611f3457600080fd5b505af1158015611f48573d6000803e3d6000fd5b50506002805460ff60a01b1916600160a01b1790555050604080513380825260c0820185905260e060208084018281528c51928501929092528b517f4d0296a31b4182dca6aff087582c284441743a09fbc7484015f5b57cb6801f8e965092948c948c948c948c948c948c9493908401916060850191608086019160a08701916101008801918e019080838360005b83811015611fef578181015183820152602001611fd7565b50505050905090810190601f16801561201c5780820380516001836020036101000a031916815260200191505b5086810385528b5181528b516020918201918d019080838360005b8381101561204f578181015183820152602001612037565b50505050905090810190601f16801561207c5780820380516001836020036101000a031916815260200191505b5086810384528a5181528a516020918201918c019080838360005b838110156120af578181015183820152602001612097565b50505050905090810190601f1680156120dc5780820380516001836020036101000a031916815260200191505b5086810383528951815289516020918201918b019080838360005b8381101561210f5781810151838201526020016120f7565b50505050905090810190601f16801561213c5780820380516001836020036101000a031916815260200191505b5086810382528851815288516020918201918a019080838360005b8381101561216f578181015183820152602001612157565b50505050905090810190601f16801561219c5780820380516001836020036101000a031916815260200191505b509c5050505050505050505050505060405180910390a1505050505050565b6001546001600160a01b0316331490565b6121d46121bb565b612217576040805162461bcd60e51b815260206004820152600f60248201526e37b7363c903337bab73230ba34b7b760891b604482015290519081900360640190fd5b60006122216112aa565b905061222c82612333565b604080516001600160a01b0380841682528416602082015281517ffe459a7f10652ddcfe92820200e4635f93262667763531372e5bc42e56ec7c9b929181900390910190a15050565b61227d6112b9565b61228657600080fd5b61228f81612333565b50565b61229a6121bb565b6122dd576040805162461bcd60e51b815260206004820152600f60248201526e37b7363c903337bab73230ba34b7b760891b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60035481565b60008282018381101561231757600080fd5b9392505050565b60008282111561232d57600080fd5b50900390565b6001600160a01b03811661234657600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe756e7374616b696e6720616d6f756e742073686f756c64206e6f742062652067726561746572207468616e20617661696c61626c65556e7374616b65416d6f756e742ea265627a7a7231582053a54d64381645b314042de3e3eb5d21e27644ae46318599ce9464c234e8584664736f6c634300050b0032", + "deployedBytecode": "0x6080604052600436106101095760003560e01c8063a4e15db911610095578063d392a7d511610064578063d392a7d51461062e578063e97b387414610643578063f2fde38b14610676578063f41377ca146106a9578063fea5657c146106dc57610109565b8063a4e15db91461030c578063ab033ea914610321578063b244fdcb14610354578063d242f4cc1461036957610109565b80636d6c12f3116100dc5780636d6c12f314610260578063715018a61461028757806375fc0e0d1461029c5780638da5cb5b146102c65780638f32d59b146102f757610109565b80632de40ce3146101455780633ccfd60b1461016e5780633f007c20146101855780636a760b8014610236575b6040805133815234602082015281517f47a6374f7d50799673b068330af87c22b7a43b4d8ac57b66965556967d814ea0929181900390910190a1005b34801561015157600080fd5b5061015a6106f1565b604080519115158252519081900360200190f35b34801561017a57600080fd5b50610183610701565b005b34801561019157600080fd5b50610183600480360360208110156101a857600080fd5b810190602081018135600160201b8111156101c257600080fd5b8201836020820111156101d457600080fd5b803590602001918460018302840111600160201b831117156101f557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506108bc945050505050565b34801561024257600080fd5b506101836004803603602081101561025957600080fd5b5035610fba565b34801561026c57600080fd5b506102756110ba565b60408051918252519081900360200190f35b34801561029357600080fd5b506101836110c0565b3480156102a857600080fd5b50610183600480360360208110156102bf57600080fd5b503561111b565b3480156102d257600080fd5b506102db6112aa565b604080516001600160a01b039092168252519081900360200190f35b34801561030357600080fd5b5061015a6112b9565b34801561031857600080fd5b506102756112ca565b34801561032d57600080fd5b506101836004803603602081101561034457600080fd5b50356001600160a01b031661174e565b34801561036057600080fd5b50610275611781565b34801561037557600080fd5b50610183600480360360a081101561038c57600080fd5b810190602081018135600160201b8111156103a657600080fd5b8201836020820111156103b857600080fd5b803590602001918460018302840111600160201b831117156103d957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561042b57600080fd5b82018360208201111561043d57600080fd5b803590602001918460018302840111600160201b8311171561045e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156104b057600080fd5b8201836020820111156104c257600080fd5b803590602001918460018302840111600160201b831117156104e357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561053557600080fd5b82018360208201111561054757600080fd5b803590602001918460018302840111600160201b8311171561056857600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156105ba57600080fd5b8201836020820111156105cc57600080fd5b803590602001918460018302840111600160201b831117156105ed57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611c08945050505050565b34801561063a57600080fd5b5061015a6121bb565b34801561064f57600080fd5b506101836004803603602081101561066657600080fd5b50356001600160a01b03166121cc565b34801561068257600080fd5b506101836004803603602081101561069957600080fd5b50356001600160a01b0316612275565b3480156106b557600080fd5b50610183600480360360208110156106cc57600080fd5b50356001600160a01b0316612292565b3480156106e857600080fd5b506102756122ff565b600254600160a01b900460ff1681565b6107096112b9565b61071257600080fd5b600254600160a01b900460ff16610765576040805162461bcd60e51b81526020600482015260126024820152711b9bdd081c9959da5cdd195c9959081e595d60721b604482015290519081900360640190fd5b600260009054906101000a90046001600160a01b03166001600160a01b031663501883016040518163ffffffff1660e01b815260040160206040518083038186803b1580156107b357600080fd5b505afa1580156107c7573d6000803e3d6000fd5b505050506040513d60208110156107dd57600080fd5b50511561084d57600260009054906101000a90046001600160a01b03166001600160a01b0316633ccfd60b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561083457600080fd5b505af1158015610848573d6000803e3d6000fd5b505050505b604051303190339082156108fc029083906000818181858888f1935050505015801561087d573d6000803e3d6000fd5b50604080513381526020810183905281517f9f1245572fa226a27329c7a7ed7ea272cda61da69552acd8bb7bef5677d08367929181900390910190a150565b6108c46112b9565b6108cd57600080fd5b600254600160a01b900460ff16610920576040805162461bcd60e51b81526020600482015260126024820152711b9bdd081c9959da5cdd195c9959081e595d60721b604482015290519081900360640190fd5b60025460408051638503112360e01b815230600482015290516060926000926001600160a01b0390911691638503112391602480820192602092909190829003018186803b15801561097157600080fd5b505afa158015610985573d6000803e3d6000fd5b505050506040513d602081101561099b57600080fd5b5051600254604080516238a78560e71b81526004810184905290519293506001600160a01b0390911691631c53c28091602480820192600092909190829003018186803b1580156109eb57600080fd5b505afa1580156109ff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610140811015610a2957600080fd5b815160208301805160405192949293830192919084600160201b821115610a4f57600080fd5b908301906020820185811115610a6457600080fd5b8251600160201b811182820188101715610a7d57600080fd5b82525081516020918201929091019080838360005b83811015610aaa578181015183820152602001610a92565b50505050905090810190601f168015610ad75780820380516001836020036101000a031916815260200191505b50604081815260208301519083015160609093018051919593949293929184600160201b821115610b0757600080fd5b908301906020820185811115610b1c57600080fd5b8251600160201b811182820188101715610b3557600080fd5b82525081516020918201929091019080838360005b83811015610b62578181015183820152602001610b4a565b50505050905090810190601f168015610b8f5780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115610bb157600080fd5b908301906020820185811115610bc657600080fd5b8251600160201b811182820188101715610bdf57600080fd5b82525081516020918201929091019080838360005b83811015610c0c578181015183820152602001610bf4565b50505050905090810190601f168015610c395780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115610c5b57600080fd5b908301906020820185811115610c7057600080fd5b8251600160201b811182820188101715610c8957600080fd5b82525081516020918201929091019080838360005b83811015610cb6578181015183820152602001610c9e565b50505050905090810190601f168015610ce35780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115610d0557600080fd5b908301906020820185811115610d1a57600080fd5b8251600160201b811182820188101715610d3357600080fd5b82525081516020918201929091019080838360005b83811015610d60578181015183820152602001610d48565b50505050905090810190601f168015610d8d5780820380516001836020036101000a031916815260200191505b5060405260200180519060200190929190805190602001909291905050509091929394959697985088985090919293949596509091929394955090919293945090919293509091925090915090505080925050600260009054906101000a90046001600160a01b03166001600160a01b0316633f007c20846040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e51578181015183820152602001610e39565b50505050905090810190601f168015610e7e5780820380516001836020036101000a031916815260200191505b5092505050600060405180830381600087803b158015610e9d57600080fd5b505af1158015610eb1573d6000803e3d6000fd5b505050507f2a886948c8f577e57fd34e5888c9b134e579ddaaeabac3cb20ead075782f17db8284604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610f19578181015183820152602001610f01565b50505050905090810190601f168015610f465780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015610f79578181015183820152602001610f61565b50505050905090810190601f168015610fa65780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b610fc26121bb565b611005576040805162461bcd60e51b815260206004820152600f60248201526e37b7363c903337bab73230ba34b7b760891b604482015290519081900360640190fd5b600254600160a01b900460ff16611058576040805162461bcd60e51b81526020600482015260126024820152711b9bdd081c9959da5cdd195c9959081e595d60721b604482015290519081900360640190fd5b60035461106b908263ffffffff61230516565b600355600454611081908263ffffffff61230516565b6004556040805182815290517fa7f17da00ac7401519320391a010c46adcec80f542c7783c14b2fde4afe380539181900360200190a150565b60045481565b6110c86112b9565b6110d157600080fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6111236121bb565b611166576040805162461bcd60e51b815260206004820152600f60248201526e37b7363c903337bab73230ba34b7b760891b604482015290519081900360640190fd5b600254600160a01b900460ff166111b9576040805162461bcd60e51b81526020600482015260126024820152711b9bdd081c9959da5cdd195c9959081e595d60721b604482015290519081900360640190fd5b6004548111156111fa5760405162461bcd60e51b81526004018080602001828103825260438152602001806123a26043913960600191505060405180910390fd5b60045461120d908263ffffffff61231e16565b50600254604080516305c2fbcf60e31b81526004810184905290516001600160a01b0390921691632e17de789160248082019260009290919082900301818387803b15801561125b57600080fd5b505af115801561126f573d6000803e3d6000fd5b50506040805184815290517f78db5ae4d05ddd56ed1b359714d67cf8b55a5ed64a3d6783c0372f3cefe9e2089350908190036020019150a150565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b60025460408051638503112360e01b8152306004820152905160009283926001600160a01b0390911691638503112391602480820192602092909190829003018186803b15801561131a57600080fd5b505afa15801561132e573d6000803e3d6000fd5b505050506040513d602081101561134457600080fd5b5051600254604080516238a78560e71b81526004810184905290519293506000926001600160a01b0390921691631c53c280916024808201928692909190829003018186803b15801561139657600080fd5b505afa1580156113aa573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101408110156113d457600080fd5b815160208301805160405192949293830192919084600160201b8211156113fa57600080fd5b90830190602082018581111561140f57600080fd5b8251600160201b81118282018810171561142857600080fd5b82525081516020918201929091019080838360005b8381101561145557818101518382015260200161143d565b50505050905090810190601f1680156114825780820380516001836020036101000a031916815260200191505b50604081815260208301519083015160609093018051919593949293929184600160201b8211156114b257600080fd5b9083019060208201858111156114c757600080fd5b8251600160201b8111828201881017156114e057600080fd5b82525081516020918201929091019080838360005b8381101561150d5781810151838201526020016114f5565b50505050905090810190601f16801561153a5780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b82111561155c57600080fd5b90830190602082018581111561157157600080fd5b8251600160201b81118282018810171561158a57600080fd5b82525081516020918201929091019080838360005b838110156115b757818101518382015260200161159f565b50505050905090810190601f1680156115e45780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b82111561160657600080fd5b90830190602082018581111561161b57600080fd5b8251600160201b81118282018810171561163457600080fd5b82525081516020918201929091019080838360005b83811015611661578181015183820152602001611649565b50505050905090810190601f16801561168e5780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b8211156116b057600080fd5b9083019060208201858111156116c557600080fd5b8251600160201b8111828201881017156116de57600080fd5b82525081516020918201929091019080838360005b8381101561170b5781810151838201526020016116f3565b50505050905090810190601f1680156117385780820380516001836020036101000a031916815260200191505b5060405250969b50505050505050505050505090565b6117566112b9565b61175f57600080fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60025460408051638503112360e01b8152306004820152905160009283926001600160a01b0390911691638503112391602480820192602092909190829003018186803b1580156117d157600080fd5b505afa1580156117e5573d6000803e3d6000fd5b505050506040513d60208110156117fb57600080fd5b5051600254604080516238a78560e71b81526004810184905290519293506000926001600160a01b0390921691631c53c280916024808201928692909190829003018186803b15801561184d57600080fd5b505afa158015611861573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261014081101561188b57600080fd5b815160208301805160405192949293830192919084600160201b8211156118b157600080fd5b9083019060208201858111156118c657600080fd5b8251600160201b8111828201881017156118df57600080fd5b82525081516020918201929091019080838360005b8381101561190c5781810151838201526020016118f4565b50505050905090810190601f1680156119395780820380516001836020036101000a031916815260200191505b50604081815260208301519083015160609093018051919593949293929184600160201b82111561196957600080fd5b90830190602082018581111561197e57600080fd5b8251600160201b81118282018810171561199757600080fd5b82525081516020918201929091019080838360005b838110156119c45781810151838201526020016119ac565b50505050905090810190601f1680156119f15780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115611a1357600080fd5b908301906020820185811115611a2857600080fd5b8251600160201b811182820188101715611a4157600080fd5b82525081516020918201929091019080838360005b83811015611a6e578181015183820152602001611a56565b50505050905090810190601f168015611a9b5780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115611abd57600080fd5b908301906020820185811115611ad257600080fd5b8251600160201b811182820188101715611aeb57600080fd5b82525081516020918201929091019080838360005b83811015611b18578181015183820152602001611b00565b50505050905090810190601f168015611b455780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084600160201b821115611b6757600080fd5b908301906020820185811115611b7c57600080fd5b8251600160201b811182820188101715611b9557600080fd5b82525081516020918201929091019080838360005b83811015611bc2578181015183820152602001611baa565b50505050905090810190601f168015611bef5780820380516001836020036101000a031916815260200191505b50604052602001519c5050505050505050505050505090565b611c106112b9565b611c1957600080fd5b600254600160a01b900460ff1615611c6d576040805162461bcd60e51b8152602060048201526012602482015271185b1c9958591e481c9959da5cdd195c995960721b604482015290519081900360640190fd5b60025460408051631bad9e0560e11b815290516000926001600160a01b03169163375b3c0a916004808301926020929190829003018186803b158015611cb257600080fd5b505afa158015611cc6573d6000803e3d6000fd5b505050506040513d6020811015611cdc57600080fd5b5051600254604051633490bd3360e21b815260a060048201908152895160a483015289519394506001600160a01b039092169263d242f4cc9285928b928b928b928b928b92918291602482019160448101916064820191608481019160c49091019060208d019080838360005b83811015611d61578181015183820152602001611d49565b50505050905090810190601f168015611d8e5780820380516001836020036101000a031916815260200191505b5086810385528a5181528a516020918201918c019080838360005b83811015611dc1578181015183820152602001611da9565b50505050905090810190601f168015611dee5780820380516001836020036101000a031916815260200191505b5086810384528951815289516020918201918b019080838360005b83811015611e21578181015183820152602001611e09565b50505050905090810190601f168015611e4e5780820380516001836020036101000a031916815260200191505b5086810383528851815288516020918201918a019080838360005b83811015611e81578181015183820152602001611e69565b50505050905090810190601f168015611eae5780820380516001836020036101000a031916815260200191505b50868103825287518152875160209182019189019080838360005b83811015611ee1578181015183820152602001611ec9565b50505050905090810190601f168015611f0e5780820380516001836020036101000a031916815260200191505b509a50505050505050505050506000604051808303818588803b158015611f3457600080fd5b505af1158015611f48573d6000803e3d6000fd5b50506002805460ff60a01b1916600160a01b1790555050604080513380825260c0820185905260e060208084018281528c51928501929092528b517f4d0296a31b4182dca6aff087582c284441743a09fbc7484015f5b57cb6801f8e965092948c948c948c948c948c948c9493908401916060850191608086019160a08701916101008801918e019080838360005b83811015611fef578181015183820152602001611fd7565b50505050905090810190601f16801561201c5780820380516001836020036101000a031916815260200191505b5086810385528b5181528b516020918201918d019080838360005b8381101561204f578181015183820152602001612037565b50505050905090810190601f16801561207c5780820380516001836020036101000a031916815260200191505b5086810384528a5181528a516020918201918c019080838360005b838110156120af578181015183820152602001612097565b50505050905090810190601f1680156120dc5780820380516001836020036101000a031916815260200191505b5086810383528951815289516020918201918b019080838360005b8381101561210f5781810151838201526020016120f7565b50505050905090810190601f16801561213c5780820380516001836020036101000a031916815260200191505b5086810382528851815288516020918201918a019080838360005b8381101561216f578181015183820152602001612157565b50505050905090810190601f16801561219c5780820380516001836020036101000a031916815260200191505b509c5050505050505050505050505060405180910390a1505050505050565b6001546001600160a01b0316331490565b6121d46121bb565b612217576040805162461bcd60e51b815260206004820152600f60248201526e37b7363c903337bab73230ba34b7b760891b604482015290519081900360640190fd5b60006122216112aa565b905061222c82612333565b604080516001600160a01b0380841682528416602082015281517ffe459a7f10652ddcfe92820200e4635f93262667763531372e5bc42e56ec7c9b929181900390910190a15050565b61227d6112b9565b61228657600080fd5b61228f81612333565b50565b61229a6121bb565b6122dd576040805162461bcd60e51b815260206004820152600f60248201526e37b7363c903337bab73230ba34b7b760891b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60035481565b60008282018381101561231757600080fd5b9392505050565b60008282111561232d57600080fd5b50900390565b6001600160a01b03811661234657600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe756e7374616b696e6720616d6f756e742073686f756c64206e6f742062652067726561746572207468616e20617661696c61626c65556e7374616b65416d6f756e742ea265627a7a7231582053a54d64381645b314042de3e3eb5d21e27644ae46318599ce9464c234e8584664736f6c634300050b0032", + "sourceMap": "55:147:5:-;;;;;298:71:3;;;-1:-1:-1;;;;;;298:71:3;;;326:42;298:71;;;;;515:19:7;;;;;524:10;515:19;;;;-1:-1:-1;;;;;582:6:7;;549:40;;298:71:3;;549:40:7;114:17:0;:30;;-1:-1:-1;;;;;;114:30:0;134:10;114:30;;;55:147:5;;;;;;", + "deployedSourceMap": "55:147:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1251:36:3;;;1265:10;1251:36;;1277:9;1251:36;;;;;;;;;;;;;;;;;55:147:5;373:22:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;373:22:3;;;:::i;:::-;;;;;;;;;;;;;;;;;;2432:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2432:222:3;;;:::i;:::-;;2706:304;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2706:304:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2706:304:3;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2706:304:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2706:304:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2706:304:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2706:304:3;;-1:-1:-1;2706:304:3;;-1:-1:-1;;;;;2706:304:3:i;3804:200::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3804:200:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3804:200:3;;:::i;424:37::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;424:37:3;;;:::i;:::-;;;;;;;;;;;;;;;;1347:137:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1347:137:7;;;:::i;3462:309:3:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3462:309:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3462:309:3;;:::i;659:77:7:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;659:77:7;;;:::i;:::-;;;;-1:-1:-1;;;;;659:77:7;;;;;;;;;;;;;;979:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;979:90:7;;;:::i;1371:215:3:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1371:215:3;;;:::i;100:99:5:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;100:99:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;100:99:5;-1:-1:-1;;;;;100:99:5;;:::i;1590:223:3:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1590:223:3;;;:::i;1948:439::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1948:439:3;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1948:439:3;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;1948:439:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1948:439:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1948:439:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1948:439:3;;;;;;;;-1:-1:-1;1948:439:3;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;1948:439:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1948:439:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1948:439:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1948:439:3;;;;;;;;-1:-1:-1;1948:439:3;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;1948:439:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1948:439:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1948:439:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1948:439:3;;;;;;;;-1:-1:-1;1948:439:3;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;1948:439:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1948:439:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1948:439:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1948:439:3;;;;;;;;-1:-1:-1;1948:439:3;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;1948:439:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1948:439:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1948:439:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1948:439:3;;-1:-1:-1;1948:439:3;;-1:-1:-1;;;;;1948:439:3:i;335:100:0:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;335:100:0;;;:::i;3156:211:3:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3156:211:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3156:211:3;-1:-1:-1;;;;;3156:211:3;;:::i;1655:107:7:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1655:107:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1655:107:7;-1:-1:-1;;;;;1655:107:7;;:::i;439:109:0:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;439:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;439:109:0;-1:-1:-1;;;;;439:109:0;;:::i;399:21:3:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;399:21:3;;;:::i;373:22::-;;;-1:-1:-1;;;373:22:3;;;;;:::o;2432:222::-;863:9:7;:7;:9::i;:::-;855:18;;;;;;1064:10:3;;-1:-1:-1;;;1064:10:3;;;;1056:41;;;;;-1:-1:-1;;;1056:41:3;;;;;;;;;;;;-1:-1:-1;;;1056:41:3;;;;;;;;;;;;;;;2494:3;;;;;;;;;-1:-1:-1;;;;;2494:3:3;-1:-1:-1;;;;;2494:16:3;;:18;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2494:18:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2494:18:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2494:18:3;2490:38;;;2514:3;;;;;;;;;-1:-1:-1;;;;;2514:3:3;-1:-1:-1;;;;;2514:12:3;;:14;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2514:14:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2514:14:3;;;;2490:38;2578:27;;2559:4;2551:21;;2578:10;;:27;;;;;2551:21;;2534:14;2578:27;2534:14;2578:27;2551:21;2578:10;:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;2616:33:3;;;2630:10;2616:33;;;;;;;;;;;;;;;;;;;;;1103:1;2432:222::o;2706:304::-;863:9:7;:7;:9::i;:::-;855:18;;;;;;1064:10:3;;-1:-1:-1;;;1064:10:3;;;;1056:41;;;;;-1:-1:-1;;;1056:41:3;;;;;;;;;;;;-1:-1:-1;;;1056:41:3;;;;;;;;;;;;;;;2842:3;;:39;;;-1:-1:-1;;;2842:39:3;;2875:4;2842:39;;;;;;2792:19;;2817:14;;-1:-1:-1;;;;;2842:3:3;;;;:24;;:39;;;;;;;;;;;;;;;:3;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;2842:39:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2842:39:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2842:39:3;2908:3;;:17;;;-1:-1:-1;;;2908:17:3;;;;;;;;;;2842:39;;-1:-1:-1;;;;;;2908:3:3;;;;:9;;:17;;;;;:3;;:17;;;;;;;;:3;:17;;;5:2:-1;;;;30:1;27;20:12;5:2;2908:17:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2908:17:3;;;;;;39:16:-1;36:1;17:17;2:54;101:4;2908:17:3;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;2908:17:3;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;2908:17:3;;420:4:-1;411:14;;;;2908:17:3;;;;;411:14:-1;2908:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2908:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2908:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;2908:17:3;;420:4:-1;411:14;;;;2908:17:3;;;;;411:14:-1;2908:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2908:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;2908:17:3;;420:4:-1;411:14;;;;2908:17:3;;;;;411:14:-1;2908:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2908:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;2908:17:3;;420:4:-1;411:14;;;;2908:17:3;;;;;411:14:-1;2908:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2908:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;2908:17:3;;420:4:-1;411:14;;;;2908:17:3;;;;;411:14:-1;2908:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2908:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2888:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2931:3;;;;;;;;;-1:-1:-1;;;;;2931:3:3;-1:-1:-1;;;;;2931:24:3;;2956:3;2931:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2931:29:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2931:29:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2931:29:3;;;;2971:34;2993:6;3001:3;2971:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2971:34:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2971:34:3;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2971:34:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1103:1;;2706:304;:::o;3804:200::-;239:14:0;:12;:14::i;:::-;231:42;;;;;-1:-1:-1;;;231:42:0;;;;;;;;;;;;-1:-1:-1;;;231:42:0;;;;;;;;;;;;;;;1064:10:3;;-1:-1:-1;;;1064:10:3;;;;1056:41;;;;;-1:-1:-1;;;1056:41:3;;;;;;;;;;;;-1:-1:-1;;;1056:41:3;;;;;;;;;;;;;;;3886:6;;:18;;3897:6;3886:18;:10;:18;:::i;:::-;3877:6;:27;3936:22;;:34;;3963:6;3936:34;:26;:34;:::i;:::-;3911:22;:59;3981:18;;;;;;;;;;;;;;;;;3804:200;:::o;424:37::-;;;;:::o;1347:137:7:-;863:9;:7;:9::i;:::-;855:18;;;;;;1445:1;1429:6;;1408:40;;-1:-1:-1;;;;;1429:6:7;;;;1408:40;;1445:1;;1408:40;1475:1;1458:19;;-1:-1:-1;;;;;;1458:19:7;;;1347:137::o;3462:309:3:-;239:14:0;:12;:14::i;:::-;231:42;;;;;-1:-1:-1;;;231:42:0;;;;;;;;;;;;-1:-1:-1;;;231:42:0;;;;;;;;;;;;;;;1064:10:3;;-1:-1:-1;;;1064:10:3;;;;1056:41;;;;;-1:-1:-1;;;1056:41:3;;;;;;;;;;;;-1:-1:-1;;;1056:41:3;;;;;;;;;;;;;;;3568:22;;3558:6;:32;;3550:112;;;;-1:-1:-1;;;3550:112:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3668:22;;:34;;3695:6;3668:34;:26;:34;:::i;:::-;-1:-1:-1;3708:3:3;;:19;;;-1:-1:-1;;;3708:19:3;;;;;;;;;;-1:-1:-1;;;;;3708:3:3;;;;:11;;:19;;;;;:3;;:19;;;;;;;;:3;;:19;;;5:2:-1;;;;30:1;27;20:12;5:2;3708:19:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3738:28:3;;;;;;;;;;-1:-1:-1;3738:28:3;;;;;;;-1:-1:-1;3738:28:3;3462:309;:::o;659:77:7:-;697:7;723:6;-1:-1:-1;;;;;723:6:7;659:77;:::o;979:90::-;1019:4;1056:6;-1:-1:-1;;;;;1056:6:7;1042:10;:20;;979:90::o;1371:215:3:-;1459:3;;:39;;;-1:-1:-1;;;1459:39:3;;1492:4;1459:39;;;;;;1419:7;;;;-1:-1:-1;;;;;1459:3:3;;;;:24;;:39;;;;;;;;;;;;;;;:3;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;1459:39:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1459:39:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1459:39:3;1545:3;;:17;;;-1:-1:-1;;;1545:17:3;;;;;;;;;;1459:39;;-1:-1:-1;1505:14:3;;-1:-1:-1;;;;;1545:3:3;;;;:9;;:17;;;;;1505:14;;1545:17;;;;;;;;:3;:17;;;5:2:-1;;;;30:1;27;20:12;5:2;1545:17:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1545:17:3;;;;;;39:16:-1;36:1;17:17;2:54;101:4;1545:17:3;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;1545:17:3;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;1545:17:3;;420:4:-1;411:14;;;;1545:17:3;;;;;411:14:-1;1545:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1545:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1545:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;1545:17:3;;420:4:-1;411:14;;;;1545:17:3;;;;;411:14:-1;1545:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1545:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;1545:17:3;;420:4:-1;411:14;;;;1545:17:3;;;;;411:14:-1;1545:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1545:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;1545:17:3;;420:4:-1;411:14;;;;1545:17:3;;;;;411:14:-1;1545:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1545:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;1545:17:3;;420:4:-1;411:14;;;;1545:17:3;;;;;411:14:-1;1545:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1545:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1545:17:3;;-1:-1:-1;1525:37:3;;-1:-1:-1;;;;;;;;;;;;1371:215:3;:::o;100:99:5:-;863:9:7;:7;:9::i;:::-;855:18;;;;;;166:3:5;:28;;-1:-1:-1;;;;;;166:28:5;-1:-1:-1;;;;;166:28:5;;;;;;;;;;100:99::o;1590:223:3:-;1680:3;;:39;;;-1:-1:-1;;;1680:39:3;;1713:4;1680:39;;;;;;1640:7;;;;-1:-1:-1;;;;;1680:3:3;;;;:24;;:39;;;;;;;;;;;;;;;:3;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;1680:39:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1680:39:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1680:39:3;1770:3;;:17;;;-1:-1:-1;;;1770:17:3;;;;;;;;;;1680:39;;-1:-1:-1;1726:16:3;;-1:-1:-1;;;;;1770:3:3;;;;:9;;:17;;;;;1726:16;;1770:17;;;;;;;;:3;:17;;;5:2:-1;;;;30:1;27;20:12;5:2;1770:17:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1770:17:3;;;;;;39:16:-1;36:1;17:17;2:54;101:4;1770:17:3;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;1770:17:3;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;1770:17:3;;420:4:-1;411:14;;;;1770:17:3;;;;;411:14:-1;1770:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1770:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1770:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;1770:17:3;;420:4:-1;411:14;;;;1770:17:3;;;;;411:14:-1;1770:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1770:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;1770:17:3;;420:4:-1;411:14;;;;1770:17:3;;;;;411:14:-1;1770:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1770:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;1770:17:3;;420:4:-1;411:14;;;;1770:17:3;;;;;411:14:-1;1770:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1770:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;1770:17:3;;420:4:-1;411:14;;;;1770:17:3;;;;;411:14:-1;1770:17:3;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1770:17:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1770:17:3;;;;;;-1:-1:-1;;;;;;;;;;;;;1590:223:3;:::o;1948:439::-;863:9:7;:7;:9::i;:::-;855:18;;;;;;2130:10:3;;-1:-1:-1;;;2130:10:3;;;;2129:11;2121:42;;;;;-1:-1:-1;;;2121:42:3;;;;;;;;;;;;-1:-1:-1;;;2121:42:3;;;;;;;;;;;;;;;2188:3;;:14;;;-1:-1:-1;;;2188:14:3;;;;2169:16;;-1:-1:-1;;;;;2188:3:3;;:12;;:14;;;;;;;;;;;;;;:3;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;2188:14:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2188:14:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2188:14:3;2208:3;;:67;;-1:-1:-1;;;2208:67:3;;;;;;;;;;;;;;;;;2188:14;;-1:-1:-1;;;;;;2208:3:3;;;;:12;;2188:14;;2237:9;;2248:4;;2254:5;;2261:8;;2271:3;;2208:67;;;;;;;;;;;;;;;;;;;;;;;;2188:14;2208:67;;;;;;:3;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2208:67:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2208:67:3;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2208:67:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2208:67:3;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2208:67:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2208:67:3;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2208:67:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2208:67:3;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2208:67:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2208:67:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2281:10:3;:17;;-1:-1:-1;;;;2281:17:3;-1:-1:-1;;;2281:17:3;;;-1:-1:-1;;2309:73:3;;;2322:10;2309:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2322:10:3;;2334:9;;2345:4;;2351:5;;2358:8;;2368:3;;2373:8;;2309:73;;;;;;;;;;;;;;;;;2281:17;2309:73;;;;;;;;;2281:17;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2309:73:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2309:73:3;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2309:73:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2309:73:3;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2309:73:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2309:73:3;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2309:73:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2309:73:3;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2309:73:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;883:1:7;1948:439:3;;;;;:::o;335:100:0:-;413:17;;-1:-1:-1;;;;;413:17:0;399:10;:31;;335:100::o;3156:211:3:-;239:14:0;:12;:14::i;:::-;231:42;;;;;-1:-1:-1;;;231:42:0;;;;;;;;;;;;-1:-1:-1;;;231:42:0;;;;;;;;;;;;;;;3241:16:3;3260:7;:5;:7::i;:::-;3241:26;;3273:28;3292:8;3273:18;:28::i;:::-;3312:50;;;-1:-1:-1;;;;;3312:50:3;;;;;;;;;;;;;;;;;;;;;;;;279:1:0;3156:211:3;:::o;1655:107:7:-;863:9;:7;:9::i;:::-;855:18;;;;;;1727:28;1746:8;1727:18;:28::i;:::-;1655:107;:::o;439:109:0:-;239:14;:12;:14::i;:::-;231:42;;;;;-1:-1:-1;;;231:42:0;;;;;;;;;;;;-1:-1:-1;;;231:42:0;;;;;;;;;;;;;;;515:17;:28;;-1:-1:-1;;;;;;515:28:0;-1:-1:-1;;;;;515:28:0;;;;;;;;;;439:109::o;399:21:3:-;;;;:::o;1431:145:6:-;1489:7;1520:5;;;1543:6;;;;1535:15;;;;;;1568:1;1431:145;-1:-1:-1;;;1431:145:6:o;1205:::-;1263:7;1295:1;1290;:6;;1282:15;;;;;;-1:-1:-1;1319:5:6;;;1205:145::o;1906:183:7:-;-1:-1:-1;;;;;1979:22:7;;1971:31;;;;;;2038:6;;;2017:38;;-1:-1:-1;;;;;2017:38:7;;;;2038:6;;;2017:38;;;2065:6;:17;;-1:-1:-1;;;;;;2065:17:7;-1:-1:-1;;;;;2065:17:7;;;;;;;;;;1906:183::o", + "source": "pragma solidity ^0.5.11;\n\nimport \"../NodeStaker.sol\";\n\ncontract NodeStakerMock is NodeStaker {\n \n function setGovernance(address govAddress) public onlyOwner {\n gov = Governance(govAddress);\n }\n\n}\n", + "sourcePath": "/Users/aitjcize/Work/tangerine-network/node-staker/contracts/test/NodeStakerMock.sol", + "ast": { + "absolutePath": "/Users/aitjcize/Work/tangerine-network/node-staker/contracts/test/NodeStakerMock.sol", + "exportedSymbols": { + "NodeStakerMock": [ + 1279 + ] + }, + "id": 1280, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1261, + "literals": [ + "solidity", + "^", + "0.5", + ".11" + ], + "nodeType": "PragmaDirective", + "src": "0:24:5" + }, + { + "absolutePath": "/Users/aitjcize/Work/tangerine-network/node-staker/contracts/NodeStaker.sol", + "file": "../NodeStaker.sol", + "id": 1262, + "nodeType": "ImportDirective", + "scope": 1280, + "sourceUnit": 862, + "src": "26:27:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1263, + "name": "NodeStaker", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 861, + "src": "82:10:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NodeStaker_$861", + "typeString": "contract NodeStaker" + } + }, + "id": 1264, + "nodeType": "InheritanceSpecifier", + "src": "82:10:5" + } + ], + "contractDependencies": [ + 46, + 861, + 1516 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1279, + "linearizedBaseContracts": [ + 1279, + 861, + 46, + 1516 + ], + "name": "NodeStakerMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1277, + "nodeType": "Block", + "src": "160:39:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1271, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "166:3:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1273, + "name": "govAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "183:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1272, + "name": "Governance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 430, + "src": "172:10:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Governance_$430_$", + "typeString": "type(contract Governance)" + } + }, + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "172:22:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "src": "166:28:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 1276, + "nodeType": "ExpressionStatement", + "src": "166:28:5" + } + ] + }, + "documentation": null, + "id": 1278, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1269, + "modifierName": { + "argumentTypes": null, + "id": 1268, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1450, + "src": "150:9:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "150:9:5" + } + ], + "name": "setGovernance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1267, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1266, + "name": "govAddress", + "nodeType": "VariableDeclaration", + "scope": 1278, + "src": "123:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "123:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "122:20:5" + }, + "returnParameters": { + "id": 1270, + "nodeType": "ParameterList", + "parameters": [], + "src": "160:0:5" + }, + "scope": 1279, + "src": "100:99:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 1280, + "src": "55:147:5" + } + ], + "src": "0:203:5" + }, + "legacyAST": { + "absolutePath": "/Users/aitjcize/Work/tangerine-network/node-staker/contracts/test/NodeStakerMock.sol", + "exportedSymbols": { + "NodeStakerMock": [ + 1279 + ] + }, + "id": 1280, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1261, + "literals": [ + "solidity", + "^", + "0.5", + ".11" + ], + "nodeType": "PragmaDirective", + "src": "0:24:5" + }, + { + "absolutePath": "/Users/aitjcize/Work/tangerine-network/node-staker/contracts/NodeStaker.sol", + "file": "../NodeStaker.sol", + "id": 1262, + "nodeType": "ImportDirective", + "scope": 1280, + "sourceUnit": 862, + "src": "26:27:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1263, + "name": "NodeStaker", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 861, + "src": "82:10:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_NodeStaker_$861", + "typeString": "contract NodeStaker" + } + }, + "id": 1264, + "nodeType": "InheritanceSpecifier", + "src": "82:10:5" + } + ], + "contractDependencies": [ + 46, + 861, + 1516 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1279, + "linearizedBaseContracts": [ + 1279, + 861, + 46, + 1516 + ], + "name": "NodeStakerMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1277, + "nodeType": "Block", + "src": "160:39:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1271, + "name": "gov", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 505, + "src": "166:3:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1273, + "name": "govAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "183:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1272, + "name": "Governance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 430, + "src": "172:10:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Governance_$430_$", + "typeString": "type(contract Governance)" + } + }, + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "172:22:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "src": "166:28:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$430", + "typeString": "contract Governance" + } + }, + "id": 1276, + "nodeType": "ExpressionStatement", + "src": "166:28:5" + } + ] + }, + "documentation": null, + "id": 1278, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1269, + "modifierName": { + "argumentTypes": null, + "id": 1268, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1450, + "src": "150:9:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "150:9:5" + } + ], + "name": "setGovernance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1267, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1266, + "name": "govAddress", + "nodeType": "VariableDeclaration", + "scope": 1278, + "src": "123:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "123:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "122:20:5" + }, + "returnParameters": { + "id": 1270, + "nodeType": "ParameterList", + "parameters": [], + "src": "160:0:5" + }, + "scope": 1279, + "src": "100:99:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 1280, + "src": "55:147:5" + } + ], + "src": "0:203:5" + }, + "compiler": { + "name": "solc", + "version": "0.5.11+commit.c082d0b4.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.11", + "updatedAt": "2019-09-29T03:11:52.538Z", + "devdoc": { + "methods": { + "isOwner()": { + "return": "true if `msg.sender` is the owner of the contract." + }, + "owner()": { + "return": "the address of the owner." + }, + "register(bytes,string,string,string,string)": { + "details": "register a node" + }, + "renounceOwnership()": { + "details": "Allows the current owner to relinquish control of the contract." + }, + "replaceNodePublicKey(bytes)": { + "details": "replace node public key" + }, + "transferOwnership(address)": { + "details": "Allows the current owner to transfer control of the contract to a newOwner.", + "params": { + "newOwner": "The address to transfer ownership to." + } + }, + "transferOwnershipByFoundation(address)": { + "details": "transfer node ownership" + }, + "unstakeByFoundation(uint256)": { + "details": "unstake by foundation" + }, + "vest(uint256)": { + "details": "vest" + }, + "withdraw()": { + "details": "withdraw balance" + } + } + }, + "userdoc": { + "methods": { + "renounceOwnership()": { + "notice": "Renouncing to ownership will leave the contract without an owner. It will not be possible to call the functions with the `onlyOwner` modifier anymore." + }, + "unstakeByFoundation(uint256)": { + "notice": "only can unstake vested amount" + } + } + } +}
\ No newline at end of file diff --git a/build/contracts/Ownable.json b/build/contracts/Ownable.json new file mode 100644 index 0000000..6ebfdaf --- /dev/null +++ b/build/contracts/Ownable.json @@ -0,0 +1,2841 @@ +{ + "contractName": "Ownable", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.11+commit.c082d0b4\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"The Ownable contract has an owner address, and provides basic authorization control functions, this simplifies the implementation of \\\"user permissions\\\".\",\"methods\":{\"constructor\":{\"details\":\"The Ownable constructor sets the original `owner` of the contract to the sender account.\"},\"isOwner()\":{\"return\":\"true if `msg.sender` is the owner of the contract.\"},\"owner()\":{\"return\":\"the address of the owner.\"},\"renounceOwnership()\":{\"details\":\"Allows the current owner to relinquish control of the contract.\"},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to transfer control of the contract to a newOwner.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}}},\"title\":\"Ownable\"},\"userdoc\":{\"methods\":{\"renounceOwnership()\":{\"notice\":\"Renouncing to ownership will leave the contract without an owner. It will not be possible to call the functions with the `onlyOwner` modifier anymore.\"}}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0x980de387a1a020a498f53d00f89fecebb12c949a17e8f160093c0303ede2b786\",\"urls\":[\"bzz-raw://f07a2c393caa85f62f0aaa461e3edd50aa59371d4209778ba0558d7f8b4b856c\",\"dweb:/ipfs/QmeN3ZiYGSjCnQFeYaJNgoXjF9eDue1g3e9pqManRkeBtV\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity ^0.5.0;\n\n/**\n * @title Ownable\n * @dev The Ownable contract has an owner address, and provides basic authorization control\n * functions, this simplifies the implementation of \"user permissions\".\n */\ncontract Ownable {\n address private _owner;\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev The Ownable constructor sets the original `owner` of the contract to the sender\n * account.\n */\n constructor () internal {\n _owner = msg.sender;\n emit OwnershipTransferred(address(0), _owner);\n }\n\n /**\n * @return the address of the owner.\n */\n function owner() public view returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n require(isOwner());\n _;\n }\n\n /**\n * @return true if `msg.sender` is the owner of the contract.\n */\n function isOwner() public view returns (bool) {\n return msg.sender == _owner;\n }\n\n /**\n * @dev Allows the current owner to relinquish control of the contract.\n * @notice Renouncing to ownership will leave the contract without an owner.\n * It will not be possible to call the functions with the `onlyOwner`\n * modifier anymore.\n */\n function renounceOwnership() public onlyOwner {\n emit OwnershipTransferred(_owner, address(0));\n _owner = address(0);\n }\n\n /**\n * @dev Allows the current owner to transfer control of the contract to a newOwner.\n * @param newOwner The address to transfer ownership to.\n */\n function transferOwnership(address newOwner) public onlyOwner {\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers control of the contract to a newOwner.\n * @param newOwner The address to transfer ownership to.\n */\n function _transferOwnership(address newOwner) internal {\n require(newOwner != address(0));\n emit OwnershipTransferred(_owner, newOwner);\n _owner = newOwner;\n }\n}\n", + "sourcePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "ast": { + "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "exportedSymbols": { + "Ownable": [ + 1516 + ] + }, + "id": 1517, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1409, + "literals": [ + "solidity", + "^", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:7" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title Ownable\n@dev The Ownable contract has an owner address, and provides basic authorization control\nfunctions, this simplifies the implementation of \"user permissions\".", + "fullyImplemented": true, + "id": 1516, + "linearizedBaseContracts": [ + 1516 + ], + "name": "Ownable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 1411, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 1516, + "src": "238:22:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "238:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 1417, + "name": "OwnershipTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 1416, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1413, + "indexed": true, + "name": "previousOwner", + "nodeType": "VariableDeclaration", + "scope": 1417, + "src": "294:29:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1412, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "294:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1415, + "indexed": true, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 1417, + "src": "325:24:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "325:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "293:57:7" + }, + "src": "267:84:7" + }, + { + "body": { + "id": 1432, + "nodeType": "Block", + "src": "505:91:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1420, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1411, + "src": "515:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1421, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "524:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "524:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "515:19:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1424, + "nodeType": "ExpressionStatement", + "src": "515:19:7" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1427, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "578:1:7", + "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": 1426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "570:7:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "570:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1429, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1411, + "src": "582:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1425, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "549:20:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 1430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "549:40:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1431, + "nodeType": "EmitStatement", + "src": "544:45:7" + } + ] + }, + "documentation": "@dev The Ownable constructor sets the original `owner` of the contract to the sender\naccount.", + "id": 1433, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1418, + "nodeType": "ParameterList", + "parameters": [], + "src": "493:2:7" + }, + "returnParameters": { + "id": 1419, + "nodeType": "ParameterList", + "parameters": [], + "src": "505:0:7" + }, + "scope": 1516, + "src": "481:115:7", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1440, + "nodeType": "Block", + "src": "706:30:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1438, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1411, + "src": "723:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1437, + "id": 1439, + "nodeType": "Return", + "src": "716:13:7" + } + ] + }, + "documentation": "@return the address of the owner.", + "id": 1441, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "owner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1434, + "nodeType": "ParameterList", + "parameters": [], + "src": "673:2:7" + }, + "returnParameters": { + "id": 1437, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1436, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1441, + "src": "697:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1435, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "697:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "696:9:7" + }, + "scope": 1516, + "src": "659:77:7", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1449, + "nodeType": "Block", + "src": "845:46:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1444, + "name": "isOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1461, + "src": "863:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 1445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "863:9:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1443, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1534, + "src": "855:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "855:18:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1447, + "nodeType": "ExpressionStatement", + "src": "855:18:7" + }, + { + "id": 1448, + "nodeType": "PlaceholderStatement", + "src": "883:1:7" + } + ] + }, + "documentation": "@dev Throws if called by any account other than the owner.", + "id": 1450, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 1442, + "nodeType": "ParameterList", + "parameters": [], + "src": "842:2:7" + }, + "src": "824:67:7", + "visibility": "internal" + }, + { + "body": { + "id": 1460, + "nodeType": "Block", + "src": "1025:44:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1455, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1042:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1042:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1457, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1411, + "src": "1056:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1042:20:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1454, + "id": 1459, + "nodeType": "Return", + "src": "1035:27:7" + } + ] + }, + "documentation": "@return true if `msg.sender` is the owner of the contract.", + "id": 1461, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1451, + "nodeType": "ParameterList", + "parameters": [], + "src": "995:2:7" + }, + "returnParameters": { + "id": 1454, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1453, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1461, + "src": "1019:4:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1452, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1019:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1018:6:7" + }, + "scope": 1516, + "src": "979:90:7", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1479, + "nodeType": "Block", + "src": "1393:91:7", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1467, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1411, + "src": "1429:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1445:1:7", + "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": 1468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1437:7:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1437:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1466, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "1408:20:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 1471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1408:40:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1472, + "nodeType": "EmitStatement", + "src": "1403:45:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 1477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1473, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1411, + "src": "1458:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1475:1:7", + "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": 1474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1467:7:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1467:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1458:19:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1478, + "nodeType": "ExpressionStatement", + "src": "1458:19:7" + } + ] + }, + "documentation": "@dev Allows the current owner to relinquish control of the contract.\n@notice Renouncing to ownership will leave the contract without an owner.\nIt will not be possible to call the functions with the `onlyOwner`\nmodifier anymore.", + "id": 1480, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1464, + "modifierName": { + "argumentTypes": null, + "id": 1463, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1450, + "src": "1383:9:7", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1383:9:7" + } + ], + "name": "renounceOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1462, + "nodeType": "ParameterList", + "parameters": [], + "src": "1373:2:7" + }, + "returnParameters": { + "id": 1465, + "nodeType": "ParameterList", + "parameters": [], + "src": "1393:0:7" + }, + "scope": 1516, + "src": "1347:137:7", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1491, + "nodeType": "Block", + "src": "1717:45:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1488, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1482, + "src": "1746:8:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1487, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1515, + "src": "1727:18:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1727:28:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1490, + "nodeType": "ExpressionStatement", + "src": "1727:28:7" + } + ] + }, + "documentation": "@dev Allows the current owner to transfer control of the contract to a newOwner.\n@param newOwner The address to transfer ownership to.", + "id": 1492, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1485, + "modifierName": { + "argumentTypes": null, + "id": 1484, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1450, + "src": "1707:9:7", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1707:9:7" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1482, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 1492, + "src": "1682:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1481, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1682:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1681:18:7" + }, + "returnParameters": { + "id": 1486, + "nodeType": "ParameterList", + "parameters": [], + "src": "1717:0:7" + }, + "scope": 1516, + "src": "1655:107:7", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1514, + "nodeType": "Block", + "src": "1961:128:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1498, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1494, + "src": "1979:8:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1500, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1999:1:7", + "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": 1499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1991:7:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1991:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1979:22:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1497, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1534, + "src": "1971:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1971:31:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1504, + "nodeType": "ExpressionStatement", + "src": "1971:31:7" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1506, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1411, + "src": "2038:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1507, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1494, + "src": "2046:8:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1505, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "2017:20:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 1508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2017:38:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1509, + "nodeType": "EmitStatement", + "src": "2012:43:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 1512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1510, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1411, + "src": "2065:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1511, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1494, + "src": "2074:8:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2065:17:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1513, + "nodeType": "ExpressionStatement", + "src": "2065:17:7" + } + ] + }, + "documentation": "@dev Transfers control of the contract to a newOwner.\n@param newOwner The address to transfer ownership to.", + "id": 1515, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1495, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1494, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 1515, + "src": "1934:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1493, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1934:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1933:18:7" + }, + "returnParameters": { + "id": 1496, + "nodeType": "ParameterList", + "parameters": [], + "src": "1961:0:7" + }, + "scope": 1516, + "src": "1906:183:7", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 1517, + "src": "215:1876:7" + } + ], + "src": "0:2092:7" + }, + "legacyAST": { + "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", + "exportedSymbols": { + "Ownable": [ + 1516 + ] + }, + "id": 1517, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1409, + "literals": [ + "solidity", + "^", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:7" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title Ownable\n@dev The Ownable contract has an owner address, and provides basic authorization control\nfunctions, this simplifies the implementation of \"user permissions\".", + "fullyImplemented": true, + "id": 1516, + "linearizedBaseContracts": [ + 1516 + ], + "name": "Ownable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 1411, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 1516, + "src": "238:22:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "238:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 1417, + "name": "OwnershipTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 1416, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1413, + "indexed": true, + "name": "previousOwner", + "nodeType": "VariableDeclaration", + "scope": 1417, + "src": "294:29:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1412, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "294:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1415, + "indexed": true, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 1417, + "src": "325:24:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "325:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "293:57:7" + }, + "src": "267:84:7" + }, + { + "body": { + "id": 1432, + "nodeType": "Block", + "src": "505:91:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1420, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1411, + "src": "515:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1421, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "524:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "524:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "515:19:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1424, + "nodeType": "ExpressionStatement", + "src": "515:19:7" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1427, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "578:1:7", + "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": 1426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "570:7:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "570:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1429, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1411, + "src": "582:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1425, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "549:20:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 1430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "549:40:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1431, + "nodeType": "EmitStatement", + "src": "544:45:7" + } + ] + }, + "documentation": "@dev The Ownable constructor sets the original `owner` of the contract to the sender\naccount.", + "id": 1433, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1418, + "nodeType": "ParameterList", + "parameters": [], + "src": "493:2:7" + }, + "returnParameters": { + "id": 1419, + "nodeType": "ParameterList", + "parameters": [], + "src": "505:0:7" + }, + "scope": 1516, + "src": "481:115:7", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1440, + "nodeType": "Block", + "src": "706:30:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1438, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1411, + "src": "723:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1437, + "id": 1439, + "nodeType": "Return", + "src": "716:13:7" + } + ] + }, + "documentation": "@return the address of the owner.", + "id": 1441, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "owner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1434, + "nodeType": "ParameterList", + "parameters": [], + "src": "673:2:7" + }, + "returnParameters": { + "id": 1437, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1436, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1441, + "src": "697:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1435, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "697:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "696:9:7" + }, + "scope": 1516, + "src": "659:77:7", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1449, + "nodeType": "Block", + "src": "845:46:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1444, + "name": "isOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1461, + "src": "863:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 1445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "863:9:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1443, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1534, + "src": "855:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "855:18:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1447, + "nodeType": "ExpressionStatement", + "src": "855:18:7" + }, + { + "id": 1448, + "nodeType": "PlaceholderStatement", + "src": "883:1:7" + } + ] + }, + "documentation": "@dev Throws if called by any account other than the owner.", + "id": 1450, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 1442, + "nodeType": "ParameterList", + "parameters": [], + "src": "842:2:7" + }, + "src": "824:67:7", + "visibility": "internal" + }, + { + "body": { + "id": 1460, + "nodeType": "Block", + "src": "1025:44:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1455, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "1042:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1042:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1457, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1411, + "src": "1056:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1042:20:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1454, + "id": 1459, + "nodeType": "Return", + "src": "1035:27:7" + } + ] + }, + "documentation": "@return true if `msg.sender` is the owner of the contract.", + "id": 1461, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1451, + "nodeType": "ParameterList", + "parameters": [], + "src": "995:2:7" + }, + "returnParameters": { + "id": 1454, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1453, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1461, + "src": "1019:4:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1452, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1019:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1018:6:7" + }, + "scope": 1516, + "src": "979:90:7", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1479, + "nodeType": "Block", + "src": "1393:91:7", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1467, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1411, + "src": "1429:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1445:1:7", + "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": 1468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1437:7:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1437:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1466, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "1408:20:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 1471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1408:40:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1472, + "nodeType": "EmitStatement", + "src": "1403:45:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 1477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1473, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1411, + "src": "1458:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1475:1:7", + "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": 1474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1467:7:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1467:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1458:19:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1478, + "nodeType": "ExpressionStatement", + "src": "1458:19:7" + } + ] + }, + "documentation": "@dev Allows the current owner to relinquish control of the contract.\n@notice Renouncing to ownership will leave the contract without an owner.\nIt will not be possible to call the functions with the `onlyOwner`\nmodifier anymore.", + "id": 1480, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1464, + "modifierName": { + "argumentTypes": null, + "id": 1463, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1450, + "src": "1383:9:7", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1383:9:7" + } + ], + "name": "renounceOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1462, + "nodeType": "ParameterList", + "parameters": [], + "src": "1373:2:7" + }, + "returnParameters": { + "id": 1465, + "nodeType": "ParameterList", + "parameters": [], + "src": "1393:0:7" + }, + "scope": 1516, + "src": "1347:137:7", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1491, + "nodeType": "Block", + "src": "1717:45:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1488, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1482, + "src": "1746:8:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1487, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1515, + "src": "1727:18:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1727:28:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1490, + "nodeType": "ExpressionStatement", + "src": "1727:28:7" + } + ] + }, + "documentation": "@dev Allows the current owner to transfer control of the contract to a newOwner.\n@param newOwner The address to transfer ownership to.", + "id": 1492, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1485, + "modifierName": { + "argumentTypes": null, + "id": 1484, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1450, + "src": "1707:9:7", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1707:9:7" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1482, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 1492, + "src": "1682:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1481, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1682:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1681:18:7" + }, + "returnParameters": { + "id": 1486, + "nodeType": "ParameterList", + "parameters": [], + "src": "1717:0:7" + }, + "scope": 1516, + "src": "1655:107:7", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1514, + "nodeType": "Block", + "src": "1961:128:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1498, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1494, + "src": "1979:8:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1500, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1999:1:7", + "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": 1499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1991:7:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1991:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1979:22:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1497, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1534, + "src": "1971:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1971:31:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1504, + "nodeType": "ExpressionStatement", + "src": "1971:31:7" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1506, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1411, + "src": "2038:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1507, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1494, + "src": "2046:8:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1505, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "2017:20:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 1508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2017:38:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1509, + "nodeType": "EmitStatement", + "src": "2012:43:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 1512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1510, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1411, + "src": "2065:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1511, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1494, + "src": "2074:8:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2065:17:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1513, + "nodeType": "ExpressionStatement", + "src": "2065:17:7" + } + ] + }, + "documentation": "@dev Transfers control of the contract to a newOwner.\n@param newOwner The address to transfer ownership to.", + "id": 1515, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1495, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1494, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 1515, + "src": "1934:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1493, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1934:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1933:18:7" + }, + "returnParameters": { + "id": 1496, + "nodeType": "ParameterList", + "parameters": [], + "src": "1961:0:7" + }, + "scope": 1516, + "src": "1906:183:7", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 1517, + "src": "215:1876:7" + } + ], + "src": "0:2092:7" + }, + "compiler": { + "name": "solc", + "version": "0.5.11+commit.c082d0b4.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.11", + "updatedAt": "2019-09-29T03:09:06.448Z", + "devdoc": { + "details": "The Ownable contract has an owner address, and provides basic authorization control functions, this simplifies the implementation of \"user permissions\".", + "methods": { + "constructor": { + "details": "The Ownable constructor sets the original `owner` of the contract to the sender account." + }, + "isOwner()": { + "return": "true if `msg.sender` is the owner of the contract." + }, + "owner()": { + "return": "the address of the owner." + }, + "renounceOwnership()": { + "details": "Allows the current owner to relinquish control of the contract." + }, + "transferOwnership(address)": { + "details": "Allows the current owner to transfer control of the contract to a newOwner.", + "params": { + "newOwner": "The address to transfer ownership to." + } + } + }, + "title": "Ownable" + }, + "userdoc": { + "methods": { + "renounceOwnership()": { + "notice": "Renouncing to ownership will leave the contract without an owner. It will not be possible to call the functions with the `onlyOwner` modifier anymore." + } + } + } +}
\ No newline at end of file diff --git a/build/contracts/SafeMath.json b/build/contracts/SafeMath.json new file mode 100644 index 0000000..ef1adcc --- /dev/null +++ b/build/contracts/SafeMath.json @@ -0,0 +1,3288 @@ +{ + "contractName": "SafeMath", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.5.11+commit.c082d0b4\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Unsigned math operations with safety checks that revert on error\",\"methods\":{},\"title\":\"SafeMath\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-solidity/contracts/math/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x965012d27b4262d7a41f5028cbb30c51ebd9ecd4be8fb30380aaa7a3c64fbc8b\",\"urls\":[\"bzz-raw://1eb493553b27efd46c231a836a83ce50d215639feb97b4aac9f301d0fd034ff5\",\"dweb:/ipfs/QmbMdvSXcqGKxeeYvzF3VrWpoHQyVzMXBhzhAokF2Gdymv\"]}},\"version\":1}", + "bytecode": "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158206a7caa2cd9347d63bb75ccadb24de151819a5dc082d5ffa37a3787518b6dfc4e64736f6c634300050b0032", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a723158206a7caa2cd9347d63bb75ccadb24de151819a5dc082d5ffa37a3787518b6dfc4e64736f6c634300050b0032", + "sourceMap": "125:1726:6:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", + "deployedSourceMap": "125:1726:6:-;;;;;;;;", + "source": "pragma solidity ^0.5.0;\n\n/**\n * @title SafeMath\n * @dev Unsigned math operations with safety checks that revert on error\n */\nlibrary SafeMath {\n /**\n * @dev Multiplies two unsigned integers, 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 unsigned integers truncating the quotient, reverts on division by zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n // Solidity only automatically asserts when dividing by 0\n require(b > 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 unsigned integers, 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 unsigned integers, 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 unsigned integers 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", + "sourcePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "ast": { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "exportedSymbols": { + "SafeMath": [ + 1407 + ] + }, + "id": 1408, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1281, + "literals": [ + "solidity", + "^", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:6" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@title SafeMath\n@dev Unsigned math operations with safety checks that revert on error", + "fullyImplemented": true, + "id": 1407, + "linearizedBaseContracts": [ + 1407 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1313, + "nodeType": "Block", + "src": "296:354:6", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1290, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1283, + "src": "527:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "532:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "527:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1296, + "nodeType": "IfStatement", + "src": "523:45:6", + "trueBody": { + "id": 1295, + "nodeType": "Block", + "src": "535:33:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "556:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 1289, + "id": 1294, + "nodeType": "Return", + "src": "549:8:6" + } + ] + } + }, + { + "assignments": [ + 1298 + ], + "declarations": [ + { + "constant": false, + "id": 1298, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1313, + "src": "578:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1297, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "578:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1302, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1299, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1283, + "src": "590:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 1300, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "594:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "590:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "578:17:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1304, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1298, + "src": "613:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 1305, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1283, + "src": "617:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "613:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1307, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "622:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "613:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1303, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1534, + "src": "605:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "605:19:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1310, + "nodeType": "ExpressionStatement", + "src": "605:19:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 1311, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1298, + "src": "642:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1289, + "id": 1312, + "nodeType": "Return", + "src": "635:8:6" + } + ] + }, + "documentation": "@dev Multiplies two unsigned integers, reverts on overflow.", + "id": 1314, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1286, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1283, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1314, + "src": "242:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1282, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "242:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1285, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1314, + "src": "253:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1284, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "253:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "241:22:6" + }, + "returnParameters": { + "id": 1289, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1288, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1314, + "src": "287:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1287, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "287:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "286:9:6" + }, + "scope": 1407, + "src": "229:421:6", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1337, + "nodeType": "Block", + "src": "845:229:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1324, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1318, + "src": "929:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "933:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "929:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1323, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1534, + "src": "921:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "921:14:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1328, + "nodeType": "ExpressionStatement", + "src": "921:14:6" + }, + { + "assignments": [ + 1330 + ], + "declarations": [ + { + "constant": false, + "id": 1330, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1337, + "src": "945:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1329, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "945:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1334, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1331, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1316, + "src": "957:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 1332, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1318, + "src": "961:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "957:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "945:17:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 1335, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1330, + "src": "1066:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1322, + "id": 1336, + "nodeType": "Return", + "src": "1059:8:6" + } + ] + }, + "documentation": "@dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.", + "id": 1338, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1319, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1316, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1338, + "src": "791:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1315, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "791:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1318, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1338, + "src": "802:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1317, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "802:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "790:22:6" + }, + "returnParameters": { + "id": 1322, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1321, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1338, + "src": "836:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1320, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "836:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "835:9:6" + }, + "scope": 1407, + "src": "778:296:6", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1361, + "nodeType": "Block", + "src": "1272:78:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1348, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1342, + "src": "1290:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 1349, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1340, + "src": "1295:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1290:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1347, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1534, + "src": "1282:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1282:15:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1352, + "nodeType": "ExpressionStatement", + "src": "1282:15:6" + }, + { + "assignments": [ + 1354 + ], + "declarations": [ + { + "constant": false, + "id": 1354, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1361, + "src": "1307:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1353, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1307:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1358, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1355, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1340, + "src": "1319:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 1356, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1342, + "src": "1323:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1319:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1307:17:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 1359, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1354, + "src": "1342:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1346, + "id": 1360, + "nodeType": "Return", + "src": "1335:8:6" + } + ] + }, + "documentation": "@dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).", + "id": 1362, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1343, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1340, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1362, + "src": "1218:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1339, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1218:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1342, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1362, + "src": "1229:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1341, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1229:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1217:22:6" + }, + "returnParameters": { + "id": 1346, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1345, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1362, + "src": "1263:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1263:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1262:9:6" + }, + "scope": 1407, + "src": "1205:145:6", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1385, + "nodeType": "Block", + "src": "1498:78:6", + "statements": [ + { + "assignments": [ + 1372 + ], + "declarations": [ + { + "constant": false, + "id": 1372, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1385, + "src": "1508:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1371, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1508:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1376, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1373, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1364, + "src": "1520:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 1374, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1366, + "src": "1524:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1520:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1508:17:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1378, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1372, + "src": "1543:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 1379, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1364, + "src": "1548:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1543:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1377, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1534, + "src": "1535:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1535:15:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1382, + "nodeType": "ExpressionStatement", + "src": "1535:15:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 1383, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1372, + "src": "1568:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1370, + "id": 1384, + "nodeType": "Return", + "src": "1561:8:6" + } + ] + }, + "documentation": "@dev Adds two unsigned integers, reverts on overflow.", + "id": 1386, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1367, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1364, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1386, + "src": "1444:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1444:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1366, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1386, + "src": "1455:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1455:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1443:22:6" + }, + "returnParameters": { + "id": 1370, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1369, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1386, + "src": "1489:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1368, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1489:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1488:9:6" + }, + "scope": 1407, + "src": "1431:145:6", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1405, + "nodeType": "Block", + "src": "1795:54:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1396, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1390, + "src": "1813:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1397, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1818:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1813:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1395, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1534, + "src": "1805:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1805:15:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1400, + "nodeType": "ExpressionStatement", + "src": "1805:15:6" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1401, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1388, + "src": "1837:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "id": 1402, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1390, + "src": "1841:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1837:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1394, + "id": 1404, + "nodeType": "Return", + "src": "1830:12:6" + } + ] + }, + "documentation": "@dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.", + "id": 1406, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1391, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1388, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1406, + "src": "1741:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1387, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1741:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1390, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1406, + "src": "1752:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1389, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1752:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1740:22:6" + }, + "returnParameters": { + "id": 1394, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1393, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1406, + "src": "1786:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1392, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1786:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1785:9:6" + }, + "scope": 1407, + "src": "1728:121:6", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 1408, + "src": "125:1726:6" + } + ], + "src": "0:1852:6" + }, + "legacyAST": { + "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "exportedSymbols": { + "SafeMath": [ + 1407 + ] + }, + "id": 1408, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1281, + "literals": [ + "solidity", + "^", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:6" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@title SafeMath\n@dev Unsigned math operations with safety checks that revert on error", + "fullyImplemented": true, + "id": 1407, + "linearizedBaseContracts": [ + 1407 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1313, + "nodeType": "Block", + "src": "296:354:6", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1290, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1283, + "src": "527:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "532:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "527:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1296, + "nodeType": "IfStatement", + "src": "523:45:6", + "trueBody": { + "id": 1295, + "nodeType": "Block", + "src": "535:33:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "556:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 1289, + "id": 1294, + "nodeType": "Return", + "src": "549:8:6" + } + ] + } + }, + { + "assignments": [ + 1298 + ], + "declarations": [ + { + "constant": false, + "id": 1298, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1313, + "src": "578:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1297, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "578:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1302, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1299, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1283, + "src": "590:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 1300, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "594:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "590:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "578:17:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1304, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1298, + "src": "613:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 1305, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1283, + "src": "617:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "613:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1307, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1285, + "src": "622:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "613:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1303, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1534, + "src": "605:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "605:19:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1310, + "nodeType": "ExpressionStatement", + "src": "605:19:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 1311, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1298, + "src": "642:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1289, + "id": 1312, + "nodeType": "Return", + "src": "635:8:6" + } + ] + }, + "documentation": "@dev Multiplies two unsigned integers, reverts on overflow.", + "id": 1314, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1286, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1283, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1314, + "src": "242:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1282, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "242:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1285, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1314, + "src": "253:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1284, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "253:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "241:22:6" + }, + "returnParameters": { + "id": 1289, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1288, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1314, + "src": "287:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1287, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "287:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "286:9:6" + }, + "scope": 1407, + "src": "229:421:6", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1337, + "nodeType": "Block", + "src": "845:229:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1324, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1318, + "src": "929:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "933:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "929:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1323, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1534, + "src": "921:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "921:14:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1328, + "nodeType": "ExpressionStatement", + "src": "921:14:6" + }, + { + "assignments": [ + 1330 + ], + "declarations": [ + { + "constant": false, + "id": 1330, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1337, + "src": "945:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1329, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "945:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1334, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1331, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1316, + "src": "957:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 1332, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1318, + "src": "961:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "957:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "945:17:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 1335, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1330, + "src": "1066:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1322, + "id": 1336, + "nodeType": "Return", + "src": "1059:8:6" + } + ] + }, + "documentation": "@dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.", + "id": 1338, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1319, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1316, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1338, + "src": "791:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1315, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "791:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1318, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1338, + "src": "802:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1317, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "802:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "790:22:6" + }, + "returnParameters": { + "id": 1322, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1321, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1338, + "src": "836:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1320, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "836:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "835:9:6" + }, + "scope": 1407, + "src": "778:296:6", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1361, + "nodeType": "Block", + "src": "1272:78:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1348, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1342, + "src": "1290:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 1349, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1340, + "src": "1295:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1290:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1347, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1534, + "src": "1282:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1282:15:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1352, + "nodeType": "ExpressionStatement", + "src": "1282:15:6" + }, + { + "assignments": [ + 1354 + ], + "declarations": [ + { + "constant": false, + "id": 1354, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1361, + "src": "1307:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1353, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1307:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1358, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1355, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1340, + "src": "1319:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 1356, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1342, + "src": "1323:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1319:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1307:17:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 1359, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1354, + "src": "1342:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1346, + "id": 1360, + "nodeType": "Return", + "src": "1335:8:6" + } + ] + }, + "documentation": "@dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).", + "id": 1362, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1343, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1340, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1362, + "src": "1218:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1339, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1218:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1342, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1362, + "src": "1229:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1341, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1229:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1217:22:6" + }, + "returnParameters": { + "id": 1346, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1345, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1362, + "src": "1263:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1263:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1262:9:6" + }, + "scope": 1407, + "src": "1205:145:6", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1385, + "nodeType": "Block", + "src": "1498:78:6", + "statements": [ + { + "assignments": [ + 1372 + ], + "declarations": [ + { + "constant": false, + "id": 1372, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1385, + "src": "1508:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1371, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1508:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1376, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1373, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1364, + "src": "1520:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 1374, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1366, + "src": "1524:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1520:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1508:17:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1378, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1372, + "src": "1543:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 1379, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1364, + "src": "1548:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1543:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1377, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1534, + "src": "1535:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1535:15:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1382, + "nodeType": "ExpressionStatement", + "src": "1535:15:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 1383, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1372, + "src": "1568:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1370, + "id": 1384, + "nodeType": "Return", + "src": "1561:8:6" + } + ] + }, + "documentation": "@dev Adds two unsigned integers, reverts on overflow.", + "id": 1386, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1367, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1364, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1386, + "src": "1444:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1444:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1366, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1386, + "src": "1455:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1455:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1443:22:6" + }, + "returnParameters": { + "id": 1370, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1369, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1386, + "src": "1489:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1368, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1489:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1488:9:6" + }, + "scope": 1407, + "src": "1431:145:6", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1405, + "nodeType": "Block", + "src": "1795:54:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1396, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1390, + "src": "1813:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1397, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1818:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1813:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1395, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1534, + 1535 + ], + "referencedDeclaration": 1534, + "src": "1805:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1805:15:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1400, + "nodeType": "ExpressionStatement", + "src": "1805:15:6" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1401, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1388, + "src": "1837:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "id": 1402, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1390, + "src": "1841:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1837:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1394, + "id": 1404, + "nodeType": "Return", + "src": "1830:12:6" + } + ] + }, + "documentation": "@dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.", + "id": 1406, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1391, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1388, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1406, + "src": "1741:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1387, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1741:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1390, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1406, + "src": "1752:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1389, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1752:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1740:22:6" + }, + "returnParameters": { + "id": 1394, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1393, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1406, + "src": "1786:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1392, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1786:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1785:9:6" + }, + "scope": 1407, + "src": "1728:121:6", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 1408, + "src": "125:1726:6" + } + ], + "src": "0:1852:6" + }, + "compiler": { + "name": "solc", + "version": "0.5.11+commit.c082d0b4.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.11", + "updatedAt": "2019-09-29T03:09:06.448Z", + "devdoc": { + "details": "Unsigned math operations with safety checks that revert on error", + "methods": {}, + "title": "SafeMath" + }, + "userdoc": { + "methods": {} + } +}
\ No newline at end of file |