UNPKG

elliptic-solidity

Version:

Elliptic curve implementation in solidity; includes secp256r1

1,242 lines 50.4 kB
{ "contractName": "Migrations", "abi": [ { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "lastCompletedMigration", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "inputs": [], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "previousOwner", "type": "address" }, { "indexed": true, "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "constant": false, "inputs": [ { "name": "_completed", "type": "uint256" } ], "name": "setCompleted", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_addr", "type": "address" } ], "name": "upgrade", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506104c9806100a06000396000f3fe608060405260043610610067576000357c0100000000000000000000000000000000000000000000000000000000900480630900f0101461006c5780638da5cb5b146100bd578063f2fde38b14610114578063fbdbad3c14610165578063fdacd57614610190575b600080fd5b34801561007857600080fd5b506100bb6004803603602081101561008f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506101cb565b005b3480156100c957600080fd5b506100d26102b8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561012057600080fd5b506101636004803603602081101561013757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506102dd565b005b34801561017157600080fd5b5061017a610432565b6040518082815260200191505060405180910390f35b34801561019c57600080fd5b506101c9600480360360208110156101b357600080fd5b8101908080359060200190929190505050610438565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561022657600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561029c57600080fd5b505af11580156102b0573d6000803e3d6000fd5b505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561033857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561037457600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561049357600080fd5b806001819055505056fea165627a7a72305820c3286fc18313daa08a389378f234e9b9c7b8d173a6a1fcfa0328a6cc3d32de0f0029", "deployedBytecode": "0x608060405260043610610067576000357c0100000000000000000000000000000000000000000000000000000000900480630900f0101461006c5780638da5cb5b146100bd578063f2fde38b14610114578063fbdbad3c14610165578063fdacd57614610190575b600080fd5b34801561007857600080fd5b506100bb6004803603602081101561008f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506101cb565b005b3480156100c957600080fd5b506100d26102b8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561012057600080fd5b506101636004803603602081101561013757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506102dd565b005b34801561017157600080fd5b5061017a610432565b6040518082815260200191505060405180910390f35b34801561019c57600080fd5b506101c9600480360360208110156101b357600080fd5b8101908080359060200190929190505050610438565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561022657600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561029c57600080fd5b505af11580156102b0573d6000803e3d6000fd5b505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561033857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561037457600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561049357600080fd5b806001819055505056fea165627a7a72305820c3286fc18313daa08a389378f234e9b9c7b8d173a6a1fcfa0328a6cc3d32de0f0029", "sourceMap": "104:662:0:-;;;224:56;8:9:-1;5:2;;;30:1;27;20:12;5:2;224:56:0;728:10:2;720:5;;:18;;;;;;;;;;;;;;;;;;265:10:0;257:5;;:18;;;;;;;;;;;;;;;;;;104:662;;;;;;", "deployedSourceMap": "104:662:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;593:170;;8:9:-1;5:2;;;30:1;27;20:12;5:2;593:170:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;593:170:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;270:20:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;270:20:2;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1052:196;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1052:196:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1052:196:2;;;;;;;;;;;;;;;;;;;:::i;:::-;;141:34:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;141:34:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;384:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;384:122:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;384:122:0;;;;;;;;;;;;;;;;;:::i;:::-;;593:170;872:5:2;;;;;;;;;;;858:19;;:10;:19;;;850:28;;;;;;;;668:19:0;701:5;668:39;;713:8;:21;;;735:22;;713:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;713:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;713:45:0;;;;884:1:2;593:170:0;:::o;270:20:2:-;;;;;;;;;;;;;:::o;1052:196::-;872:5;;;;;;;;;;;858:19;;:10;:19;;;850:28;;;;;;;;1168:1;1147:23;;:9;:23;;;;1139:32;;;;;;;;1210:9;1182:38;;1203:5;;;;;;;;;;;1182:38;;;;;;;;;;;;1234:9;1226:5;;:17;;;;;;;;;;;;;;;;;;1052:196;:::o;141:34:0:-;;;;:::o;384:122::-;872:5:2;;;;;;;;;;;858:19;;:10;:19;;;850:28;;;;;;;;491:10:0;466:22;:35;;;;384:122;:::o", "source": "pragma solidity ^0.5.0;\n\nimport './ownership/Ownable.sol';\n\n/**\n * @dev Truffle migrations manager.\n */\ncontract Migrations is\n Ownable\n{\n uint public lastCompletedMigration;\n\n /**\n * @dev Contract constructor.\n */\n constructor()\n public\n {\n owner = msg.sender;\n }\n\n /**\n * @dev Sets migration state.\n * @param _completed Last completed migration number.\n */\n function setCompleted(\n uint _completed\n )\n public\n onlyOwner()\n {\n lastCompletedMigration = _completed;\n }\n\n /**\n * @dev Permorms migration.\n * @param _addr New migration address.\n */\n function upgrade(\n address _addr\n )\n public\n onlyOwner()\n {\n Migrations upgraded = Migrations(_addr);\n upgraded.setCompleted(lastCompletedMigration);\n }\n\n}\n", "sourcePath": "/Users/tilmandrerup/Desktop/airtime/github/elliptic-curve-solidity/contracts/Migrations.sol", "ast": { "absolutePath": "/Users/tilmandrerup/Desktop/airtime/github/elliptic-curve-solidity/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ 48 ] }, "id": 49, "nodeType": "SourceUnit", "nodes": [ { "id": 1, "literals": [ "solidity", "^", "0.5", ".0" ], "nodeType": "PragmaDirective", "src": "0:23:0" }, { "absolutePath": "/Users/tilmandrerup/Desktop/airtime/github/elliptic-curve-solidity/contracts/ownership/Ownable.sol", "file": "./ownership/Ownable.sol", "id": 2, "nodeType": "ImportDirective", "scope": 49, "sourceUnit": 1440, "src": "25:33:0", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 3, "name": "Ownable", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1439, "src": "129:7:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Ownable_$1439", "typeString": "contract Ownable" } }, "id": 4, "nodeType": "InheritanceSpecifier", "src": "129:7:0" } ], "contractDependencies": [ 1439 ], "contractKind": "contract", "documentation": "@dev Truffle migrations manager.", "fullyImplemented": true, "id": 48, "linearizedBaseContracts": [ 48, 1439 ], "name": "Migrations", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 6, "name": "lastCompletedMigration", "nodeType": "VariableDeclaration", "scope": 48, "src": "141:34:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 5, "name": "uint", "nodeType": "ElementaryTypeName", "src": "141:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "body": { "id": 14, "nodeType": "Block", "src": "251:29:0", "statements": [ { "expression": { "argumentTypes": null, "id": 12, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 9, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1387, "src": "257:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 10, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1454, "src": "265:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 11, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "265:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "257:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 13, "nodeType": "ExpressionStatement", "src": "257:18:0" } ] }, "documentation": "@dev Contract constructor.", "id": 15, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 7, "nodeType": "ParameterList", "parameters": [], "src": "235:2:0" }, "returnParameters": { "id": 8, "nodeType": "ParameterList", "parameters": [], "src": "251:0:0" }, "scope": 48, "src": "224:56:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 26, "nodeType": "Block", "src": "460:46:0", "statements": [ { "expression": { "argumentTypes": null, "id": 24, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 22, "name": "lastCompletedMigration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6, "src": "466:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 23, "name": "_completed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17, "src": "491:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "466:35:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 25, "nodeType": "ExpressionStatement", "src": "466:35:0" } ] }, "documentation": "@dev Sets migration state.\n@param _completed Last completed migration number.", "id": 27, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [], "id": 20, "modifierName": { "argumentTypes": null, "id": 19, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1413, "src": "446:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "446:11:0" } ], "name": "setCompleted", "nodeType": "FunctionDefinition", "parameters": { "id": 18, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 17, "name": "_completed", "nodeType": "VariableDeclaration", "scope": 27, "src": "411:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 16, "name": "uint", "nodeType": "ElementaryTypeName", "src": "411:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "405:25:0" }, "returnParameters": { "id": 21, "nodeType": "ParameterList", "parameters": [], "src": "460:0:0" }, "scope": 48, "src": "384:122:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 46, "nodeType": "Block", "src": "662:101:0", "statements": [ { "assignments": [ 35 ], "declarations": [ { "constant": false, "id": 35, "name": "upgraded", "nodeType": "VariableDeclaration", "scope": 46, "src": "668:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_Migrations_$48", "typeString": "contract Migrations" }, "typeName": { "contractScope": null, "id": 34, "name": "Migrations", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 48, "src": "668:10:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Migrations_$48", "typeString": "contract Migrations" } }, "value": null, "visibility": "internal" } ], "id": 39, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 37, "name": "_addr", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 29, "src": "701:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 36, "name": "Migrations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 48, "src": "690:10:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Migrations_$48_$", "typeString": "type(contract Migrations)" } }, "id": 38, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "690:17:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Migrations_$48", "typeString": "contract Migrations" } }, "nodeType": "VariableDeclarationStatement", "src": "668:39:0" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 43, "name": "lastCompletedMigration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6, "src": "735:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 40, "name": "upgraded", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 35, "src": "713:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Migrations_$48", "typeString": "contract Migrations" } }, "id": 42, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setCompleted", "nodeType": "MemberAccess", "referencedDeclaration": 27, "src": "713:21:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256) external" } }, "id": 44, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "713:45:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 45, "nodeType": "ExpressionStatement", "src": "713:45:0" } ] }, "documentation": "@dev Permorms migration.\n@param _addr New migration address.", "id": 47, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [], "id": 32, "modifierName": { "argumentTypes": null, "id": 31, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1413, "src": "648:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "648:11:0" } ], "name": "upgrade", "nodeType": "FunctionDefinition", "parameters": { "id": 30, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 29, "name": "_addr", "nodeType": "VariableDeclaration", "scope": 47, "src": "615:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 28, "name": "address", "nodeType": "ElementaryTypeName", "src": "615:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "609:23:0" }, "returnParameters": { "id": 33, "nodeType": "ParameterList", "parameters": [], "src": "662:0:0" }, "scope": 48, "src": "593:170:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 49, "src": "104:662:0" } ], "src": "0:767:0" }, "legacyAST": { "absolutePath": "/Users/tilmandrerup/Desktop/airtime/github/elliptic-curve-solidity/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ 48 ] }, "id": 49, "nodeType": "SourceUnit", "nodes": [ { "id": 1, "literals": [ "solidity", "^", "0.5", ".0" ], "nodeType": "PragmaDirective", "src": "0:23:0" }, { "absolutePath": "/Users/tilmandrerup/Desktop/airtime/github/elliptic-curve-solidity/contracts/ownership/Ownable.sol", "file": "./ownership/Ownable.sol", "id": 2, "nodeType": "ImportDirective", "scope": 49, "sourceUnit": 1440, "src": "25:33:0", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 3, "name": "Ownable", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1439, "src": "129:7:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Ownable_$1439", "typeString": "contract Ownable" } }, "id": 4, "nodeType": "InheritanceSpecifier", "src": "129:7:0" } ], "contractDependencies": [ 1439 ], "contractKind": "contract", "documentation": "@dev Truffle migrations manager.", "fullyImplemented": true, "id": 48, "linearizedBaseContracts": [ 48, 1439 ], "name": "Migrations", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 6, "name": "lastCompletedMigration", "nodeType": "VariableDeclaration", "scope": 48, "src": "141:34:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 5, "name": "uint", "nodeType": "ElementaryTypeName", "src": "141:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "body": { "id": 14, "nodeType": "Block", "src": "251:29:0", "statements": [ { "expression": { "argumentTypes": null, "id": 12, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 9, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1387, "src": "257:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 10, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1454, "src": "265:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 11, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "265:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "257:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 13, "nodeType": "ExpressionStatement", "src": "257:18:0" } ] }, "documentation": "@dev Contract constructor.", "id": 15, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 7, "nodeType": "ParameterList", "parameters": [], "src": "235:2:0" }, "returnParameters": { "id": 8, "nodeType": "ParameterList", "parameters": [], "src": "251:0:0" }, "scope": 48, "src": "224:56:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 26, "nodeType": "Block", "src": "460:46:0", "statements": [ { "expression": { "argumentTypes": null, "id": 24, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 22, "name": "lastCompletedMigration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6, "src": "466:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 23, "name": "_completed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 17, "src": "491:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "466:35:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 25, "nodeType": "ExpressionStatement", "src": "466:35:0" } ] }, "documentation": "@dev Sets migration state.\n@param _completed Last completed migration number.", "id": 27, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [], "id": 20, "modifierName": { "argumentTypes": null, "id": 19, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1413, "src": "446:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "446:11:0" } ], "name": "setCompleted", "nodeType": "FunctionDefinition", "parameters": { "id": 18, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 17, "name": "_completed", "nodeType": "VariableDeclaration", "scope": 27, "src": "411:15:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 16, "name": "uint", "nodeType": "ElementaryTypeName", "src": "411:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "405:25:0" }, "returnParameters": { "id": 21, "nodeType": "ParameterList", "parameters": [], "src": "460:0:0" }, "scope": 48, "src": "384:122:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { "id": 46, "nodeType": "Block", "src": "662:101:0", "statements": [ { "assignments": [ 35 ], "declarations": [ { "constant": false, "id": 35, "name": "upgraded", "nodeType": "VariableDeclaration", "scope": 46, "src": "668:19:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_Migrations_$48", "typeString": "contract Migrations" }, "typeName": { "contractScope": null, "id": 34, "name": "Migrations", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 48, "src": "668:10:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Migrations_$48", "typeString": "contract Migrations" } }, "value": null, "visibility": "internal" } ], "id": 39, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 37, "name": "_addr", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 29, "src": "701:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 36, "name": "Migrations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 48, "src": "690:10:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Migrations_$48_$", "typeString": "type(contract Migrations)" } }, "id": 38, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "690:17:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Migrations_$48", "typeString": "contract Migrations" } }, "nodeType": "VariableDeclarationStatement", "src": "668:39:0" }, { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 43, "name": "lastCompletedMigration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6, "src": "735:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "argumentTypes": null, "id": 40, "name": "upgraded", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 35, "src": "713:8:0", "typeDescriptions": { "typeIdentifier": "t_contract$_Migrations_$48", "typeString": "contract Migrations" } }, "id": 42, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setCompleted", "nodeType": "MemberAccess", "referencedDeclaration": 27, "src": "713:21:0", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256) external" } }, "id": 44, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "713:45:0", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 45, "nodeType": "ExpressionStatement", "src": "713:45:0" } ] }, "documentation": "@dev Permorms migration.\n@param _addr New migration address.", "id": 47, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [], "id": 32, "modifierName": { "argumentTypes": null, "id": 31, "name": "onlyOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1413, "src": "648:9:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "648:11:0" } ], "name": "upgrade", "nodeType": "FunctionDefinition", "parameters": { "id": 30, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 29, "name": "_addr", "nodeType": "VariableDeclaration", "scope": 47, "src": "615:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 28, "name": "address", "nodeType": "ElementaryTypeName", "src": "615:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "609:23:0" }, "returnParameters": { "id": 33, "nodeType": "ParameterList", "parameters": [], "src": "662:0:0" }, "scope": 48, "src": "593:170:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 49, "src": "104:662:0" } ], "src": "0:767:0" }, "compiler": { "name": "solc", "version": "0.5.1+commit.c8a2cb62.Emscripten.clang" }, "networks": {}, "schemaVersion": "3.0.2", "updatedAt": "2019-03-13T00:41:20.860Z", "devdoc": { "details": "Truffle migrations manager.", "methods": { "constructor": { "details": "Contract constructor." }, "setCompleted(uint256)": { "details": "Sets migration state.", "params": { "_completed": "Last completed migration number." } }, "transferOwnership(address)": { "details": "Al