@gooddollar/goodcontracts
Version:
GoodDollar Contracts
943 lines (942 loc) • 56.9 kB
JSON
{
"contractName": "ERC20Burnable",
"abi": [
{
"constant": false,
"inputs": [
{
"name": "spender",
"type": "address"
},
{
"name": "value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "from",
"type": "address"
},
{
"name": "to",
"type": "address"
},
{
"name": "value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "spender",
"type": "address"
},
{
"name": "addedValue",
"type": "uint256"
}
],
"name": "increaseAllowance",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"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": "spender",
"type": "address"
},
{
"name": "subtractedValue",
"type": "uint256"
}
],
"name": "decreaseAllowance",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"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"
},
{
"constant": true,
"inputs": [
{
"name": "owner",
"type": "address"
},
{
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"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"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "owner",
"type": "address"
},
{
"indexed": true,
"name": "spender",
"type": "address"
},
{
"indexed": false,
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"constant": false,
"inputs": [
{
"name": "value",
"type": "uint256"
}
],
"name": "burn",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "from",
"type": "address"
},
{
"name": "value",
"type": "uint256"
}
],
"name": "burnFrom",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.5.4+commit.9549d8ff\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"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\":\"from\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"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\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Token that can be irreversibly burned (destroyed).\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Function to check the amount of tokens that an owner allowed to a spender.\",\"params\":{\"owner\":\"address The address which owns the funds.\",\"spender\":\"address The address which will spend the funds.\"},\"return\":\"A uint256 specifying the amount of tokens still available for the spender.\"},\"approve(address,uint256)\":{\"details\":\"Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\",\"params\":{\"spender\":\"The address which will spend the funds.\",\"value\":\"The amount of tokens to be spent.\"}},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address.\",\"params\":{\"owner\":\"The address to query the balance of.\"},\"return\":\"An uint256 representing the amount owned by the passed address.\"},\"burn(uint256)\":{\"details\":\"Burns a specific amount of tokens.\",\"params\":{\"value\":\"The amount of token to be burned.\"}},\"burnFrom(address,uint256)\":{\"details\":\"Burns a specific amount of tokens from the target address and decrements allowance\",\"params\":{\"from\":\"address The address which you want to send tokens from\",\"value\":\"uint256 The amount of token to be burned\"}},\"decreaseAllowance(address,uint256)\":{\"details\":\"Decrease the amount of tokens that an owner allowed to a spender. approve should be called when allowed_[_spender] == 0. To decrement allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol Emits an Approval event.\",\"params\":{\"spender\":\"The address which will spend the funds.\",\"subtractedValue\":\"The amount of tokens to decrease the allowance by.\"}},\"increaseAllowance(address,uint256)\":{\"details\":\"Increase the amount of tokens that an owner allowed to a spender. approve should be called when allowed_[_spender] == 0. To increment allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol Emits an Approval event.\",\"params\":{\"addedValue\":\"The amount of tokens to increase the allowance by.\",\"spender\":\"The address which will spend the funds.\"}},\"totalSupply()\":{\"details\":\"Total number of tokens in existence\"},\"transfer(address,uint256)\":{\"details\":\"Transfer token for a specified address\",\"params\":{\"to\":\"The address to transfer to.\",\"value\":\"The amount to be transferred.\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfer tokens from one address to another. Note that while this function emits an Approval event, this is not required as per the specification, and other compliant implementations may not emit the event.\",\"params\":{\"from\":\"address The address which you want to send tokens from\",\"to\":\"address The address which you want to transfer to\",\"value\":\"uint256 the amount of tokens to be transferred\"}}},\"title\":\"Burnable Token\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":\"ERC20Burnable\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x965012d27b4262d7a41f5028cbb30c51ebd9ecd4be8fb30380aaa7a3c64fbc8b\",\"urls\":[\"bzzr://41ca38f6b0fa4b77b0feec43e422cfbec48b7eb38a41edf0b85c77e8d9a296b1\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xba431353cb4fe70777ac026231eb5468e41aa1e81240a2b8136917acc5fff4dc\",\"urls\":[\"bzzr://80cd02a56e6e33504318124d0d645c82e615cc8a4b5829cc9d82d17635c644c8\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0xa3e68fd7f987c8fbdaf4867d428a69a15f3cf2f69709a5b0a0fbef750b0e6fbc\",\"urls\":[\"bzzr://f4ebb7c5b9e429b98b07e2caca6156c13c3724e9b1191cca8423ab8427bc6265\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x079c4e23ee448f529e43bfa3c4e8fb4be52cd0318ee923a276835bedf45b93d8\",\"urls\":[\"bzzr://48248e86f64407a95f241d6c5c8cfea6b4d4ebf4ebb467e5c98c8af3868fafe4\"]}},\"version\":1}",
"bytecode": "0x608060405234801561001057600080fd5b5061079c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100bb576000357c01000000000000000000000000000000000000000000000000000000009004806370a082311161008357806370a082311461019b57806379cc6790146101c1578063a457c2d7146101ed578063a9059cbb14610219578063dd62ed3e14610245576100bb565b8063095ea7b3146100c057806318160ddd1461010057806323b872dd1461011a578063395093511461015057806342966c681461017c575b600080fd5b6100ec600480360360408110156100d657600080fd5b50600160a060020a038135169060200135610273565b604080519115158252519081900360200190f35b6101086102df565b60408051918252519081900360200190f35b6100ec6004803603606081101561013057600080fd5b50600160a060020a038135811691602081013590911690604001356102e5565b6100ec6004803603604081101561016657600080fd5b50600160a060020a03813516906020013561039c565b6101996004803603602081101561019257600080fd5b503561043a565b005b610108600480360360208110156101b157600080fd5b5035600160a060020a0316610447565b610199600480360360408110156101d757600080fd5b50600160a060020a038135169060200135610462565b6100ec6004803603604081101561020357600080fd5b50600160a060020a038135169060200135610470565b6100ec6004803603604081101561022f57600080fd5b50600160a060020a0381351690602001356104bb565b6101086004803603604081101561025b57600080fd5b50600160a060020a03813581169160200135166104d1565b6000600160a060020a038316151561028a57600080fd5b336000818152600160209081526040808320600160a060020a0388168085529083529281902086905580518681529051929392600080516020610751833981519152929181900390910190a350600192915050565b60025490565b600160a060020a0383166000908152600160209081526040808320338452909152812054610319908363ffffffff6104fc16565b600160a060020a0385166000908152600160209081526040808320338452909152902055610348848484610511565b600160a060020a038416600081815260016020908152604080832033808552908352928190205481519081529051929392600080516020610751833981519152929181900390910190a35060019392505050565b6000600160a060020a03831615156103b357600080fd5b336000908152600160209081526040808320600160a060020a03871684529091529020546103e7908363ffffffff6105de16565b336000818152600160209081526040808320600160a060020a038916808552908352928190208590558051948552519193600080516020610751833981519152929081900390910190a350600192915050565b61044433826105f7565b50565b600160a060020a031660009081526020819052604090205490565b61046c82826106a0565b5050565b6000600160a060020a038316151561048757600080fd5b336000908152600160209081526040808320600160a060020a03871684529091529020546103e7908363ffffffff6104fc16565b60006104c8338484610511565b50600192915050565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b60008282111561050b57600080fd5b50900390565b600160a060020a038216151561052657600080fd5b600160a060020a03831660009081526020819052604090205461054f908263ffffffff6104fc16565b600160a060020a038085166000908152602081905260408082209390935590841681522054610584908263ffffffff6105de16565b600160a060020a038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000828201838110156105f057600080fd5b9392505050565b600160a060020a038216151561060c57600080fd5b60025461061f908263ffffffff6104fc16565b600255600160a060020a03821660009081526020819052604090205461064b908263ffffffff6104fc16565b600160a060020a038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b600160a060020a03821660009081526001602090815260408083203384529091529020546106d4908263ffffffff6104fc16565b600160a060020a038316600090815260016020908152604080832033845290915290205561070282826105f7565b600160a060020a038216600081815260016020908152604080832033808552908352928190205481519081529051929392600080516020610751833981519152929181900390910190a3505056fe8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a165627a7a723058208334ff606c738ff8073e86b251f2d90c6bf481f64df01f4422b53214294e6b090029",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100bb576000357c01000000000000000000000000000000000000000000000000000000009004806370a082311161008357806370a082311461019b57806379cc6790146101c1578063a457c2d7146101ed578063a9059cbb14610219578063dd62ed3e14610245576100bb565b8063095ea7b3146100c057806318160ddd1461010057806323b872dd1461011a578063395093511461015057806342966c681461017c575b600080fd5b6100ec600480360360408110156100d657600080fd5b50600160a060020a038135169060200135610273565b604080519115158252519081900360200190f35b6101086102df565b60408051918252519081900360200190f35b6100ec6004803603606081101561013057600080fd5b50600160a060020a038135811691602081013590911690604001356102e5565b6100ec6004803603604081101561016657600080fd5b50600160a060020a03813516906020013561039c565b6101996004803603602081101561019257600080fd5b503561043a565b005b610108600480360360208110156101b157600080fd5b5035600160a060020a0316610447565b610199600480360360408110156101d757600080fd5b50600160a060020a038135169060200135610462565b6100ec6004803603604081101561020357600080fd5b50600160a060020a038135169060200135610470565b6100ec6004803603604081101561022f57600080fd5b50600160a060020a0381351690602001356104bb565b6101086004803603604081101561025b57600080fd5b50600160a060020a03813581169160200135166104d1565b6000600160a060020a038316151561028a57600080fd5b336000818152600160209081526040808320600160a060020a0388168085529083529281902086905580518681529051929392600080516020610751833981519152929181900390910190a350600192915050565b60025490565b600160a060020a0383166000908152600160209081526040808320338452909152812054610319908363ffffffff6104fc16565b600160a060020a0385166000908152600160209081526040808320338452909152902055610348848484610511565b600160a060020a038416600081815260016020908152604080832033808552908352928190205481519081529051929392600080516020610751833981519152929181900390910190a35060019392505050565b6000600160a060020a03831615156103b357600080fd5b336000908152600160209081526040808320600160a060020a03871684529091529020546103e7908363ffffffff6105de16565b336000818152600160209081526040808320600160a060020a038916808552908352928190208590558051948552519193600080516020610751833981519152929081900390910190a350600192915050565b61044433826105f7565b50565b600160a060020a031660009081526020819052604090205490565b61046c82826106a0565b5050565b6000600160a060020a038316151561048757600080fd5b336000908152600160209081526040808320600160a060020a03871684529091529020546103e7908363ffffffff6104fc16565b60006104c8338484610511565b50600192915050565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b60008282111561050b57600080fd5b50900390565b600160a060020a038216151561052657600080fd5b600160a060020a03831660009081526020819052604090205461054f908263ffffffff6104fc16565b600160a060020a038085166000908152602081905260408082209390935590841681522054610584908263ffffffff6105de16565b600160a060020a038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000828201838110156105f057600080fd5b9392505050565b600160a060020a038216151561060c57600080fd5b60025461061f908263ffffffff6104fc16565b600255600160a060020a03821660009081526020819052604090205461064b908263ffffffff6104fc16565b600160a060020a038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b600160a060020a03821660009081526001602090815260408083203384529091529020546106d4908263ffffffff6104fc16565b600160a060020a038316600090815260016020908152604080832033845290915290205561070282826105f7565b600160a060020a038216600081815260016020908152604080832033808552908352928190205481519081529051929392600080516020610751833981519152929181900390910190a3505056fe8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a165627a7a723058208334ff606c738ff8073e86b251f2d90c6bf481f64df01f4422b53214294e6b090029",
"sourceMap": "140:579:70:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;140:579:70;;;;;;;",
"deployedSourceMap": "140:579:70:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;140:579:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2735:238:69;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2735:238:69;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;936:89;;;:::i;:::-;;;;;;;;;;;;;;;;3436:294;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3436:294:69;;;;;;;;;;;;;;;;;:::i;4233:317::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4233:317:69;;;;;;;;:::i;295:77:70:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;295:77:70;;:::i;:::-;;1234:104:69;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1234:104:69;-1:-1:-1;;;;;1234:104:69;;:::i;624:93:70:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;624:93:70;;;;;;;;:::i;5058:327:69:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5058:327:69;;;;;;;;:::i;1962:137::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1962:137:69;;;;;;;;:::i;1669:129::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1669:129:69;;;;;;;;;;:::i;2735:238::-;2800:4;-1:-1:-1;;;;;2824:21:69;;;;2816:30;;;;;;2866:10;2857:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;2857:29:69;;;;;;;;;;;;:37;;;2909:36;;;;;;;2857:29;;2866:10;-1:-1:-1;;;;;;;;;;;2909:36:69;;;;;;;;;;-1:-1:-1;2962:4:69;2735:238;;;;:::o;936:89::-;1006:12;;936:89;:::o;3436:294::-;-1:-1:-1;;;;;3560:14:69;;3515:4;3560:14;;;:8;:14;;;;;;;;3575:10;3560:26;;;;;;;;:37;;3591:5;3560:37;:30;:37;:::i;:::-;-1:-1:-1;;;;;3531:14:69;;;;;;:8;:14;;;;;;;;3546:10;3531:26;;;;;;;:66;3607:26;3540:4;3623:2;3627:5;3607:9;:26::i;:::-;-1:-1:-1;;;;;3648:54:69;;3675:14;;;;:8;:14;;;;;;;;3663:10;3675:26;;;;;;;;;;;3648:54;;;;;;;3663:10;;3648:54;-1:-1:-1;;;;;;;;;;;3648:54:69;;;;;;;;;;-1:-1:-1;3719:4:69;3436:294;;;;;:::o;4233:317::-;4313:4;-1:-1:-1;;;;;4337:21:69;;;;4329:30;;;;;;4411:10;4402:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;4402:29:69;;;;;;;;;;:45;;4436:10;4402:45;:33;:45;:::i;:::-;4379:10;4370:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;4370:29:69;;;;;;;;;;;;:77;;;4462:60;;;;;;4370:29;;-1:-1:-1;;;;;;;;;;;4462:60:69;;;;;;;;;;-1:-1:-1;4539:4:69;4233:317;;;;:::o;295:77:70:-;341:24;347:10;359:5;341;:24::i;:::-;295:77;:::o;1234:104:69:-;-1:-1:-1;;;;;1315:16:69;1289:7;1315:16;;;;;;;;;;;;1234:104::o;624:93:70:-;688:22;698:4;704:5;688:9;:22::i;:::-;624:93;;:::o;5058:327:69:-;5143:4;-1:-1:-1;;;;;5167:21:69;;;;5159:30;;;;;;5241:10;5232:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;5232:29:69;;;;;;;;;;:50;;5266:15;5232:50;:33;:50;:::i;1962:137::-;2023:4;2039:32;2049:10;2061:2;2065:5;2039:9;:32::i;:::-;-1:-1:-1;2088:4:69;1962:137;;;;:::o;1669:129::-;-1:-1:-1;;;;;1767:15:69;;;1741:7;1767:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;1669:129::o;1205:145:67:-;1263:7;1290:6;;;;1282:15;;;;;;-1:-1:-1;1319:5:67;;;1205:145::o;5599:256:69:-;-1:-1:-1;;;;;5686:16:69;;;;5678:25;;;;;;-1:-1:-1;;;;;5732:15:69;;:9;:15;;;;;;;;;;;:26;;5752:5;5732:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;5714:15:69;;;:9;:15;;;;;;;;;;;:44;;;;5784:13;;;;;;;:24;;5802:5;5784:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;5768:13:69;;;:9;:13;;;;;;;;;;;;:40;;;;5823:25;;;;;;;5768:13;;5823:25;;;;;;;;;;;;;5599:256;;;:::o;1431:145:67:-;1489:7;1520:5;;;1543:6;;;;1535:15;;;;;;1568:1;1431:145;-1:-1:-1;;;1431:145:67:o;6687:263:69:-;-1:-1:-1;;;;;6761:21:69;;;;6753:30;;;;;;6809:12;;:23;;6826:5;6809:23;:16;:23;:::i;:::-;6794:12;:38;-1:-1:-1;;;;;6863:18:69;;:9;:18;;;;;;;;;;;:29;;6886:5;6863:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;6842:18:69;;:9;:18;;;;;;;;;;;:50;;;;6907:36;;;;;;;6842:9;;6907:36;;;;;;;;;;;6687:263;;:::o;7339:255::-;-1:-1:-1;;;;;7441:17:69;;;;;;:8;:17;;;;;;;;7459:10;7441:29;;;;;;;;:40;;7475:5;7441:40;:33;:40;:::i;:::-;-1:-1:-1;;;;;7409:17:69;;;;;;:8;:17;;;;;;;;7427:10;7409:29;;;;;;;:72;7491:21;7418:7;7506:5;7491;:21::i;:::-;-1:-1:-1;;;;;7527:60:69;;7557:17;;;;:8;:17;;;;;;;;7545:10;7557:29;;;;;;;;;;;7527:60;;;;;;;7545:10;;7527:60;-1:-1:-1;;;;;;;;;;;7527:60:69;;;;;;;;;;7339:255;;:::o",
"source": "pragma solidity ^0.5.0;\n\nimport \"./ERC20.sol\";\n\n/**\n * @title Burnable Token\n * @dev Token that can be irreversibly burned (destroyed).\n */\ncontract ERC20Burnable is ERC20 {\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 /**\n * @dev Burns a specific amount of tokens from the target address and decrements allowance\n * @param from address The address which you want to send tokens from\n * @param value uint256 The amount of token to be burned\n */\n function burnFrom(address from, uint256 value) public {\n _burnFrom(from, value);\n }\n}\n",
"sourcePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol",
"ast": {
"absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol",
"exportedSymbols": {
"ERC20Burnable": [
16491
]
},
"id": 16492,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 16462,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:70"
},
{
"absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol",
"file": "./ERC20.sol",
"id": 16463,
"nodeType": "ImportDirective",
"scope": 16492,
"sourceUnit": 16461,
"src": "25:21:70",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 16464,
"name": "ERC20",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 16460,
"src": "166:5:70",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC20_$16460",
"typeString": "contract ERC20"
}
},
"id": 16465,
"nodeType": "InheritanceSpecifier",
"src": "166:5:70"
}
],
"contractDependencies": [
16460,
16748
],
"contractKind": "contract",
"documentation": "@title Burnable Token\n@dev Token that can be irreversibly burned (destroyed).",
"fullyImplemented": true,
"id": 16491,
"linearizedBaseContracts": [
16491,
16460,
16748
],
"name": "ERC20Burnable",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 16476,
"nodeType": "Block",
"src": "331:41:70",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 16471,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16782,
"src": "347:3:70",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 16472,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "347:10:70",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"id": 16473,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16467,
"src": "359:5:70",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 16470,
"name": "_burn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16417,
"src": "341:5:70",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 16474,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "341:24:70",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 16475,
"nodeType": "ExpressionStatement",
"src": "341:24:70"
}
]
},
"documentation": "@dev Burns a specific amount of tokens.\n@param value The amount of token to be burned.",
"id": 16477,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "burn",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 16468,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 16467,
"name": "value",
"nodeType": "VariableDeclaration",
"scope": 16477,
"src": "309:13:70",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 16466,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "309:7:70",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "308:15:70"
},
"returnParameters": {
"id": 16469,
"nodeType": "ParameterList",
"parameters": [],
"src": "331:0:70"
},
"scope": 16491,
"src": "295:77:70",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 16489,
"nodeType": "Block",
"src": "678:39:70",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 16485,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16479,
"src": "698:4:70",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 16486,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16481,
"src": "704:5:70",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 16484,
"name": "_burnFrom",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16459,
"src": "688:9:70",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 16487,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "688:22:70",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 16488,
"nodeType": "ExpressionStatement",
"src": "688:22:70"
}
]
},
"documentation": "@dev Burns a specific amount of tokens from the target address and decrements allowance\n@param from address The address which you want to send tokens from\n@param value uint256 The amount of token to be burned",
"id": 16490,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "burnFrom",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 16482,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 16479,
"name": "from",
"nodeType": "VariableDeclaration",
"scope": 16490,
"src": "642:12:70",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 16478,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "642:7:70",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 16481,
"name": "value",
"nodeType": "VariableDeclaration",
"scope": 16490,
"src": "656:13:70",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 16480,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "656:7:70",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "641:29:70"
},
"returnParameters": {
"id": 16483,
"nodeType": "ParameterList",
"parameters": [],
"src": "678:0:70"
},
"scope": 16491,
"src": "624:93:70",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 16492,
"src": "140:579:70"
}
],
"src": "0:720:70"
},
"legacyAST": {
"absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol",
"exportedSymbols": {
"ERC20Burnable": [
16491
]
},
"id": 16492,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 16462,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:70"
},
{
"absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol",
"file": "./ERC20.sol",
"id": 16463,
"nodeType": "ImportDirective",
"scope": 16492,
"sourceUnit": 16461,
"src": "25:21:70",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 16464,
"name": "ERC20",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 16460,
"src": "166:5:70",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC20_$16460",
"typeString": "contract ERC20"
}
},
"id": 16465,
"nodeType": "InheritanceSpecifier",
"src": "166:5:70"
}
],
"contractDependencies": [
16460,
16748
],
"contractKind": "contract",
"documentation": "@title Burnable Token\n@dev Token that can be irreversibly burned (destroyed).",
"fullyImplemented": true,
"id": 16491,
"linearizedBaseContracts": [
16491,
16460,
16748
],
"name": "ERC20Burnable",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 16476,
"nodeType": "Block",
"src": "331:41:70",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 16471,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16782,
"src": "347:3:70",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 16472,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "347:10:70",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"id": 16473,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16467,
"src": "359:5:70",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 16470,
"name": "_burn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16417,
"src": "341:5:70",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 16474,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "341:24:70",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 16475,
"nodeType": "ExpressionStatement",
"src": "341:24:70"
}
]
},
"documentation": "@dev Burns a specific amount of tokens.\n@param value The amount of token to be burned.",
"id": 16477,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "burn",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 16468,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 16467,
"name": "value",
"nodeType": "VariableDeclaration",
"scope": 16477,
"src": "309:13:70",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 16466,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "309:7:70",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "308:15:70"
},
"returnParameters": {
"id": 16469,
"nodeType": "ParameterList",
"parameters": [],
"src": "331:0:70"
},
"scope": 16491,
"src": "295:77:70",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 16489,
"nodeType": "Block",
"src": "678:39:70",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 16485,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16479,
"src": "698:4:70",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 16486,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16481,
"src": "704:5:70",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 16484,
"name": "_burnFrom",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16459,
"src": "688:9:70",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 16487,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "688:22:70",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 16488,
"nodeType": "ExpressionStatement",
"src": "688:22:70"
}
]
},
"documentation": "@dev Burns a specific amount of tokens from the target address and decrements allowance\n@param from address The address which you want to send tokens from\n@param value uint256 The amount of token to be burned",
"id": 16490,
"implemented": true,
"kind": "function",