arc_dx
Version:
A platform for building DAOs
1,201 lines • 83.6 kB
JSON
{
"contractName": "BurnableToken",
"abi": [
{
"constant": true,
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_to",
"type": "address"
},
{
"name": "_value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "burner",
"type": "address"
},
{
"indexed": false,
"name": "value",
"type": "uint256"
}
],
"name": "Burn",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "from",
"type": "address"
},
{
"indexed": true,
"name": "to",
"type": "address"
},
{
"indexed": false,
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"constant": false,
"inputs": [
{
"name": "_value",
"type": "uint256"
}
],
"name": "burn",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b5061035f806100206000396000f3006080604052600436106100615763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166318160ddd811461006657806342966c681461008d57806370a08231146100a7578063a9059cbb146100c8575b600080fd5b34801561007257600080fd5b5061007b610100565b60408051918252519081900360200190f35b34801561009957600080fd5b506100a5600435610106565b005b3480156100b357600080fd5b5061007b600160a060020a0360043516610113565b3480156100d457600080fd5b506100ec600160a060020a036004351660243561012e565b604080519115158252519081900360200190f35b60015490565b610110338261020d565b50565b600160a060020a031660009081526020819052604090205490565b3360009081526020819052604081205482111561014a57600080fd5b600160a060020a038316151561015f57600080fd5b3360009081526020819052604090205461017f908363ffffffff61030e16565b3360009081526020819052604080822092909255600160a060020a038516815220546101b1908363ffffffff61032016565b600160a060020a038416600081815260208181526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b600160a060020a03821660009081526020819052604090205481111561023257600080fd5b600160a060020a03821660009081526020819052604090205461025b908263ffffffff61030e16565b600160a060020a038316600090815260208190526040902055600154610287908263ffffffff61030e16565b600155604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60008282111561031a57fe5b50900390565b8181018281101561032d57fe5b929150505600a165627a7a72305820ca938fd7a7565330a79e89ca76cbd80593745806b388f6ca1bc0d4cc25f32e2a0029",
"deployedBytecode": "0x6080604052600436106100615763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166318160ddd811461006657806342966c681461008d57806370a08231146100a7578063a9059cbb146100c8575b600080fd5b34801561007257600080fd5b5061007b610100565b60408051918252519081900360200190f35b34801561009957600080fd5b506100a5600435610106565b005b3480156100b357600080fd5b5061007b600160a060020a0360043516610113565b3480156100d457600080fd5b506100ec600160a060020a036004351660243561012e565b604080519115158252519081900360200190f35b60015490565b610110338261020d565b50565b600160a060020a031660009081526020819052604090205490565b3360009081526020819052604081205482111561014a57600080fd5b600160a060020a038316151561015f57600080fd5b3360009081526020819052604090205461017f908363ffffffff61030e16565b3360009081526020819052604080822092909255600160a060020a038516815220546101b1908363ffffffff61032016565b600160a060020a038416600081815260208181526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b600160a060020a03821660009081526020819052604090205481111561023257600080fd5b600160a060020a03821660009081526020819052604090205461025b908263ffffffff61030e16565b600160a060020a038316600090815260208190526040902055600154610287908263ffffffff61030e16565b600155604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60008282111561031a57fe5b50900390565b8181018281101561032d57fe5b929150505600a165627a7a72305820ca938fd7a7565330a79e89ca76cbd80593745806b388f6ca1bc0d4cc25f32e2a0029",
"sourceMap": "147:723:57:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;147:723:57;;;;;;;",
"deployedSourceMap": "147:723:57:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;389:83:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;389:83:56;;;;;;;;;;;;;;;;;;;;353:73:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;353:73:57;;;;;;;1149:99:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1149:99:56;-1:-1:-1;;;;;1149:99:56;;;;;626:321;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;626:321:56;-1:-1:-1;;;;;626:321:56;;;;;;;;;;;;;;;;;;;;;;;;;389:83;455:12;;389:83;:::o;353:73:57:-;396:25;402:10;414:6;396:5;:25::i;:::-;353:73;:::o;1149:99:56:-;-1:-1:-1;;;;;1227:16:56;1205:7;1227:16;;;;;;;;;;;;1149:99::o;626:321::-;728:10;689:4;719:20;;;;;;;;;;;709:30;;;701:39;;;;;;-1:-1:-1;;;;;754:17:56;;;;746:26;;;;;;811:10;802:8;:20;;;;;;;;;;;:32;;827:6;802:32;:24;:32;:::i;:::-;788:10;779:8;:20;;;;;;;;;;;:55;;;;-1:-1:-1;;;;;856:13:56;;;;;;:25;;874:6;856:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;840:13:56;;:8;:13;;;;;;;;;;;;:41;;;;892:33;;;;;;;840:13;;901:10;;892:33;;;;;;;;;;-1:-1:-1;938:4:56;626:321;;;;:::o;430:438:57:-;-1:-1:-1;;;;;508:14:57;;:8;:14;;;;;;;;;;;498:24;;;490:33;;;;;;-1:-1:-1;;;;;718:14:57;;:8;:14;;;;;;;;;;;:26;;737:6;718:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;701:14:57;;:8;:14;;;;;;;;;;:43;765:12;;:24;;782:6;765:24;:16;:24;:::i;:::-;750:12;:39;800:18;;;;;;;;-1:-1:-1;;;;;800:18:57;;;;;;;;;;;;;829:34;;;;;;;;852:1;;-1:-1:-1;;;;;829:34:57;;;;;;;;;;;;430:438;;:::o;1060:116:54:-;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:54;;;1060:116::o;1238:128::-;1319:7;;;1339;;;;1332:15;;;;1238:128;;;;:::o",
"source": "pragma solidity ^0.4.24;\n\nimport \"./BasicToken.sol\";\n\n\n/**\n * @title Burnable Token\n * @dev Token that can be irreversibly burned (destroyed).\n */\ncontract BurnableToken is BasicToken {\n\n event Burn(address indexed burner, uint256 value);\n\n /**\n * @dev Burns a specific amount of tokens.\n * @param _value The amount of token to be burned.\n */\n function burn(uint256 _value) public {\n _burn(msg.sender, _value);\n }\n\n function _burn(address _who, uint256 _value) internal {\n require(_value <= balances[_who]);\n // no need to require value <= totalSupply, since that would imply the\n // sender's balance is greater than the totalSupply, which *should* be an assertion failure\n\n balances[_who] = balances[_who].sub(_value);\n totalSupply_ = totalSupply_.sub(_value);\n emit Burn(_who, _value);\n emit Transfer(_who, address(0), _value);\n }\n}\n",
"sourcePath": "openzeppelin-solidity/contracts/token/ERC20/BurnableToken.sol",
"ast": {
"absolutePath": "openzeppelin-solidity/contracts/token/ERC20/BurnableToken.sol",
"exportedSymbols": {
"BurnableToken": [
21044
]
},
"id": 21045,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 20975,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:24:57"
},
{
"absolutePath": "openzeppelin-solidity/contracts/token/ERC20/BasicToken.sol",
"file": "./BasicToken.sol",
"id": 20976,
"nodeType": "ImportDirective",
"scope": 21045,
"sourceUnit": 20974,
"src": "26:26:57",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 20977,
"name": "BasicToken",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 20973,
"src": "173:10:57",
"typeDescriptions": {
"typeIdentifier": "t_contract$_BasicToken_$20973",
"typeString": "contract BasicToken"
}
},
"id": 20978,
"nodeType": "InheritanceSpecifier",
"src": "173:10:57"
}
],
"contractDependencies": [
20973,
21119
],
"contractKind": "contract",
"documentation": "@title Burnable Token\n@dev Token that can be irreversibly burned (destroyed).",
"fullyImplemented": true,
"id": 21044,
"linearizedBaseContracts": [
21044,
20973,
21119
],
"name": "BurnableToken",
"nodeType": "ContractDefinition",
"nodes": [
{
"anonymous": false,
"documentation": null,
"id": 20984,
"name": "Burn",
"nodeType": "EventDefinition",
"parameters": {
"id": 20983,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 20980,
"indexed": true,
"name": "burner",
"nodeType": "VariableDeclaration",
"scope": 20984,
"src": "200:22:57",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 20979,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "200:7:57",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 20982,
"indexed": false,
"name": "value",
"nodeType": "VariableDeclaration",
"scope": 20984,
"src": "224:13:57",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 20981,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "224:7:57",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "199:39:57"
},
"src": "189:50:57"
},
{
"body": {
"id": 20995,
"nodeType": "Block",
"src": "390:36:57",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 20990,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 21549,
"src": "402:3:57",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 20991,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "402:10:57",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 20992,
"name": "_value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20986,
"src": "414:6:57",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 20989,
"name": "_burn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 21043,
"src": "396:5:57",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 20993,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "396:25:57",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 20994,
"nodeType": "ExpressionStatement",
"src": "396:25:57"
}
]
},
"documentation": "@dev Burns a specific amount of tokens.\n@param _value The amount of token to be burned.",
"id": 20996,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "burn",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 20987,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 20986,
"name": "_value",
"nodeType": "VariableDeclaration",
"scope": 20996,
"src": "367:14:57",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 20985,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "367:7:57",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "366:16:57"
},
"payable": false,
"returnParameters": {
"id": 20988,
"nodeType": "ParameterList",
"parameters": [],
"src": "390:0:57"
},
"scope": 21044,
"src": "353:73:57",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 21042,
"nodeType": "Block",
"src": "484:384:57",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 21008,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 21004,
"name": "_value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 21000,
"src": "498:6:57",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 21005,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20890,
"src": "508:8:57",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 21007,
"indexExpression": {
"argumentTypes": null,
"id": 21006,
"name": "_who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20998,
"src": "517:4:57",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "508:14:57",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "498:24:57",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 21003,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
21552,
21553
],
"referencedDeclaration": 21552,
"src": "490:7:57",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 21009,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "490:33:57",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 21010,
"nodeType": "ExpressionStatement",
"src": "490:33:57"
},
{
"expression": {
"argumentTypes": null,
"id": 21020,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 21011,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20890,
"src": "701:8:57",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 21013,
"indexExpression": {
"argumentTypes": null,
"id": 21012,
"name": "_who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20998,
"src": "710:4:57",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "701:14:57",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 21018,
"name": "_value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 21000,
"src": "737:6:57",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 21014,
"name": "balances",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20890,
"src": "718:8:57",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 21016,
"indexExpression": {
"argumentTypes": null,
"id": 21015,
"name": "_who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20998,
"src": "727:4:57",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "718:14:57",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 21017,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sub",
"nodeType": "MemberAccess",
"referencedDeclaration": 20766,
"src": "718:18:57",
"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": 21019,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "718:26:57",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "701:43:57",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 21021,
"nodeType": "ExpressionStatement",
"src": "701:43:57"
},
{
"expression": {
"argumentTypes": null,
"id": 21027,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 21022,
"name": "totalSupply_",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20892,
"src": "750:12:57",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 21025,
"name": "_value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 21000,
"src": "782:6:57",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 21023,
"name": "totalSupply_",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20892,
"src": "765:12:57",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 21024,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sub",
"nodeType": "MemberAccess",
"referencedDeclaration": 20766,
"src": "765:16:57",
"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": 21026,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "765:24:57",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "750:39:57",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 21028,
"nodeType": "ExpressionStatement",
"src": "750:39:57"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 21030,
"name": "_who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20998,
"src": "805:4:57",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 21031,
"name": "_value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 21000,
"src": "811:6:57",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 21029,
"name": "Burn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20984,
"src": "800:4:57",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 21032,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "800:18:57",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 21033,
"nodeType": "EmitStatement",
"src": "795:23:57"
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 21035,
"name": "_who",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20998,
"src": "838:4:57",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 21037,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "852:1:57",
"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": 21036,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "844:7:57",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 21038,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "844:10:57",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 21039,
"name": "_value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 21000,
"src": "856:6:57",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 21034,
"name": "Transfer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 21118,
"src": "829:8:57",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 21040,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "829:34:57",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 21041,
"nodeType": "EmitStatement",
"src": "824:39:57"
}
]
},
"documentation": null,
"id": 21043,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "_burn",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 21001,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 20998,
"name": "_who",
"nodeType": "VariableDeclaration",
"scope": 21043,
"src": "445:12:57",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 20997,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "445:7:57",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 21000,
"name": "_value",
"nodeType": "VariableDeclaration",
"scope": 21043,
"src": "459:14:57",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 20999,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "459:7:57",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "444:30:57"
},
"payable": false,
"returnParameters": {
"id": 21002,
"nodeType": "ParameterList",
"parameters": [],
"src": "484:0:57"
},
"scope": 21044,
"src": "430:438:57",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 21045,
"src": "147:723:57"
}
],
"src": "0:871:57"
},
"legacyAST": {
"absolutePath": "openzeppelin-solidity/contracts/token/ERC20/BurnableToken.sol",
"exportedSymbols": {
"BurnableToken": [
21044
]
},
"id": 21045,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 20975,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:24:57"
},
{
"absolutePath": "openzeppelin-solidity/contracts/token/ERC20/BasicToken.sol",
"file": "./BasicToken.sol",
"id": 20976,
"nodeType": "ImportDirective",
"scope": 21045,
"sourceUnit": 20974,
"src": "26:26:57",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 20977,
"name": "BasicToken",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 20973,
"src": "173:10:57",
"typeDescriptions": {
"typeIdentifier": "t_contract$_BasicToken_$20973",
"typeString": "contract BasicToken"
}
},
"id": 20978,
"nodeType": "InheritanceSpecifier",
"src": "173:10:57"
}
],
"contractDependencies": [
20973,
21119
],
"contractKind": "contract",
"documentation": "@title Burnable Token\n@dev Token that can be irreversibly burned (destroyed).",
"fullyImplemented": true,
"id": 21044,
"linearizedBaseContracts": [
21044,
20973,
21119
],
"name": "BurnableToken",
"nodeType": "ContractDefinition",
"nodes": [
{
"anonymous": false,
"documentation": null,
"id": 20984,
"name": "Burn",
"nodeType": "EventDefinition",
"parameters": {
"id": 20983,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 20980,
"indexed": true,
"name": "burner",
"nodeType": "VariableDeclaration",
"scope": 20984,
"src": "200:22:57",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 20979,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "200:7:57",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 20982,
"indexed": false,
"name": "value",
"nodeType": "VariableDeclaration",
"scope": 20984,
"src": "224:13:57",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 20981,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "224:7:57",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "inte