elliptic-solidity
Version:
Elliptic curve implementation in solidity; includes secp256r1
1,242 lines • 50.4 kB
JSON
{
"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