From c6590df9a85205116f85719edd7c3a469a217ecc Mon Sep 17 00:00:00 2001 From: acrdlph Date: Sun, 16 Dec 2018 19:53:39 +0000 Subject: [PATCH 1/4] mainnet indications and link to testnet version added --- src/build/contracts/ERC20.json | 2 +- src/build/contracts/ERC20Detailed.json | 2 +- .../contracts/EthBondingCurvedToken.json | 2 +- .../contracts/EthPolynomialCurvedToken.json | 2 +- src/build/contracts/Factory.json | 12 +++---- src/build/contracts/IERC20.json | 2 +- src/build/contracts/Migrations.json | 24 ++++++-------- src/build/contracts/PersonalEconomy.json | 12 +++---- .../contracts/PersonalEconomyFactory.json | 32 ++++++++----------- src/build/contracts/SafeMath.json | 2 +- src/pages/Landing/index.jsx | 18 ++++++++--- yarn.lock | 2 +- 12 files changed, 55 insertions(+), 57 deletions(-) diff --git a/src/build/contracts/ERC20.json b/src/build/contracts/ERC20.json index 9c100f5..7666fc4 100644 --- a/src/build/contracts/ERC20.json +++ b/src/build/contracts/ERC20.json @@ -12207,7 +12207,7 @@ }, "networks": {}, "schemaVersion": "3.0.0-beta.1", - "updatedAt": "2018-12-08T22:22:23.364Z", + "updatedAt": "2018-12-16T19:14:46.486Z", "devdoc": { "methods": { "allowance(address,address)": { diff --git a/src/build/contracts/ERC20Detailed.json b/src/build/contracts/ERC20Detailed.json index 034b9a4..5c47996 100644 --- a/src/build/contracts/ERC20Detailed.json +++ b/src/build/contracts/ERC20Detailed.json @@ -1542,7 +1542,7 @@ }, "networks": {}, "schemaVersion": "3.0.0-beta.1", - "updatedAt": "2018-12-08T22:22:23.366Z", + "updatedAt": "2018-12-16T19:14:46.488Z", "devdoc": { "methods": { "decimals()": { diff --git a/src/build/contracts/EthBondingCurvedToken.json b/src/build/contracts/EthBondingCurvedToken.json index 6cd2b8d..3da4ac9 100644 --- a/src/build/contracts/EthBondingCurvedToken.json +++ b/src/build/contracts/EthBondingCurvedToken.json @@ -4988,7 +4988,7 @@ }, "networks": {}, "schemaVersion": "3.0.0-beta.1", - "updatedAt": "2018-12-08T22:22:23.362Z", + "updatedAt": "2018-12-16T19:14:46.483Z", "devdoc": { "methods": { "allowance(address,address)": { diff --git a/src/build/contracts/EthPolynomialCurvedToken.json b/src/build/contracts/EthPolynomialCurvedToken.json index 338537b..7bbff7f 100644 --- a/src/build/contracts/EthPolynomialCurvedToken.json +++ b/src/build/contracts/EthPolynomialCurvedToken.json @@ -3856,7 +3856,7 @@ }, "networks": {}, "schemaVersion": "3.0.0-beta.1", - "updatedAt": "2018-12-08T22:22:23.363Z", + "updatedAt": "2018-12-16T19:14:46.484Z", "devdoc": { "methods": { "allowance(address,address)": { diff --git a/src/build/contracts/Factory.json b/src/build/contracts/Factory.json index a1ef98d..1890dcf 100644 --- a/src/build/contracts/Factory.json +++ b/src/build/contracts/Factory.json @@ -71,14 +71,14 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b506102a8806100206000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f4f33161461005c578063b7de9dae146100b7578063c1ad191a14610124575b600080fd5b34801561006857600080fd5b5061009d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610190565b604051808215151515815260200191505060405180910390f35b3480156100c357600080fd5b506100e2600480360381019080803590602001909291905050506101b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013057600080fd5b506101396101ee565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561017c578082015181840152602081019050610161565b505050509050019250505060405180910390f35b60006020528060005260406000206000915054906101000a900460ff1681565b6001818154811015156101bf57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600180548060200260200160405190810160405280929190818152602001828054801561027257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610228575b50505050509050905600a165627a7a723058203ebb24f9b8ac07ee1a3b0945b136bca8f93c7456d9bddeadf55b56f9ab0d83ff0029", - "deployedBytecode": "0x608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f4f33161461005c578063b7de9dae146100b7578063c1ad191a14610124575b600080fd5b34801561006857600080fd5b5061009d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610190565b604051808215151515815260200191505060405180910390f35b3480156100c357600080fd5b506100e2600480360381019080803590602001909291905050506101b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013057600080fd5b506101396101ee565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561017c578082015181840152602081019050610161565b505050509050019250505060405180910390f35b60006020528060005260406000206000915054906101000a900460ff1681565b6001818154811015156101bf57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600180548060200260200160405190810160405280929190818152602001828054801561027257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610228575b50505050509050905600a165627a7a723058203ebb24f9b8ac07ee1a3b0945b136bca8f93c7456d9bddeadf55b56f9ab0d83ff0029", + "bytecode": "0x608060405234801561001057600080fd5b506102a8806100206000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f4f33161461005c578063b7de9dae146100b7578063c1ad191a14610124575b600080fd5b34801561006857600080fd5b5061009d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610190565b604051808215151515815260200191505060405180910390f35b3480156100c357600080fd5b506100e2600480360381019080803590602001909291905050506101b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013057600080fd5b506101396101ee565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561017c578082015181840152602081019050610161565b505050509050019250505060405180910390f35b60006020528060005260406000206000915054906101000a900460ff1681565b6001818154811015156101bf57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600180548060200260200160405190810160405280929190818152602001828054801561027257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610228575b50505050509050905600a165627a7a7230582006ef90965d30e9519d651178d251409c2703817f4bfb6862df785770939302e70029", + "deployedBytecode": "0x608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f4f33161461005c578063b7de9dae146100b7578063c1ad191a14610124575b600080fd5b34801561006857600080fd5b5061009d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610190565b604051808215151515815260200191505060405180910390f35b3480156100c357600080fd5b506100e2600480360381019080803590602001909291905050506101b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013057600080fd5b506101396101ee565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561017c578082015181840152602081019050610161565b505050509050019250505060405180910390f35b60006020528060005260406000206000915054906101000a900460ff1681565b6001818154811015156101bf57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600180548060200260200160405190810160405280929190818152602001828054801561027257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610228575b50505050509050905600a165627a7a7230582006ef90965d30e9519d651178d251409c2703817f4bfb6862df785770939302e70029", "sourceMap": "26:817:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26:817:0;;;;;;;", "deployedSourceMap": "26:817:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;184:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;184:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;237:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;237:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;350:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;350:99:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;350:99:0;;;;;;;;;;;;;;;;;184:47;;;;;;;;;;;;;;;;;;;;;;:::o;237:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;350:99::-;401:9;428:14;421:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;350:99;:::o", "source": "pragma solidity ^0.4.24;\n\ncontract Factory {\n\n /*\n * Events\n */\n event ContractInstantiation(address sender, address instantiation);\n\n /*\n * Storage\n */\n mapping(address => bool) public isInstantiation;\n address[] public instantiations;\n\n /*\n * Public functions\n */\n // Get list of instantiations:\n\n function getInstantiations () public view returns (address[]){\n return instantiations;\n }\n /*\n * Internal functions\n */\n /// @dev Registers contract in factory registry.\n /// @param instantiation Address of contract instantiation.\n function register(address instantiation)\n internal\n {\n isInstantiation[instantiation] = true;\n instantiations.push(instantiation);\n emit ContractInstantiation(msg.sender, instantiation);\n }\n\n \n}\n", - "sourcePath": "/home/volt/workspaces/convergentcx/Arena/contracts/Factory.sol", + "sourcePath": "/home/achill/Arena_Master/Arena/contracts/Factory.sol", "ast": { - "absolutePath": "/home/volt/workspaces/convergentcx/Arena/contracts/Factory.sol", + "absolutePath": "/home/achill/Arena_Master/Arena/contracts/Factory.sol", "exportedSymbols": { "Factory": [ 48 @@ -657,7 +657,7 @@ "src": "0:844:0" }, "legacyAST": { - "absolutePath": "/home/volt/workspaces/convergentcx/Arena/contracts/Factory.sol", + "absolutePath": "/home/achill/Arena_Master/Arena/contracts/Factory.sol", "exportedSymbols": { "Factory": [ 48 @@ -1241,7 +1241,7 @@ }, "networks": {}, "schemaVersion": "3.0.0-beta.1", - "updatedAt": "2018-12-08T22:22:23.361Z", + "updatedAt": "2018-12-16T19:14:46.479Z", "devdoc": { "methods": {} }, diff --git a/src/build/contracts/IERC20.json b/src/build/contracts/IERC20.json index 79dd3d7..ad03ca1 100644 --- a/src/build/contracts/IERC20.json +++ b/src/build/contracts/IERC20.json @@ -1855,7 +1855,7 @@ }, "networks": {}, "schemaVersion": "3.0.0-beta.1", - "updatedAt": "2018-12-08T22:22:23.366Z", + "updatedAt": "2018-12-16T19:14:46.488Z", "devdoc": { "methods": {}, "title": "ERC20 interface" diff --git a/src/build/contracts/Migrations.json b/src/build/contracts/Migrations.json index 4a3fc4d..d5045fc 100644 --- a/src/build/contracts/Migrations.json +++ b/src/build/contracts/Migrations.json @@ -69,14 +69,14 @@ "signature": "0x0900f010" } ], - "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102f8806100606000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820acfe5623b98331269088fba0cdeb83fa454ec0255b0b0281695d8c418e09373b0029", - "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820acfe5623b98331269088fba0cdeb83fa454ec0255b0b0281695d8c418e09373b0029", + "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102f8806100606000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a723058203cd7608a08934d7b82dec02c949d776e6cac54ae7ee0575de2da16a7535e17710029", + "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a723058203cd7608a08934d7b82dec02c949d776e6cac54ae7ee0575de2da16a7535e17710029", "sourceMap": "26:520:1:-;;;192:56;8:9:-1;5:2;;;30:1;27;20:12;5:2;192:56:1;231:10;223:5;;:18;;;;;;;;;;;;;;;;;;26:520;;;;;;", "deployedSourceMap": "26:520:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;369:175;;8:9:-1;5:2;;;30:1;27;20:12;5:2;369:175:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;78:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;78:36:1;;;;;;;;;;;;;;;;;;;;;;;52:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;52:20:1;;;;;;;;;;;;;;;;;;;;;;;;;;;254:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;254:109:1;;;;;;;;;;;;;;;;;;;;;;;;;;369:175;435:19;171:5;;;;;;;;;;;157:19;;:10;:19;;;153:26;;;468:11;435:45;;490:8;:21;;;512:24;;490:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;490:47:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;490:47:1;;;;153:26;369:175;;:::o;78:36::-;;;;:::o;52:20::-;;;;;;;;;;;;;:::o;254:109::-;171:5;;;;;;;;;;;157:19;;:10;:19;;;153:26;;;347:9;320:24;:36;;;;153:26;254:109;:::o", "source": "pragma solidity ^0.4.21;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n constructor() public {\n owner = msg.sender;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n\n function upgrade(address new_address) public restricted {\n Migrations upgraded = Migrations(new_address);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n", - "sourcePath": "/home/volt/workspaces/convergentcx/Arena/contracts/Migrations.sol", + "sourcePath": "/home/achill/Arena_Master/Arena/contracts/Migrations.sol", "ast": { - "absolutePath": "/home/volt/workspaces/convergentcx/Arena/contracts/Migrations.sol", + "absolutePath": "/home/achill/Arena_Master/Arena/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ 105 @@ -726,7 +726,7 @@ "src": "0:547:1" }, "legacyAST": { - "absolutePath": "/home/volt/workspaces/convergentcx/Arena/contracts/Migrations.sol", + "absolutePath": "/home/achill/Arena_Master/Arena/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ 105 @@ -1380,21 +1380,15 @@ "version": "0.4.25+commit.59dbf8f1.Emscripten.clang" }, "networks": { - "4": { + "1544898413424": { "events": {}, "links": {}, - "address": "0xeb50c68587E8D47548d915D5E1262C9301AcD590", - "transactionHash": "0x2cf3c7eefabff4498c76316bb5c84dfc89b755eedc1519c3d342072355086cb7" - }, - "1544307662770": { - "events": {}, - "links": {}, - "address": "0x031dc2c0d18B19098D8aaa0C27A943Bcd8C8AFad", - "transactionHash": "0x1ed56660855520c27ab5fcad8d414d80240c7d3d599cdd2b430477deb17bb7a7" + "address": "0xb04b7b4e13443189768Eb560c3a274198df35f09", + "transactionHash": "0xb497310dff3d408b61ce4fd48d661d09ea97d92d3b6484113ed7a7379b5324a8" } }, "schemaVersion": "3.0.0-beta.1", - "updatedAt": "2018-12-08T23:20:59.937Z", + "updatedAt": "2018-12-16T19:14:52.065Z", "devdoc": { "methods": {} }, diff --git a/src/build/contracts/PersonalEconomy.json b/src/build/contracts/PersonalEconomy.json index f92595e..eba54c5 100644 --- a/src/build/contracts/PersonalEconomy.json +++ b/src/build/contracts/PersonalEconomy.json @@ -533,14 +533,14 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b50604051620021f0380380620021f0833981018060405281019080805190602001909291908051820192919060200180518201929190602001805190602001909291905050508282601260016103e884848482828282600090805190602001906200007e92919062000122565b5081600190805190602001906200009792919062000122565b5080600260006101000a81548160ff021916908360ff16021790555050505050505081600781905550806008819055505050505050836009816000191690555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050620001d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016557805160ff191683800117855562000196565b8280016001018555821562000196579182015b828111156200019557825182559160200191906001019062000178565b5b509050620001a59190620001a9565b5090565b620001ce91905b80821115620001ca576000816000905550600101620001b0565b5090565b90565b61200f80620001e16000396000f300608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610138578063095ea7b3146101c857806318160ddd1461022d57806323b872dd14610258578063313ce567146102dd578063395093511461030e57806342966c681461037357806352f6ee58146103a0578063621d8531146103cb5780636400be1d1461043157806370a082311461045c5780638da5cb5b146104b357806395d89b411461050a57806396365d441461059a578063a0712d68146105c5578063a457c2d7146105e5578063a9059cbb1461064a578063a9d989b4146106af578063b25ba02e14610722578063b9d3674314610755578063c544682b14610796578063cdf7f8e6146107d7578063dd62ed3e14610820575b600080fd5b34801561014457600080fd5b5061014d610897565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018d578082015181840152602081019050610172565b50505050905090810190601f1680156101ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d457600080fd5b50610213600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610939565b604051808215151515815260200191505060405180910390f35b34801561023957600080fd5b50610242610a66565b6040518082815260200191505060405180910390f35b34801561026457600080fd5b506102c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a70565b604051808215151515815260200191505060405180910390f35b3480156102e957600080fd5b506102f2610c22565b604051808260ff1660ff16815260200191505060405180910390f35b34801561031a57600080fd5b50610359600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c39565b604051808215151515815260200191505060405180910390f35b34801561037f57600080fd5b5061039e60048036038101908080359060200190929190505050610e70565b005b3480156103ac57600080fd5b506103b5611049565b6040518082815260200191505060405180910390f35b61042f600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061104f565b005b34801561043d57600080fd5b5061044661120e565b6040518082815260200191505060405180910390f35b34801561046857600080fd5b5061049d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611214565b6040518082815260200191505060405180910390f35b3480156104bf57600080fd5b506104c861125d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561051657600080fd5b5061051f611283565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561055f578082015181840152602081019050610544565b50505050905090810190601f16801561058c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105a657600080fd5b506105af611325565b6040518082815260200191505060405180910390f35b6105e36004803603810190808035906020019092919050505061132b565b005b3480156105f157600080fd5b50610630600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061153d565b604051808215151515815260200191505060405180910390f35b34801561065657600080fd5b50610695600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611774565b604051808215151515815260200191505060405180910390f35b3480156106bb57600080fd5b50610720600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061178b565b005b34801561072e57600080fd5b50610737611894565b60405180826000191660001916815260200191505060405180910390f35b34801561076157600080fd5b506107806004803603810190808035906020019092919050505061189a565b6040518082815260200191505060405180910390f35b3480156107a257600080fd5b506107c1600480360381019080803590602001909291905050506118d9565b6040518082815260200191505060405180910390f35b3480156107e357600080fd5b506108066004803603810190808035600019169060200190929190505050611918565b604051808215151515815260200191505060405180910390f35b34801561082c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611986565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561092f5780601f106109045761010080835404028352916020019161092f565b820191906000526020600020905b81548152906001019060200180831161091257829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561097657600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610afd57600080fd5b610b8c82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c17848484611a2e565b600190509392505050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610c7657600080fd5b610d0582600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008082111515610f0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d757374206275726e20616e20616d6f756e742067726561746572207468616e81526020017f207a65726f2e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81610f1933611214565b10151515610f8f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d757374206861766520656e6f75676820746f6b656e7320746f206275726e2e81525060200191505060405180910390fd5b610f98826118d9565b9050610fa43383611c6d565b610fb981600654611a0d90919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611005573d6000803e3d6000fd5b507fcec1bae6e024d929f2929f3478ce70f55f9c636c8ef7b5073a61d7c3a432451b8282604051808381526020018281526020019250505060405180910390a15050565b60075481565b600061105a8261189a565b90508034101515156110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6111043383611dfb565b61113133600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309183423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156111cd5780820151818401526020810190506111b2565b50505050905090810190601f1680156111fa5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b60085481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561131b5780601f106112f05761010080835404028352916020019161131b565b820191906000526020600020905b8154815290600101906020018083116112fe57829003601f168201915b5050505050905090565b60065481565b600080821115156113ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4d75737420707572636861736520616e20616d6f756e7420677265617465722081526020017f7468616e207a65726f2e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6113d38261189a565b9050803410151515611473576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61147d3383611dfb565b61149281600654611c4c90919063ffffffff16565b600681905550803411156114fa573373ffffffffffffffffffffffffffffffffffffffff166108fc6114cd8334611a0d90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156114f8573d6000803e3d6000fd5b505b7f8a9dcf4e150b1153011b29fec302d5be0c13e84fa8f56ab78587f778a32a90dd8282604051808381526020018281526020019250505060405180910390a15050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561157a57600080fd5b61160982600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000611781338484611a2e565b6001905092915050565b6117b833600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309182423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015611854578082015181840152602081019050611839565b50505050905090810190601f1680156118815780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b60095481565b60006118d26006546118c46118bf856118b1610a66565b611c4c90919063ffffffff16565b611f3b565b611a0d90919063ffffffff16565b9050919050565b60006119116119006118fb846118ed610a66565b611a0d90919063ffffffff16565b611f3b565b600654611a0d90919063ffffffff16565b9050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561197657600080fd5b8160098160001916905550919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080838311151515611a1f57600080fd5b82840390508091505092915050565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611a7c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611ab857600080fd5b611b0a81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b9f81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000808284019050838110151515611c6357600080fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611c9357600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611ce157600080fd5b611cf681600554611a0d90919063ffffffff16565b600581905550611d4e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611e2157600080fd5b611e3681600554611c4c90919063ffffffff16565b600581905550611e8e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000806000611f566001600754611c4c90919063ffffffff16565b9150601282611f63610c22565b60ff1602600a0a039050611fb0670de0b6b3a7640000611fa2600854611f9486878a0a611fb990919063ffffffff16565b611fb990919063ffffffff16565b611fb990919063ffffffff16565b92505050919050565b600080600083111515611fcb57600080fd5b8284811515611fd657fe5b04905080915050929150505600a165627a7a72305820f25a9884a790ace3f8477d714a0816955fa58e1a69bbf537cd62c1a8d78c74d60029", - "deployedBytecode": "0x608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610138578063095ea7b3146101c857806318160ddd1461022d57806323b872dd14610258578063313ce567146102dd578063395093511461030e57806342966c681461037357806352f6ee58146103a0578063621d8531146103cb5780636400be1d1461043157806370a082311461045c5780638da5cb5b146104b357806395d89b411461050a57806396365d441461059a578063a0712d68146105c5578063a457c2d7146105e5578063a9059cbb1461064a578063a9d989b4146106af578063b25ba02e14610722578063b9d3674314610755578063c544682b14610796578063cdf7f8e6146107d7578063dd62ed3e14610820575b600080fd5b34801561014457600080fd5b5061014d610897565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018d578082015181840152602081019050610172565b50505050905090810190601f1680156101ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d457600080fd5b50610213600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610939565b604051808215151515815260200191505060405180910390f35b34801561023957600080fd5b50610242610a66565b6040518082815260200191505060405180910390f35b34801561026457600080fd5b506102c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a70565b604051808215151515815260200191505060405180910390f35b3480156102e957600080fd5b506102f2610c22565b604051808260ff1660ff16815260200191505060405180910390f35b34801561031a57600080fd5b50610359600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c39565b604051808215151515815260200191505060405180910390f35b34801561037f57600080fd5b5061039e60048036038101908080359060200190929190505050610e70565b005b3480156103ac57600080fd5b506103b5611049565b6040518082815260200191505060405180910390f35b61042f600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061104f565b005b34801561043d57600080fd5b5061044661120e565b6040518082815260200191505060405180910390f35b34801561046857600080fd5b5061049d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611214565b6040518082815260200191505060405180910390f35b3480156104bf57600080fd5b506104c861125d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561051657600080fd5b5061051f611283565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561055f578082015181840152602081019050610544565b50505050905090810190601f16801561058c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105a657600080fd5b506105af611325565b6040518082815260200191505060405180910390f35b6105e36004803603810190808035906020019092919050505061132b565b005b3480156105f157600080fd5b50610630600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061153d565b604051808215151515815260200191505060405180910390f35b34801561065657600080fd5b50610695600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611774565b604051808215151515815260200191505060405180910390f35b3480156106bb57600080fd5b50610720600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061178b565b005b34801561072e57600080fd5b50610737611894565b60405180826000191660001916815260200191505060405180910390f35b34801561076157600080fd5b506107806004803603810190808035906020019092919050505061189a565b6040518082815260200191505060405180910390f35b3480156107a257600080fd5b506107c1600480360381019080803590602001909291905050506118d9565b6040518082815260200191505060405180910390f35b3480156107e357600080fd5b506108066004803603810190808035600019169060200190929190505050611918565b604051808215151515815260200191505060405180910390f35b34801561082c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611986565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561092f5780601f106109045761010080835404028352916020019161092f565b820191906000526020600020905b81548152906001019060200180831161091257829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561097657600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610afd57600080fd5b610b8c82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c17848484611a2e565b600190509392505050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610c7657600080fd5b610d0582600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008082111515610f0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d757374206275726e20616e20616d6f756e742067726561746572207468616e81526020017f207a65726f2e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81610f1933611214565b10151515610f8f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d757374206861766520656e6f75676820746f6b656e7320746f206275726e2e81525060200191505060405180910390fd5b610f98826118d9565b9050610fa43383611c6d565b610fb981600654611a0d90919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611005573d6000803e3d6000fd5b507fcec1bae6e024d929f2929f3478ce70f55f9c636c8ef7b5073a61d7c3a432451b8282604051808381526020018281526020019250505060405180910390a15050565b60075481565b600061105a8261189a565b90508034101515156110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6111043383611dfb565b61113133600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309183423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156111cd5780820151818401526020810190506111b2565b50505050905090810190601f1680156111fa5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b60085481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561131b5780601f106112f05761010080835404028352916020019161131b565b820191906000526020600020905b8154815290600101906020018083116112fe57829003601f168201915b5050505050905090565b60065481565b600080821115156113ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4d75737420707572636861736520616e20616d6f756e7420677265617465722081526020017f7468616e207a65726f2e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6113d38261189a565b9050803410151515611473576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61147d3383611dfb565b61149281600654611c4c90919063ffffffff16565b600681905550803411156114fa573373ffffffffffffffffffffffffffffffffffffffff166108fc6114cd8334611a0d90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156114f8573d6000803e3d6000fd5b505b7f8a9dcf4e150b1153011b29fec302d5be0c13e84fa8f56ab78587f778a32a90dd8282604051808381526020018281526020019250505060405180910390a15050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561157a57600080fd5b61160982600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000611781338484611a2e565b6001905092915050565b6117b833600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309182423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015611854578082015181840152602081019050611839565b50505050905090810190601f1680156118815780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b60095481565b60006118d26006546118c46118bf856118b1610a66565b611c4c90919063ffffffff16565b611f3b565b611a0d90919063ffffffff16565b9050919050565b60006119116119006118fb846118ed610a66565b611a0d90919063ffffffff16565b611f3b565b600654611a0d90919063ffffffff16565b9050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561197657600080fd5b8160098160001916905550919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080838311151515611a1f57600080fd5b82840390508091505092915050565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611a7c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611ab857600080fd5b611b0a81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b9f81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000808284019050838110151515611c6357600080fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611c9357600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611ce157600080fd5b611cf681600554611a0d90919063ffffffff16565b600581905550611d4e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611e2157600080fd5b611e3681600554611c4c90919063ffffffff16565b600581905550611e8e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000806000611f566001600754611c4c90919063ffffffff16565b9150601282611f63610c22565b60ff1602600a0a039050611fb0670de0b6b3a7640000611fa2600854611f9486878a0a611fb990919063ffffffff16565b611fb990919063ffffffff16565b611fb990919063ffffffff16565b92505050919050565b600080600083111515611fcb57600080fd5b8284811515611fd657fe5b04905080915050929150505600a165627a7a72305820f25a9884a790ace3f8477d714a0816955fa58e1a69bbf537cd62c1a8d78c74d60029", + "bytecode": "0x60806040523480156200001157600080fd5b50604051620021f0380380620021f0833981018060405281019080805190602001909291908051820192919060200180518201929190602001805190602001909291905050508282601260016103e884848482828282600090805190602001906200007e92919062000122565b5081600190805190602001906200009792919062000122565b5080600260006101000a81548160ff021916908360ff16021790555050505050505081600781905550806008819055505050505050836009816000191690555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050620001d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016557805160ff191683800117855562000196565b8280016001018555821562000196579182015b828111156200019557825182559160200191906001019062000178565b5b509050620001a59190620001a9565b5090565b620001ce91905b80821115620001ca576000816000905550600101620001b0565b5090565b90565b61200f80620001e16000396000f300608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610138578063095ea7b3146101c857806318160ddd1461022d57806323b872dd14610258578063313ce567146102dd578063395093511461030e57806342966c681461037357806352f6ee58146103a0578063621d8531146103cb5780636400be1d1461043157806370a082311461045c5780638da5cb5b146104b357806395d89b411461050a57806396365d441461059a578063a0712d68146105c5578063a457c2d7146105e5578063a9059cbb1461064a578063a9d989b4146106af578063b25ba02e14610722578063b9d3674314610755578063c544682b14610796578063cdf7f8e6146107d7578063dd62ed3e14610820575b600080fd5b34801561014457600080fd5b5061014d610897565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018d578082015181840152602081019050610172565b50505050905090810190601f1680156101ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d457600080fd5b50610213600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610939565b604051808215151515815260200191505060405180910390f35b34801561023957600080fd5b50610242610a66565b6040518082815260200191505060405180910390f35b34801561026457600080fd5b506102c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a70565b604051808215151515815260200191505060405180910390f35b3480156102e957600080fd5b506102f2610c22565b604051808260ff1660ff16815260200191505060405180910390f35b34801561031a57600080fd5b50610359600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c39565b604051808215151515815260200191505060405180910390f35b34801561037f57600080fd5b5061039e60048036038101908080359060200190929190505050610e70565b005b3480156103ac57600080fd5b506103b5611049565b6040518082815260200191505060405180910390f35b61042f600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061104f565b005b34801561043d57600080fd5b5061044661120e565b6040518082815260200191505060405180910390f35b34801561046857600080fd5b5061049d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611214565b6040518082815260200191505060405180910390f35b3480156104bf57600080fd5b506104c861125d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561051657600080fd5b5061051f611283565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561055f578082015181840152602081019050610544565b50505050905090810190601f16801561058c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105a657600080fd5b506105af611325565b6040518082815260200191505060405180910390f35b6105e36004803603810190808035906020019092919050505061132b565b005b3480156105f157600080fd5b50610630600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061153d565b604051808215151515815260200191505060405180910390f35b34801561065657600080fd5b50610695600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611774565b604051808215151515815260200191505060405180910390f35b3480156106bb57600080fd5b50610720600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061178b565b005b34801561072e57600080fd5b50610737611894565b60405180826000191660001916815260200191505060405180910390f35b34801561076157600080fd5b506107806004803603810190808035906020019092919050505061189a565b6040518082815260200191505060405180910390f35b3480156107a257600080fd5b506107c1600480360381019080803590602001909291905050506118d9565b6040518082815260200191505060405180910390f35b3480156107e357600080fd5b506108066004803603810190808035600019169060200190929190505050611918565b604051808215151515815260200191505060405180910390f35b34801561082c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611986565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561092f5780601f106109045761010080835404028352916020019161092f565b820191906000526020600020905b81548152906001019060200180831161091257829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561097657600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610afd57600080fd5b610b8c82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c17848484611a2e565b600190509392505050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610c7657600080fd5b610d0582600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008082111515610f0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d757374206275726e20616e20616d6f756e742067726561746572207468616e81526020017f207a65726f2e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81610f1933611214565b10151515610f8f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d757374206861766520656e6f75676820746f6b656e7320746f206275726e2e81525060200191505060405180910390fd5b610f98826118d9565b9050610fa43383611c6d565b610fb981600654611a0d90919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611005573d6000803e3d6000fd5b507fcec1bae6e024d929f2929f3478ce70f55f9c636c8ef7b5073a61d7c3a432451b8282604051808381526020018281526020019250505060405180910390a15050565b60075481565b600061105a8261189a565b90508034101515156110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6111043383611dfb565b61113133600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309183423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156111cd5780820151818401526020810190506111b2565b50505050905090810190601f1680156111fa5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b60085481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561131b5780601f106112f05761010080835404028352916020019161131b565b820191906000526020600020905b8154815290600101906020018083116112fe57829003601f168201915b5050505050905090565b60065481565b600080821115156113ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4d75737420707572636861736520616e20616d6f756e7420677265617465722081526020017f7468616e207a65726f2e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6113d38261189a565b9050803410151515611473576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61147d3383611dfb565b61149281600654611c4c90919063ffffffff16565b600681905550803411156114fa573373ffffffffffffffffffffffffffffffffffffffff166108fc6114cd8334611a0d90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156114f8573d6000803e3d6000fd5b505b7f8a9dcf4e150b1153011b29fec302d5be0c13e84fa8f56ab78587f778a32a90dd8282604051808381526020018281526020019250505060405180910390a15050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561157a57600080fd5b61160982600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000611781338484611a2e565b6001905092915050565b6117b833600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309182423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015611854578082015181840152602081019050611839565b50505050905090810190601f1680156118815780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b60095481565b60006118d26006546118c46118bf856118b1610a66565b611c4c90919063ffffffff16565b611f3b565b611a0d90919063ffffffff16565b9050919050565b60006119116119006118fb846118ed610a66565b611a0d90919063ffffffff16565b611f3b565b600654611a0d90919063ffffffff16565b9050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561197657600080fd5b8160098160001916905550919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080838311151515611a1f57600080fd5b82840390508091505092915050565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611a7c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611ab857600080fd5b611b0a81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b9f81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000808284019050838110151515611c6357600080fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611c9357600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611ce157600080fd5b611cf681600554611a0d90919063ffffffff16565b600581905550611d4e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611e2157600080fd5b611e3681600554611c4c90919063ffffffff16565b600581905550611e8e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000806000611f566001600754611c4c90919063ffffffff16565b9150601282611f63610c22565b60ff1602600a0a039050611fb0670de0b6b3a7640000611fa2600854611f9486878a0a611fb990919063ffffffff16565b611fb990919063ffffffff16565b611fb990919063ffffffff16565b92505050919050565b600080600083111515611fcb57600080fd5b8284811515611fd657fe5b04905080915050929150505600a165627a7a72305820885af079c3b4b1baa61690e56afe0c8267273deb7c1b3f044aee1fdeffe9798a0029", + "deployedBytecode": "0x608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610138578063095ea7b3146101c857806318160ddd1461022d57806323b872dd14610258578063313ce567146102dd578063395093511461030e57806342966c681461037357806352f6ee58146103a0578063621d8531146103cb5780636400be1d1461043157806370a082311461045c5780638da5cb5b146104b357806395d89b411461050a57806396365d441461059a578063a0712d68146105c5578063a457c2d7146105e5578063a9059cbb1461064a578063a9d989b4146106af578063b25ba02e14610722578063b9d3674314610755578063c544682b14610796578063cdf7f8e6146107d7578063dd62ed3e14610820575b600080fd5b34801561014457600080fd5b5061014d610897565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018d578082015181840152602081019050610172565b50505050905090810190601f1680156101ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d457600080fd5b50610213600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610939565b604051808215151515815260200191505060405180910390f35b34801561023957600080fd5b50610242610a66565b6040518082815260200191505060405180910390f35b34801561026457600080fd5b506102c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a70565b604051808215151515815260200191505060405180910390f35b3480156102e957600080fd5b506102f2610c22565b604051808260ff1660ff16815260200191505060405180910390f35b34801561031a57600080fd5b50610359600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c39565b604051808215151515815260200191505060405180910390f35b34801561037f57600080fd5b5061039e60048036038101908080359060200190929190505050610e70565b005b3480156103ac57600080fd5b506103b5611049565b6040518082815260200191505060405180910390f35b61042f600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061104f565b005b34801561043d57600080fd5b5061044661120e565b6040518082815260200191505060405180910390f35b34801561046857600080fd5b5061049d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611214565b6040518082815260200191505060405180910390f35b3480156104bf57600080fd5b506104c861125d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561051657600080fd5b5061051f611283565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561055f578082015181840152602081019050610544565b50505050905090810190601f16801561058c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105a657600080fd5b506105af611325565b6040518082815260200191505060405180910390f35b6105e36004803603810190808035906020019092919050505061132b565b005b3480156105f157600080fd5b50610630600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061153d565b604051808215151515815260200191505060405180910390f35b34801561065657600080fd5b50610695600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611774565b604051808215151515815260200191505060405180910390f35b3480156106bb57600080fd5b50610720600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061178b565b005b34801561072e57600080fd5b50610737611894565b60405180826000191660001916815260200191505060405180910390f35b34801561076157600080fd5b506107806004803603810190808035906020019092919050505061189a565b6040518082815260200191505060405180910390f35b3480156107a257600080fd5b506107c1600480360381019080803590602001909291905050506118d9565b6040518082815260200191505060405180910390f35b3480156107e357600080fd5b506108066004803603810190808035600019169060200190929190505050611918565b604051808215151515815260200191505060405180910390f35b34801561082c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611986565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561092f5780601f106109045761010080835404028352916020019161092f565b820191906000526020600020905b81548152906001019060200180831161091257829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561097657600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610afd57600080fd5b610b8c82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c17848484611a2e565b600190509392505050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610c7657600080fd5b610d0582600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008082111515610f0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d757374206275726e20616e20616d6f756e742067726561746572207468616e81526020017f207a65726f2e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81610f1933611214565b10151515610f8f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d757374206861766520656e6f75676820746f6b656e7320746f206275726e2e81525060200191505060405180910390fd5b610f98826118d9565b9050610fa43383611c6d565b610fb981600654611a0d90919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611005573d6000803e3d6000fd5b507fcec1bae6e024d929f2929f3478ce70f55f9c636c8ef7b5073a61d7c3a432451b8282604051808381526020018281526020019250505060405180910390a15050565b60075481565b600061105a8261189a565b90508034101515156110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6111043383611dfb565b61113133600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309183423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156111cd5780820151818401526020810190506111b2565b50505050905090810190601f1680156111fa5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b60085481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561131b5780601f106112f05761010080835404028352916020019161131b565b820191906000526020600020905b8154815290600101906020018083116112fe57829003601f168201915b5050505050905090565b60065481565b600080821115156113ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4d75737420707572636861736520616e20616d6f756e7420677265617465722081526020017f7468616e207a65726f2e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6113d38261189a565b9050803410151515611473576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61147d3383611dfb565b61149281600654611c4c90919063ffffffff16565b600681905550803411156114fa573373ffffffffffffffffffffffffffffffffffffffff166108fc6114cd8334611a0d90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156114f8573d6000803e3d6000fd5b505b7f8a9dcf4e150b1153011b29fec302d5be0c13e84fa8f56ab78587f778a32a90dd8282604051808381526020018281526020019250505060405180910390a15050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561157a57600080fd5b61160982600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000611781338484611a2e565b6001905092915050565b6117b833600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309182423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015611854578082015181840152602081019050611839565b50505050905090810190601f1680156118815780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b60095481565b60006118d26006546118c46118bf856118b1610a66565b611c4c90919063ffffffff16565b611f3b565b611a0d90919063ffffffff16565b9050919050565b60006119116119006118fb846118ed610a66565b611a0d90919063ffffffff16565b611f3b565b600654611a0d90919063ffffffff16565b9050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561197657600080fd5b8160098160001916905550919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080838311151515611a1f57600080fd5b82840390508091505092915050565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611a7c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611ab857600080fd5b611b0a81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b9f81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000808284019050838110151515611c6357600080fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611c9357600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611ce157600080fd5b611cf681600554611a0d90919063ffffffff16565b600581905550611d4e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611e2157600080fd5b611e3681600554611c4c90919063ffffffff16565b600581905550611e8e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000806000611f566001600754611c4c90919063ffffffff16565b9150601282611f63610c22565b60ff1602600a0a039050611fb0670de0b6b3a7640000611fa2600854611f9486878a0a611fb990919063ffffffff16565b611fb990919063ffffffff16565b611fb990919063ffffffff16565b92505050919050565b600080600083111515611fcb57600080fd5b8284811515611fd657fe5b04905080915050929150505600a165627a7a72305820885af079c3b4b1baa61690e56afe0c8267273deb7c1b3f044aee1fdeffe9798a0029", "sourceMap": "92:1153:2:-;;;273:288;8:9:-1;5:2;;;30:1;27;20:12;5:2;273:288:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;421:5;436:7;453:2;465:1;476:4;653::5;659:6;667:8;557:4:4;563:6;571:8;475:4:8;467:5;:12;;;;;;;;;;;;:::i;:::-;;495:6;485:7;:16;;;;;;;;;;;;:::i;:::-;;519:8;507:9;;:20;;;;;;;;;;;;;;;;;;398:134;;;455:147:4;;;718:9:5;707:8;:20;;;;752:13;737:12;:28;;;;485:287;;;;;524:6:2;516:5;:14;;;;;;;548:6;540:5;;:14;;;;;;;;;;;;;;;;;;273:288;;;;92:1153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", "deployedSourceMap": "92:1153:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;584:67:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;584:67:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;584:67:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2380:220:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2380:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;640:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;640:83:7;;;;;;;;;;;;;;;;;;;;;;;2872:288;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2872:288:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;842:74:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;842:74:8;;;;;;;;;;;;;;;;;;;;;;;;;;;3611:330:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3611:330:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1307:445:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1307:445:4;;;;;;;;;;;;;;;;;;;;;;;;;;130:23:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;130:23:5;;;;;;;;;;;;;;;;;;;;;;;567:363:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;159:27:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;159:27:5;;;;;;;;;;;;;;;;;;;;;;;920:98:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;920:98:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;242:20:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;242:20:2;;;;;;;;;;;;;;;;;;;;;;;;;;;705:71:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;705:71:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;705:71:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;318:26:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;318:26:4;;;;;;;;;;;;;;;;;;;;;;;762:539;;;;;;;;;;;;;;;;;;;;;;;;;;4397:340:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4397:340:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1637:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1637:127:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;936:162:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;936:162:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;216:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;216:20:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1193:153:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1193:153:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1352:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1352:155:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1104:139:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1104:139:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1335:150:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1335:150:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;584:67:8;620:6;641:5;634:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;584:67;:::o;2380:220:7:-;2445:4;2484:1;2465:21;;:7;:21;;;;2457:30;;;;;;;;2526:5;2494:8;:20;2503:10;2494:20;;;;;;;;;;;;;;;:29;2515:7;2494:29;;;;;;;;;;;;;;;:37;;;;2563:7;2542:36;;2551:10;2542:36;;;2572:5;2542:36;;;;;;;;;;;;;;;;;;2591:4;2584:11;;2380:220;;;;:::o;640:83::-;684:7;706:12;;699:19;;640:83;:::o;2872:288::-;2975:4;3006:8;:14;3015:4;3006:14;;;;;;;;;;;;;;;:26;3021:10;3006:26;;;;;;;;;;;;;;;;2997:5;:35;;2989:44;;;;;;;;3069:37;3100:5;3069:8;:14;3078:4;3069:14;;;;;;;;;;;;;;;:26;3084:10;3069:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;3040:8;:14;3049:4;3040:14;;;;;;;;;;;;;;;:26;3055:10;3040:26;;;;;;;;;;;;;;;:66;;;;3112:26;3122:4;3128:2;3132:5;3112:9;:26::i;:::-;3151:4;3144:11;;2872:288;;;;;:::o;842:74:8:-;882:5;902:9;;;;;;;;;;;895:16;;842:74;:::o;3611:330:7:-;3711:4;3752:1;3733:21;;:7;:21;;;;3725:30;;;;;;;;3802:45;3836:10;3802:8;:20;3811:10;3802:20;;;;;;;;;;;;;;;:29;3823:7;3802:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;3762:8;:20;3771:10;3762:20;;;;;;;;;;;;;;;:29;3783:7;3762:29;;;;;;;;;;;;;;;:86;;;;3880:7;3859:60;;3868:10;3859:60;;;3889:8;:20;3898:10;3889:20;;;;;;;;;;;;;;;:29;3910:7;3889:29;;;;;;;;;;;;;;;;3859:60;;;;;;;;;;;;;;;;;;3932:4;3925:11;;3611:330;;;;:::o;1307:445:4:-;1521:19;1377:1;1365:9;:13;1357:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1464:9;1439:21;1449:10;1439:9;:21::i;:::-;:34;;1431:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1543:24;1557:9;1543:13;:24::i;:::-;1521:46;;1577:28;1583:10;1595:9;1577:5;:28::i;:::-;1629;1645:11;1629;;:15;;:28;;;;:::i;:::-;1615:11;:42;;;;1667:10;:19;;:32;1687:11;1667:32;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1667:32:4;1715:30;1722:9;1733:11;1715:30;;;;;;;;;;;;;;;;;;;;;;;;1307:445;;:::o;130:23:5:-;;;;:::o;567:363:2:-;681:12;696:19;708:6;696:11;:19::i;:::-;681:34;;746:4;733:9;:17;;725:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;805:25;811:10;823:6;805:5;:25::i;:::-;840:36;850:10;862:5;;;;;;;;;;;869:6;840:9;:36::i;:::-;891:32;901:4;907:3;912:10;891:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;891:32:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;567:363;;;:::o;159:27:5:-;;;;:::o;920:98:7:-;975:7;997:9;:16;1007:5;997:16;;;;;;;;;;;;;;;;990:23;;920:98;;;:::o;242:20:2:-;;;;;;;;;;;;;:::o;705:71:8:-;743:6;764:7;757:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;705:71;:::o;318:26:4:-;;;;:::o;762:539::-;899:22;840:1;828:9;:13;820:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;924:22;936:9;924:11;:22::i;:::-;899:47;;977:14;964:9;:27;;956:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1046:28;1052:10;1064:9;1046:5;:28::i;:::-;1098:31;1114:14;1098:11;;:15;;:31;;;;:::i;:::-;1084:11;:45;;;;1155:14;1143:9;:26;1139:107;;;1185:10;:19;;:50;1205:29;1219:14;1205:9;:13;;:29;;;;:::i;:::-;1185:50;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1185:50:4;1139:107;1261:33;1268:9;1279:14;1261:33;;;;;;;;;;;;;;;;;;;;;;;;762:539;;:::o;4397:340:7:-;4502:4;4543:1;4524:21;;:7;:21;;;;4516:30;;;;;;;;4593:50;4627:15;4593:8;:20;4602:10;4593:20;;;;;;;;;;;;;;;:29;4614:7;4593:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;4553:8;:20;4562:10;4553:20;;;;;;;;;;;;;;;:29;4574:7;4553:29;;;;;;;;;;;;;;;:91;;;;4676:7;4655:60;;4664:10;4655:60;;;4685:8;:20;4694:10;4685:20;;;;;;;;;;;;;;;:29;4706:7;4685:29;;;;;;;;;;;;;;;;4655:60;;;;;;;;;;;;;;;;;;4728:4;4721:11;;4397:340;;;;:::o;1637:127::-;1698:4;1710:32;1720:10;1732:2;1736:5;1710:9;:32::i;:::-;1755:4;1748:11;;1637:127;;;;:::o;936:162:2:-;1008:36;1018:10;1030:5;;;;;;;;;;;1037:6;1008:9;:36::i;:::-;1059:32;1069:4;1075:3;1080:10;1059:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1059:32:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;936:162;;:::o;216:20::-;;;;:::o;1193:153:5:-;1253:7;1279:60;1327:11;;1279:43;1293:28;1311:9;1293:13;:11;:13::i;:::-;:17;;:28;;;;:::i;:::-;1279:13;:43::i;:::-;:47;;:60;;;;:::i;:::-;1272:67;;1193:153;;;:::o;1352:155::-;1414:7;1440:60;1456:43;1470:28;1488:9;1470:13;:11;:13::i;:::-;:17;;:28;;;;:::i;:::-;1456:13;:43::i;:::-;1440:11;;:15;;:60;;;;:::i;:::-;1433:67;;1352:155;;;:::o;1104:139:2:-;1164:4;1206:5;;;;;;;;;;;1192:19;;:10;:19;;;1184:28;;;;;;;;1230:6;1222:5;:14;;;;;;;1104:139;;;:::o;1335:150:7:-;1432:7;1456:8;:15;1465:5;1456:15;;;;;;;;;;;;;;;:24;1472:7;1456:24;;;;;;;;;;;;;;;;1449:31;;1335:150;;;;:::o;1078:131:6:-;1136:7;1172:9;1164:1;1159;:6;;1151:15;;;;;;;;1188:1;1184;:5;1172:17;;1203:1;1196:8;;1078:131;;;;;:::o;4937:277:7:-;5029:9;:15;5039:4;5029:15;;;;;;;;;;;;;;;;5020:5;:24;;5012:33;;;;;;;;5073:1;5059:16;;:2;:16;;;;5051:25;;;;;;;;5101:26;5121:5;5101:9;:15;5111:4;5101:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;5083:9;:15;5093:4;5083:15;;;;;;;;;;;;;;;:44;;;;5149:24;5167:5;5149:9;:13;5159:2;5149:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;5133:9;:13;5143:2;5133:13;;;;;;;;;;;;;;;:40;;;;5199:2;5184:25;;5193:4;5184:25;;;5203:5;5184:25;;;;;;;;;;;;;;;;;;4937:277;;;:::o;1272:131:6:-;1330:7;1345:9;1361:1;1357;:5;1345:17;;1381:1;1376;:6;;1368:15;;;;;;;;1397:1;1390:8;;1272:131;;;;;:::o;5988:278:7:-;6069:1;6058:7;:12;;;;6050:21;;;;;;;;6094:9;:18;6104:7;6094:18;;;;;;;;;;;;;;;;6085:5;:27;;6077:36;;;;;;;;6135:23;6152:5;6135:12;;:16;;:23;;;;:::i;:::-;6120:12;:38;;;;6185:29;6208:5;6185:9;:18;6195:7;6185:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;6164:9;:18;6174:7;6164:18;;;;;;;;;;;;;;;:50;;;;6251:1;6225:36;;6234:7;6225:36;;;6255:5;6225:36;;;;;;;;;;;;;;;;;;5988:278;;:::o;5541:235::-;5622:1;5611:7;:12;;;;5603:21;;;;;;;;5645:23;5662:5;5645:12;;:16;;:23;;;;:::i;:::-;5630:12;:38;;;;5695:29;5718:5;5695:9;:18;5705:7;5695:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;5674:9;:18;5684:7;5674:18;;;;;;;;;;;;;;;:50;;;;5756:7;5735:36;;5752:1;5735:36;;;5765:5;5735:36;;;;;;;;;;;;;;;;;;5541:235;;:::o;880:307:5:-;932:7;951:12;991;966:15;979:1;966:8;;:12;;:15;;;;:::i;:::-;951:30;;1052:2;1043:4;1021:10;:8;:10::i;:::-;1013:19;;:35;1006:2;:43;:48;991:63;;1127:53;1171:8;1127:39;1153:12;;1127:21;1143:4;1133;1128:1;:9;1127:15;;:21;;;;:::i;:::-;:25;;:39;;;;:::i;:::-;:43;;:53;;;;:::i;:::-;1108:72;;880:307;;;;;:::o;695:270:6:-;753:7;846:9;780:1;776;:5;768:14;;;;;;;;862:1;858;:5;;;;;;;;846:17;;959:1;952:8;;695:270;;;;;:::o", "source": "pragma solidity ^0.4.24;\n\nimport \"@convergent/arc/contracts/EthPolynomialCurvedToken.sol\";\n\ncontract PersonalEconomy is EthPolynomialCurvedToken {\n event Requested(string message, uint256 time, address who);\n\n bytes32 public mhash;\n address public owner;\n \n constructor(\n bytes32 _mhash,\n string _name,\n string _symbol,\n address _owner\n ) EthPolynomialCurvedToken(\n _name,\n _symbol,\n 18,\n 1,\n 1000\n )\n public\n {\n mhash = _mhash;\n owner = _owner;\n }\n\n function requestWithEth(\n string _msg,\n uint256 _price\n ) public\n payable\n {\n uint256 cost = priceToMint(_price);\n require(msg.value >= cost, \"Must send requisite amount to purchase.\");\n\n _mint(msg.sender, _price);\n _transfer(msg.sender, owner, _price);\n emit Requested(_msg, now, msg.sender);\n }\n\n function requestWithToken(string _msg, uint256 _price) public {\n _transfer(msg.sender, owner, _price);\n emit Requested(_msg, now, msg.sender);\n }\n\n function updateData(bytes32 _mhash)\n public returns (bool)\n {\n require(msg.sender == owner);\n mhash = _mhash;\n }\n}\n", - "sourcePath": "/home/volt/workspaces/convergentcx/Arena/contracts/PersonalEconomy.sol", + "sourcePath": "/home/achill/Arena_Master/Arena/contracts/PersonalEconomy.sol", "ast": { - "absolutePath": "/home/volt/workspaces/convergentcx/Arena/contracts/PersonalEconomy.sol", + "absolutePath": "/home/achill/Arena_Master/Arena/contracts/PersonalEconomy.sol", "exportedSymbols": { "PersonalEconomy": [ 233 @@ -2236,7 +2236,7 @@ "src": "0:1246:2" }, "legacyAST": { - "absolutePath": "/home/volt/workspaces/convergentcx/Arena/contracts/PersonalEconomy.sol", + "absolutePath": "/home/achill/Arena_Master/Arena/contracts/PersonalEconomy.sol", "exportedSymbols": { "PersonalEconomy": [ 233 @@ -3937,7 +3937,7 @@ }, "networks": {}, "schemaVersion": "3.0.0-beta.1", - "updatedAt": "2018-12-08T22:22:23.361Z", + "updatedAt": "2018-12-16T19:14:46.482Z", "devdoc": { "methods": { "allowance(address,address)": { diff --git a/src/build/contracts/PersonalEconomyFactory.json b/src/build/contracts/PersonalEconomyFactory.json index bbae683..c2f26cf 100644 --- a/src/build/contracts/PersonalEconomyFactory.json +++ b/src/build/contracts/PersonalEconomyFactory.json @@ -131,14 +131,14 @@ "signature": "0xe501fe3c" } ], - "bytecode": "0x608060405234801561001057600080fd5b50612950806100206000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f4f331614610067578063b7de9dae146100c2578063c1ad191a1461012f578063e501fe3c1461019b575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610298565b604051808215151515815260200191505060405180910390f35b3480156100ce57600080fd5b506100ed600480360381019080803590602001909291905050506102b8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013b57600080fd5b506101446102f6565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561018757808201518184015260208101905061016c565b505050509050019250505060405180910390f35b3480156101a757600080fd5b506102566004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610384565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006020528060005260406000206000915054906101000a900460ff1681565b6001818154811015156102c757fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600180548060200260200160405190810160405280929190818152602001828054801561037a57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610330575b5050505050905090565b600083838333610392610724565b80856000191660001916815260200180602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835286818151815260200191508051906020019080838360005b838110156104135780820151818401526020810190506103f8565b50505050905090810190601f1680156104405780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561047957808201518184015260208101905061045e565b50505050905090810190601f1680156104a65780820380516001836020036101000a031916815260200191505b509650505050505050604051809103906000f0801580156104cb573d6000803e3d6000fd5b5090506104d7816105cd565b3373ffffffffffffffffffffffffffffffffffffffff167ff238fcd2133237bc5ae0e1f42086a193f4fddae976468b0797a9260c8f292219824286604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561058a57808201518184015260208101905061056f565b50505050905090810190601f1680156105b75780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a29392505050565b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060018190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507f4fb057ad4a26ed17a57957fa69c306f11987596069b89521c511fc9a894e61613382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b6040516121f08061073583390190560060806040523480156200001157600080fd5b50604051620021f0380380620021f0833981018060405281019080805190602001909291908051820192919060200180518201929190602001805190602001909291905050508282601260016103e884848482828282600090805190602001906200007e92919062000122565b5081600190805190602001906200009792919062000122565b5080600260006101000a81548160ff021916908360ff16021790555050505050505081600781905550806008819055505050505050836009816000191690555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050620001d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016557805160ff191683800117855562000196565b8280016001018555821562000196579182015b828111156200019557825182559160200191906001019062000178565b5b509050620001a59190620001a9565b5090565b620001ce91905b80821115620001ca576000816000905550600101620001b0565b5090565b90565b61200f80620001e16000396000f300608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610138578063095ea7b3146101c857806318160ddd1461022d57806323b872dd14610258578063313ce567146102dd578063395093511461030e57806342966c681461037357806352f6ee58146103a0578063621d8531146103cb5780636400be1d1461043157806370a082311461045c5780638da5cb5b146104b357806395d89b411461050a57806396365d441461059a578063a0712d68146105c5578063a457c2d7146105e5578063a9059cbb1461064a578063a9d989b4146106af578063b25ba02e14610722578063b9d3674314610755578063c544682b14610796578063cdf7f8e6146107d7578063dd62ed3e14610820575b600080fd5b34801561014457600080fd5b5061014d610897565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018d578082015181840152602081019050610172565b50505050905090810190601f1680156101ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d457600080fd5b50610213600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610939565b604051808215151515815260200191505060405180910390f35b34801561023957600080fd5b50610242610a66565b6040518082815260200191505060405180910390f35b34801561026457600080fd5b506102c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a70565b604051808215151515815260200191505060405180910390f35b3480156102e957600080fd5b506102f2610c22565b604051808260ff1660ff16815260200191505060405180910390f35b34801561031a57600080fd5b50610359600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c39565b604051808215151515815260200191505060405180910390f35b34801561037f57600080fd5b5061039e60048036038101908080359060200190929190505050610e70565b005b3480156103ac57600080fd5b506103b5611049565b6040518082815260200191505060405180910390f35b61042f600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061104f565b005b34801561043d57600080fd5b5061044661120e565b6040518082815260200191505060405180910390f35b34801561046857600080fd5b5061049d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611214565b6040518082815260200191505060405180910390f35b3480156104bf57600080fd5b506104c861125d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561051657600080fd5b5061051f611283565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561055f578082015181840152602081019050610544565b50505050905090810190601f16801561058c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105a657600080fd5b506105af611325565b6040518082815260200191505060405180910390f35b6105e36004803603810190808035906020019092919050505061132b565b005b3480156105f157600080fd5b50610630600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061153d565b604051808215151515815260200191505060405180910390f35b34801561065657600080fd5b50610695600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611774565b604051808215151515815260200191505060405180910390f35b3480156106bb57600080fd5b50610720600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061178b565b005b34801561072e57600080fd5b50610737611894565b60405180826000191660001916815260200191505060405180910390f35b34801561076157600080fd5b506107806004803603810190808035906020019092919050505061189a565b6040518082815260200191505060405180910390f35b3480156107a257600080fd5b506107c1600480360381019080803590602001909291905050506118d9565b6040518082815260200191505060405180910390f35b3480156107e357600080fd5b506108066004803603810190808035600019169060200190929190505050611918565b604051808215151515815260200191505060405180910390f35b34801561082c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611986565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561092f5780601f106109045761010080835404028352916020019161092f565b820191906000526020600020905b81548152906001019060200180831161091257829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561097657600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610afd57600080fd5b610b8c82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c17848484611a2e565b600190509392505050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610c7657600080fd5b610d0582600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008082111515610f0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d757374206275726e20616e20616d6f756e742067726561746572207468616e81526020017f207a65726f2e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81610f1933611214565b10151515610f8f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d757374206861766520656e6f75676820746f6b656e7320746f206275726e2e81525060200191505060405180910390fd5b610f98826118d9565b9050610fa43383611c6d565b610fb981600654611a0d90919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611005573d6000803e3d6000fd5b507fcec1bae6e024d929f2929f3478ce70f55f9c636c8ef7b5073a61d7c3a432451b8282604051808381526020018281526020019250505060405180910390a15050565b60075481565b600061105a8261189a565b90508034101515156110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6111043383611dfb565b61113133600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309183423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156111cd5780820151818401526020810190506111b2565b50505050905090810190601f1680156111fa5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b60085481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561131b5780601f106112f05761010080835404028352916020019161131b565b820191906000526020600020905b8154815290600101906020018083116112fe57829003601f168201915b5050505050905090565b60065481565b600080821115156113ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4d75737420707572636861736520616e20616d6f756e7420677265617465722081526020017f7468616e207a65726f2e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6113d38261189a565b9050803410151515611473576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61147d3383611dfb565b61149281600654611c4c90919063ffffffff16565b600681905550803411156114fa573373ffffffffffffffffffffffffffffffffffffffff166108fc6114cd8334611a0d90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156114f8573d6000803e3d6000fd5b505b7f8a9dcf4e150b1153011b29fec302d5be0c13e84fa8f56ab78587f778a32a90dd8282604051808381526020018281526020019250505060405180910390a15050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561157a57600080fd5b61160982600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000611781338484611a2e565b6001905092915050565b6117b833600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309182423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015611854578082015181840152602081019050611839565b50505050905090810190601f1680156118815780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b60095481565b60006118d26006546118c46118bf856118b1610a66565b611c4c90919063ffffffff16565b611f3b565b611a0d90919063ffffffff16565b9050919050565b60006119116119006118fb846118ed610a66565b611a0d90919063ffffffff16565b611f3b565b600654611a0d90919063ffffffff16565b9050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561197657600080fd5b8160098160001916905550919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080838311151515611a1f57600080fd5b82840390508091505092915050565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611a7c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611ab857600080fd5b611b0a81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b9f81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000808284019050838110151515611c6357600080fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611c9357600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611ce157600080fd5b611cf681600554611a0d90919063ffffffff16565b600581905550611d4e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611e2157600080fd5b611e3681600554611c4c90919063ffffffff16565b600581905550611e8e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000806000611f566001600754611c4c90919063ffffffff16565b9150601282611f63610c22565b60ff1602600a0a039050611fb0670de0b6b3a7640000611fa2600854611f9486878a0a611fb990919063ffffffff16565b611fb990919063ffffffff16565b611fb990919063ffffffff16565b92505050919050565b600080600083111515611fcb57600080fd5b8284811515611fd657fe5b04905080915050929150505600a165627a7a72305820f25a9884a790ace3f8477d714a0816955fa58e1a69bbf537cd62c1a8d78c74d60029a165627a7a72305820fc455ba53731cf1c94c6c597b1ff6823bb4f68578961979c816c3e57349a1b770029", - "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f4f331614610067578063b7de9dae146100c2578063c1ad191a1461012f578063e501fe3c1461019b575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610298565b604051808215151515815260200191505060405180910390f35b3480156100ce57600080fd5b506100ed600480360381019080803590602001909291905050506102b8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013b57600080fd5b506101446102f6565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561018757808201518184015260208101905061016c565b505050509050019250505060405180910390f35b3480156101a757600080fd5b506102566004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610384565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006020528060005260406000206000915054906101000a900460ff1681565b6001818154811015156102c757fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600180548060200260200160405190810160405280929190818152602001828054801561037a57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610330575b5050505050905090565b600083838333610392610724565b80856000191660001916815260200180602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835286818151815260200191508051906020019080838360005b838110156104135780820151818401526020810190506103f8565b50505050905090810190601f1680156104405780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561047957808201518184015260208101905061045e565b50505050905090810190601f1680156104a65780820380516001836020036101000a031916815260200191505b509650505050505050604051809103906000f0801580156104cb573d6000803e3d6000fd5b5090506104d7816105cd565b3373ffffffffffffffffffffffffffffffffffffffff167ff238fcd2133237bc5ae0e1f42086a193f4fddae976468b0797a9260c8f292219824286604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561058a57808201518184015260208101905061056f565b50505050905090810190601f1680156105b75780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a29392505050565b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060018190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507f4fb057ad4a26ed17a57957fa69c306f11987596069b89521c511fc9a894e61613382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b6040516121f08061073583390190560060806040523480156200001157600080fd5b50604051620021f0380380620021f0833981018060405281019080805190602001909291908051820192919060200180518201929190602001805190602001909291905050508282601260016103e884848482828282600090805190602001906200007e92919062000122565b5081600190805190602001906200009792919062000122565b5080600260006101000a81548160ff021916908360ff16021790555050505050505081600781905550806008819055505050505050836009816000191690555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050620001d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016557805160ff191683800117855562000196565b8280016001018555821562000196579182015b828111156200019557825182559160200191906001019062000178565b5b509050620001a59190620001a9565b5090565b620001ce91905b80821115620001ca576000816000905550600101620001b0565b5090565b90565b61200f80620001e16000396000f300608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610138578063095ea7b3146101c857806318160ddd1461022d57806323b872dd14610258578063313ce567146102dd578063395093511461030e57806342966c681461037357806352f6ee58146103a0578063621d8531146103cb5780636400be1d1461043157806370a082311461045c5780638da5cb5b146104b357806395d89b411461050a57806396365d441461059a578063a0712d68146105c5578063a457c2d7146105e5578063a9059cbb1461064a578063a9d989b4146106af578063b25ba02e14610722578063b9d3674314610755578063c544682b14610796578063cdf7f8e6146107d7578063dd62ed3e14610820575b600080fd5b34801561014457600080fd5b5061014d610897565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018d578082015181840152602081019050610172565b50505050905090810190601f1680156101ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d457600080fd5b50610213600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610939565b604051808215151515815260200191505060405180910390f35b34801561023957600080fd5b50610242610a66565b6040518082815260200191505060405180910390f35b34801561026457600080fd5b506102c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a70565b604051808215151515815260200191505060405180910390f35b3480156102e957600080fd5b506102f2610c22565b604051808260ff1660ff16815260200191505060405180910390f35b34801561031a57600080fd5b50610359600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c39565b604051808215151515815260200191505060405180910390f35b34801561037f57600080fd5b5061039e60048036038101908080359060200190929190505050610e70565b005b3480156103ac57600080fd5b506103b5611049565b6040518082815260200191505060405180910390f35b61042f600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061104f565b005b34801561043d57600080fd5b5061044661120e565b6040518082815260200191505060405180910390f35b34801561046857600080fd5b5061049d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611214565b6040518082815260200191505060405180910390f35b3480156104bf57600080fd5b506104c861125d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561051657600080fd5b5061051f611283565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561055f578082015181840152602081019050610544565b50505050905090810190601f16801561058c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105a657600080fd5b506105af611325565b6040518082815260200191505060405180910390f35b6105e36004803603810190808035906020019092919050505061132b565b005b3480156105f157600080fd5b50610630600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061153d565b604051808215151515815260200191505060405180910390f35b34801561065657600080fd5b50610695600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611774565b604051808215151515815260200191505060405180910390f35b3480156106bb57600080fd5b50610720600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061178b565b005b34801561072e57600080fd5b50610737611894565b60405180826000191660001916815260200191505060405180910390f35b34801561076157600080fd5b506107806004803603810190808035906020019092919050505061189a565b6040518082815260200191505060405180910390f35b3480156107a257600080fd5b506107c1600480360381019080803590602001909291905050506118d9565b6040518082815260200191505060405180910390f35b3480156107e357600080fd5b506108066004803603810190808035600019169060200190929190505050611918565b604051808215151515815260200191505060405180910390f35b34801561082c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611986565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561092f5780601f106109045761010080835404028352916020019161092f565b820191906000526020600020905b81548152906001019060200180831161091257829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561097657600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610afd57600080fd5b610b8c82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c17848484611a2e565b600190509392505050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610c7657600080fd5b610d0582600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008082111515610f0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d757374206275726e20616e20616d6f756e742067726561746572207468616e81526020017f207a65726f2e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81610f1933611214565b10151515610f8f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d757374206861766520656e6f75676820746f6b656e7320746f206275726e2e81525060200191505060405180910390fd5b610f98826118d9565b9050610fa43383611c6d565b610fb981600654611a0d90919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611005573d6000803e3d6000fd5b507fcec1bae6e024d929f2929f3478ce70f55f9c636c8ef7b5073a61d7c3a432451b8282604051808381526020018281526020019250505060405180910390a15050565b60075481565b600061105a8261189a565b90508034101515156110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6111043383611dfb565b61113133600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309183423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156111cd5780820151818401526020810190506111b2565b50505050905090810190601f1680156111fa5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b60085481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561131b5780601f106112f05761010080835404028352916020019161131b565b820191906000526020600020905b8154815290600101906020018083116112fe57829003601f168201915b5050505050905090565b60065481565b600080821115156113ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4d75737420707572636861736520616e20616d6f756e7420677265617465722081526020017f7468616e207a65726f2e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6113d38261189a565b9050803410151515611473576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61147d3383611dfb565b61149281600654611c4c90919063ffffffff16565b600681905550803411156114fa573373ffffffffffffffffffffffffffffffffffffffff166108fc6114cd8334611a0d90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156114f8573d6000803e3d6000fd5b505b7f8a9dcf4e150b1153011b29fec302d5be0c13e84fa8f56ab78587f778a32a90dd8282604051808381526020018281526020019250505060405180910390a15050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561157a57600080fd5b61160982600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000611781338484611a2e565b6001905092915050565b6117b833600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309182423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015611854578082015181840152602081019050611839565b50505050905090810190601f1680156118815780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b60095481565b60006118d26006546118c46118bf856118b1610a66565b611c4c90919063ffffffff16565b611f3b565b611a0d90919063ffffffff16565b9050919050565b60006119116119006118fb846118ed610a66565b611a0d90919063ffffffff16565b611f3b565b600654611a0d90919063ffffffff16565b9050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561197657600080fd5b8160098160001916905550919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080838311151515611a1f57600080fd5b82840390508091505092915050565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611a7c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611ab857600080fd5b611b0a81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b9f81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000808284019050838110151515611c6357600080fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611c9357600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611ce157600080fd5b611cf681600554611a0d90919063ffffffff16565b600581905550611d4e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611e2157600080fd5b611e3681600554611c4c90919063ffffffff16565b600581905550611e8e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000806000611f566001600754611c4c90919063ffffffff16565b9150601282611f63610c22565b60ff1602600a0a039050611fb0670de0b6b3a7640000611fa2600854611f9486878a0a611fb990919063ffffffff16565b611fb990919063ffffffff16565b611fb990919063ffffffff16565b92505050919050565b600080600083111515611fcb57600080fd5b8284811515611fd657fe5b04905080915050929150505600a165627a7a72305820f25a9884a790ace3f8477d714a0816955fa58e1a69bbf537cd62c1a8d78c74d60029a165627a7a72305820fc455ba53731cf1c94c6c597b1ff6823bb4f68578961979c816c3e57349a1b770029", + "bytecode": "0x608060405234801561001057600080fd5b50612950806100206000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f4f331614610067578063b7de9dae146100c2578063c1ad191a1461012f578063e501fe3c1461019b575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610298565b604051808215151515815260200191505060405180910390f35b3480156100ce57600080fd5b506100ed600480360381019080803590602001909291905050506102b8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013b57600080fd5b506101446102f6565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561018757808201518184015260208101905061016c565b505050509050019250505060405180910390f35b3480156101a757600080fd5b506102566004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610384565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006020528060005260406000206000915054906101000a900460ff1681565b6001818154811015156102c757fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600180548060200260200160405190810160405280929190818152602001828054801561037a57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610330575b5050505050905090565b600083838333610392610724565b80856000191660001916815260200180602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835286818151815260200191508051906020019080838360005b838110156104135780820151818401526020810190506103f8565b50505050905090810190601f1680156104405780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561047957808201518184015260208101905061045e565b50505050905090810190601f1680156104a65780820380516001836020036101000a031916815260200191505b509650505050505050604051809103906000f0801580156104cb573d6000803e3d6000fd5b5090506104d7816105cd565b3373ffffffffffffffffffffffffffffffffffffffff167ff238fcd2133237bc5ae0e1f42086a193f4fddae976468b0797a9260c8f292219824286604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561058a57808201518184015260208101905061056f565b50505050905090810190601f1680156105b75780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a29392505050565b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060018190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507f4fb057ad4a26ed17a57957fa69c306f11987596069b89521c511fc9a894e61613382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b6040516121f08061073583390190560060806040523480156200001157600080fd5b50604051620021f0380380620021f0833981018060405281019080805190602001909291908051820192919060200180518201929190602001805190602001909291905050508282601260016103e884848482828282600090805190602001906200007e92919062000122565b5081600190805190602001906200009792919062000122565b5080600260006101000a81548160ff021916908360ff16021790555050505050505081600781905550806008819055505050505050836009816000191690555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050620001d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016557805160ff191683800117855562000196565b8280016001018555821562000196579182015b828111156200019557825182559160200191906001019062000178565b5b509050620001a59190620001a9565b5090565b620001ce91905b80821115620001ca576000816000905550600101620001b0565b5090565b90565b61200f80620001e16000396000f300608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610138578063095ea7b3146101c857806318160ddd1461022d57806323b872dd14610258578063313ce567146102dd578063395093511461030e57806342966c681461037357806352f6ee58146103a0578063621d8531146103cb5780636400be1d1461043157806370a082311461045c5780638da5cb5b146104b357806395d89b411461050a57806396365d441461059a578063a0712d68146105c5578063a457c2d7146105e5578063a9059cbb1461064a578063a9d989b4146106af578063b25ba02e14610722578063b9d3674314610755578063c544682b14610796578063cdf7f8e6146107d7578063dd62ed3e14610820575b600080fd5b34801561014457600080fd5b5061014d610897565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018d578082015181840152602081019050610172565b50505050905090810190601f1680156101ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d457600080fd5b50610213600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610939565b604051808215151515815260200191505060405180910390f35b34801561023957600080fd5b50610242610a66565b6040518082815260200191505060405180910390f35b34801561026457600080fd5b506102c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a70565b604051808215151515815260200191505060405180910390f35b3480156102e957600080fd5b506102f2610c22565b604051808260ff1660ff16815260200191505060405180910390f35b34801561031a57600080fd5b50610359600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c39565b604051808215151515815260200191505060405180910390f35b34801561037f57600080fd5b5061039e60048036038101908080359060200190929190505050610e70565b005b3480156103ac57600080fd5b506103b5611049565b6040518082815260200191505060405180910390f35b61042f600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061104f565b005b34801561043d57600080fd5b5061044661120e565b6040518082815260200191505060405180910390f35b34801561046857600080fd5b5061049d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611214565b6040518082815260200191505060405180910390f35b3480156104bf57600080fd5b506104c861125d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561051657600080fd5b5061051f611283565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561055f578082015181840152602081019050610544565b50505050905090810190601f16801561058c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105a657600080fd5b506105af611325565b6040518082815260200191505060405180910390f35b6105e36004803603810190808035906020019092919050505061132b565b005b3480156105f157600080fd5b50610630600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061153d565b604051808215151515815260200191505060405180910390f35b34801561065657600080fd5b50610695600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611774565b604051808215151515815260200191505060405180910390f35b3480156106bb57600080fd5b50610720600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061178b565b005b34801561072e57600080fd5b50610737611894565b60405180826000191660001916815260200191505060405180910390f35b34801561076157600080fd5b506107806004803603810190808035906020019092919050505061189a565b6040518082815260200191505060405180910390f35b3480156107a257600080fd5b506107c1600480360381019080803590602001909291905050506118d9565b6040518082815260200191505060405180910390f35b3480156107e357600080fd5b506108066004803603810190808035600019169060200190929190505050611918565b604051808215151515815260200191505060405180910390f35b34801561082c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611986565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561092f5780601f106109045761010080835404028352916020019161092f565b820191906000526020600020905b81548152906001019060200180831161091257829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561097657600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610afd57600080fd5b610b8c82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c17848484611a2e565b600190509392505050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610c7657600080fd5b610d0582600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008082111515610f0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d757374206275726e20616e20616d6f756e742067726561746572207468616e81526020017f207a65726f2e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81610f1933611214565b10151515610f8f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d757374206861766520656e6f75676820746f6b656e7320746f206275726e2e81525060200191505060405180910390fd5b610f98826118d9565b9050610fa43383611c6d565b610fb981600654611a0d90919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611005573d6000803e3d6000fd5b507fcec1bae6e024d929f2929f3478ce70f55f9c636c8ef7b5073a61d7c3a432451b8282604051808381526020018281526020019250505060405180910390a15050565b60075481565b600061105a8261189a565b90508034101515156110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6111043383611dfb565b61113133600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309183423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156111cd5780820151818401526020810190506111b2565b50505050905090810190601f1680156111fa5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b60085481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561131b5780601f106112f05761010080835404028352916020019161131b565b820191906000526020600020905b8154815290600101906020018083116112fe57829003601f168201915b5050505050905090565b60065481565b600080821115156113ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4d75737420707572636861736520616e20616d6f756e7420677265617465722081526020017f7468616e207a65726f2e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6113d38261189a565b9050803410151515611473576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61147d3383611dfb565b61149281600654611c4c90919063ffffffff16565b600681905550803411156114fa573373ffffffffffffffffffffffffffffffffffffffff166108fc6114cd8334611a0d90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156114f8573d6000803e3d6000fd5b505b7f8a9dcf4e150b1153011b29fec302d5be0c13e84fa8f56ab78587f778a32a90dd8282604051808381526020018281526020019250505060405180910390a15050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561157a57600080fd5b61160982600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000611781338484611a2e565b6001905092915050565b6117b833600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309182423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015611854578082015181840152602081019050611839565b50505050905090810190601f1680156118815780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b60095481565b60006118d26006546118c46118bf856118b1610a66565b611c4c90919063ffffffff16565b611f3b565b611a0d90919063ffffffff16565b9050919050565b60006119116119006118fb846118ed610a66565b611a0d90919063ffffffff16565b611f3b565b600654611a0d90919063ffffffff16565b9050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561197657600080fd5b8160098160001916905550919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080838311151515611a1f57600080fd5b82840390508091505092915050565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611a7c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611ab857600080fd5b611b0a81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b9f81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000808284019050838110151515611c6357600080fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611c9357600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611ce157600080fd5b611cf681600554611a0d90919063ffffffff16565b600581905550611d4e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611e2157600080fd5b611e3681600554611c4c90919063ffffffff16565b600581905550611e8e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000806000611f566001600754611c4c90919063ffffffff16565b9150601282611f63610c22565b60ff1602600a0a039050611fb0670de0b6b3a7640000611fa2600854611f9486878a0a611fb990919063ffffffff16565b611fb990919063ffffffff16565b611fb990919063ffffffff16565b92505050919050565b600080600083111515611fcb57600080fd5b8284811515611fd657fe5b04905080915050929150505600a165627a7a72305820885af079c3b4b1baa61690e56afe0c8267273deb7c1b3f044aee1fdeffe9798a0029a165627a7a72305820573f489da914933ff1d8a512d99615f580772241592da444a05eac8080f5835e0029", + "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f4f331614610067578063b7de9dae146100c2578063c1ad191a1461012f578063e501fe3c1461019b575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610298565b604051808215151515815260200191505060405180910390f35b3480156100ce57600080fd5b506100ed600480360381019080803590602001909291905050506102b8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013b57600080fd5b506101446102f6565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561018757808201518184015260208101905061016c565b505050509050019250505060405180910390f35b3480156101a757600080fd5b506102566004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610384565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006020528060005260406000206000915054906101000a900460ff1681565b6001818154811015156102c757fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600180548060200260200160405190810160405280929190818152602001828054801561037a57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610330575b5050505050905090565b600083838333610392610724565b80856000191660001916815260200180602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835286818151815260200191508051906020019080838360005b838110156104135780820151818401526020810190506103f8565b50505050905090810190601f1680156104405780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561047957808201518184015260208101905061045e565b50505050905090810190601f1680156104a65780820380516001836020036101000a031916815260200191505b509650505050505050604051809103906000f0801580156104cb573d6000803e3d6000fd5b5090506104d7816105cd565b3373ffffffffffffffffffffffffffffffffffffffff167ff238fcd2133237bc5ae0e1f42086a193f4fddae976468b0797a9260c8f292219824286604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561058a57808201518184015260208101905061056f565b50505050905090810190601f1680156105b75780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a29392505050565b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060018190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507f4fb057ad4a26ed17a57957fa69c306f11987596069b89521c511fc9a894e61613382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b6040516121f08061073583390190560060806040523480156200001157600080fd5b50604051620021f0380380620021f0833981018060405281019080805190602001909291908051820192919060200180518201929190602001805190602001909291905050508282601260016103e884848482828282600090805190602001906200007e92919062000122565b5081600190805190602001906200009792919062000122565b5080600260006101000a81548160ff021916908360ff16021790555050505050505081600781905550806008819055505050505050836009816000191690555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050620001d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016557805160ff191683800117855562000196565b8280016001018555821562000196579182015b828111156200019557825182559160200191906001019062000178565b5b509050620001a59190620001a9565b5090565b620001ce91905b80821115620001ca576000816000905550600101620001b0565b5090565b90565b61200f80620001e16000396000f300608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610138578063095ea7b3146101c857806318160ddd1461022d57806323b872dd14610258578063313ce567146102dd578063395093511461030e57806342966c681461037357806352f6ee58146103a0578063621d8531146103cb5780636400be1d1461043157806370a082311461045c5780638da5cb5b146104b357806395d89b411461050a57806396365d441461059a578063a0712d68146105c5578063a457c2d7146105e5578063a9059cbb1461064a578063a9d989b4146106af578063b25ba02e14610722578063b9d3674314610755578063c544682b14610796578063cdf7f8e6146107d7578063dd62ed3e14610820575b600080fd5b34801561014457600080fd5b5061014d610897565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018d578082015181840152602081019050610172565b50505050905090810190601f1680156101ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d457600080fd5b50610213600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610939565b604051808215151515815260200191505060405180910390f35b34801561023957600080fd5b50610242610a66565b6040518082815260200191505060405180910390f35b34801561026457600080fd5b506102c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a70565b604051808215151515815260200191505060405180910390f35b3480156102e957600080fd5b506102f2610c22565b604051808260ff1660ff16815260200191505060405180910390f35b34801561031a57600080fd5b50610359600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c39565b604051808215151515815260200191505060405180910390f35b34801561037f57600080fd5b5061039e60048036038101908080359060200190929190505050610e70565b005b3480156103ac57600080fd5b506103b5611049565b6040518082815260200191505060405180910390f35b61042f600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061104f565b005b34801561043d57600080fd5b5061044661120e565b6040518082815260200191505060405180910390f35b34801561046857600080fd5b5061049d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611214565b6040518082815260200191505060405180910390f35b3480156104bf57600080fd5b506104c861125d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561051657600080fd5b5061051f611283565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561055f578082015181840152602081019050610544565b50505050905090810190601f16801561058c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105a657600080fd5b506105af611325565b6040518082815260200191505060405180910390f35b6105e36004803603810190808035906020019092919050505061132b565b005b3480156105f157600080fd5b50610630600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061153d565b604051808215151515815260200191505060405180910390f35b34801561065657600080fd5b50610695600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611774565b604051808215151515815260200191505060405180910390f35b3480156106bb57600080fd5b50610720600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061178b565b005b34801561072e57600080fd5b50610737611894565b60405180826000191660001916815260200191505060405180910390f35b34801561076157600080fd5b506107806004803603810190808035906020019092919050505061189a565b6040518082815260200191505060405180910390f35b3480156107a257600080fd5b506107c1600480360381019080803590602001909291905050506118d9565b6040518082815260200191505060405180910390f35b3480156107e357600080fd5b506108066004803603810190808035600019169060200190929190505050611918565b604051808215151515815260200191505060405180910390f35b34801561082c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611986565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561092f5780601f106109045761010080835404028352916020019161092f565b820191906000526020600020905b81548152906001019060200180831161091257829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561097657600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610afd57600080fd5b610b8c82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c17848484611a2e565b600190509392505050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610c7657600080fd5b610d0582600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008082111515610f0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d757374206275726e20616e20616d6f756e742067726561746572207468616e81526020017f207a65726f2e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81610f1933611214565b10151515610f8f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d757374206861766520656e6f75676820746f6b656e7320746f206275726e2e81525060200191505060405180910390fd5b610f98826118d9565b9050610fa43383611c6d565b610fb981600654611a0d90919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611005573d6000803e3d6000fd5b507fcec1bae6e024d929f2929f3478ce70f55f9c636c8ef7b5073a61d7c3a432451b8282604051808381526020018281526020019250505060405180910390a15050565b60075481565b600061105a8261189a565b90508034101515156110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6111043383611dfb565b61113133600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309183423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156111cd5780820151818401526020810190506111b2565b50505050905090810190601f1680156111fa5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b60085481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561131b5780601f106112f05761010080835404028352916020019161131b565b820191906000526020600020905b8154815290600101906020018083116112fe57829003601f168201915b5050505050905090565b60065481565b600080821115156113ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4d75737420707572636861736520616e20616d6f756e7420677265617465722081526020017f7468616e207a65726f2e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6113d38261189a565b9050803410151515611473576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61147d3383611dfb565b61149281600654611c4c90919063ffffffff16565b600681905550803411156114fa573373ffffffffffffffffffffffffffffffffffffffff166108fc6114cd8334611a0d90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156114f8573d6000803e3d6000fd5b505b7f8a9dcf4e150b1153011b29fec302d5be0c13e84fa8f56ab78587f778a32a90dd8282604051808381526020018281526020019250505060405180910390a15050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561157a57600080fd5b61160982600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000611781338484611a2e565b6001905092915050565b6117b833600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309182423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015611854578082015181840152602081019050611839565b50505050905090810190601f1680156118815780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b60095481565b60006118d26006546118c46118bf856118b1610a66565b611c4c90919063ffffffff16565b611f3b565b611a0d90919063ffffffff16565b9050919050565b60006119116119006118fb846118ed610a66565b611a0d90919063ffffffff16565b611f3b565b600654611a0d90919063ffffffff16565b9050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561197657600080fd5b8160098160001916905550919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080838311151515611a1f57600080fd5b82840390508091505092915050565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611a7c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611ab857600080fd5b611b0a81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b9f81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000808284019050838110151515611c6357600080fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611c9357600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611ce157600080fd5b611cf681600554611a0d90919063ffffffff16565b600581905550611d4e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611e2157600080fd5b611e3681600554611c4c90919063ffffffff16565b600581905550611e8e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000806000611f566001600754611c4c90919063ffffffff16565b9150601282611f63610c22565b60ff1602600a0a039050611fb0670de0b6b3a7640000611fa2600854611f9486878a0a611fb990919063ffffffff16565b611fb990919063ffffffff16565b611fb990919063ffffffff16565b92505050919050565b600080600083111515611fcb57600080fd5b8284811515611fd657fe5b04905080915050929150505600a165627a7a72305820885af079c3b4b1baa61690e56afe0c8267273deb7c1b3f044aee1fdeffe9798a0029a165627a7a72305820573f489da914933ff1d8a512d99615f580772241592da444a05eac8080f5835e0029", "sourceMap": "83:686:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;83:686:3;;;;;;;", "deployedSourceMap": "83:686:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;184:47:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;184:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;237:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;237:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;350:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;350:99:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;350:99:0;;;;;;;;;;;;;;;;;459:308:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;459:308:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;184:47:0;;;;;;;;;;;;;;;;;;;;;;:::o;237:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;350:99::-;401:9;428:14;421:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;350:99;:::o;459:308:3:-;553:20;624:6;632:5;639:7;648:10;604:55;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;604:55:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;604:55:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;604:55:3;589:70;;678:22;687:12;678:8;:22::i;:::-;737:10;715:45;;;723:12;749:3;754:5;715:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;715:45:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;459:308;;;;;:::o;612:223:0:-;717:4;684:15;:30;700:13;684:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;731:14;751:13;731:34;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;731:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;780:48;802:10;814:13;780:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;612:223;:::o;83:686:3:-;;;;;;;;;;:::o", "source": "pragma solidity ^0.4.24;\n\nimport \"./Factory.sol\";\nimport \"./PersonalEconomy.sol\";\n\ncontract PersonalEconomyFactory is Factory {\n\n event Created(address token_address, address indexed owner_address, uint256 time, string name);\n\n /*\n * Public functions\n */\n /// @dev Allows verified creation of custom token.\n /// @param _name String for token name.\n /// @param _symbol String for token symbol.\n /// @return Returns token address.\n function create(bytes32 _mhash, string _name, string _symbol)\n public\n returns (address tokenAddress)\n {\n tokenAddress = new PersonalEconomy(_mhash, _name, _symbol, msg.sender);\n \n register(tokenAddress);\n emit Created(tokenAddress, msg.sender, now, _name);\n }\n}\n", - "sourcePath": "/home/volt/workspaces/convergentcx/Arena/contracts/PersonalEconomyFactory.sol", + "sourcePath": "/home/achill/Arena_Master/Arena/contracts/PersonalEconomyFactory.sol", "ast": { - "absolutePath": "/home/volt/workspaces/convergentcx/Arena/contracts/PersonalEconomyFactory.sol", + "absolutePath": "/home/achill/Arena_Master/Arena/contracts/PersonalEconomyFactory.sol", "exportedSymbols": { "PersonalEconomyFactory": [ 285 @@ -159,7 +159,7 @@ "src": "0:24:3" }, { - "absolutePath": "/home/volt/workspaces/convergentcx/Arena/contracts/Factory.sol", + "absolutePath": "/home/achill/Arena_Master/Arena/contracts/Factory.sol", "file": "./Factory.sol", "id": 236, "nodeType": "ImportDirective", @@ -170,7 +170,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/volt/workspaces/convergentcx/Arena/contracts/PersonalEconomy.sol", + "absolutePath": "/home/achill/Arena_Master/Arena/contracts/PersonalEconomy.sol", "file": "./PersonalEconomy.sol", "id": 237, "nodeType": "ImportDirective", @@ -825,7 +825,7 @@ "src": "0:770:3" }, "legacyAST": { - "absolutePath": "/home/volt/workspaces/convergentcx/Arena/contracts/PersonalEconomyFactory.sol", + "absolutePath": "/home/achill/Arena_Master/Arena/contracts/PersonalEconomyFactory.sol", "exportedSymbols": { "PersonalEconomyFactory": [ 285 @@ -846,7 +846,7 @@ "src": "0:24:3" }, { - "absolutePath": "/home/volt/workspaces/convergentcx/Arena/contracts/Factory.sol", + "absolutePath": "/home/achill/Arena_Master/Arena/contracts/Factory.sol", "file": "./Factory.sol", "id": 236, "nodeType": "ImportDirective", @@ -857,7 +857,7 @@ "unitAlias": "" }, { - "absolutePath": "/home/volt/workspaces/convergentcx/Arena/contracts/PersonalEconomy.sol", + "absolutePath": "/home/achill/Arena_Master/Arena/contracts/PersonalEconomy.sol", "file": "./PersonalEconomy.sol", "id": 237, "nodeType": "ImportDirective", @@ -1516,21 +1516,15 @@ "version": "0.4.25+commit.59dbf8f1.Emscripten.clang" }, "networks": { - "4": { + "1544898413424": { "events": {}, "links": {}, - "address": "0xD3f6603fEc53a3175803F5ac99363aA6D3c528Df", - "transactionHash": "0x9be52eb6019c5636bf8522e656af4b4ba8ba169273a6a5bf55880a00ad8703c1" - }, - "1544307662770": { - "events": {}, - "links": {}, - "address": "0xE4b47C47F8438C45790049629E0d2B22b2B55CC3", - "transactionHash": "0xd02d9275f530e6cb8e1384953871a3ccc8ad8a1f326dfe0b7f427596c4bb7b06" + "address": "0x32824CF8C6f2Ed58A3584379D34e5c2f0e4525ba", + "transactionHash": "0x1eed1ce9d8d1ffa470360a7f329da03394cac417996e4d0b773f99b84a2883fc" } }, "schemaVersion": "3.0.0-beta.1", - "updatedAt": "2018-12-08T23:20:59.934Z", + "updatedAt": "2018-12-16T19:14:52.066Z", "devdoc": { "methods": { "create(bytes32,string,string)": { diff --git a/src/build/contracts/SafeMath.json b/src/build/contracts/SafeMath.json index a9395ab..9631929 100644 --- a/src/build/contracts/SafeMath.json +++ b/src/build/contracts/SafeMath.json @@ -3295,7 +3295,7 @@ }, "networks": {}, "schemaVersion": "3.0.0-beta.1", - "updatedAt": "2018-12-08T22:22:23.364Z", + "updatedAt": "2018-12-16T19:14:46.485Z", "devdoc": { "methods": {}, "title": "SafeMath" diff --git a/src/pages/Landing/index.jsx b/src/pages/Landing/index.jsx index 1465b7b..fa23380 100644 --- a/src/pages/Landing/index.jsx +++ b/src/pages/Landing/index.jsx @@ -2,7 +2,7 @@ import React from 'react'; import { NavLink } from 'react-router-dom'; import TextLoop from 'react-text-loop'; -import { Button, Typography } from '@material-ui/core'; +import { Button, Typography, Tooltip } from '@material-ui/core'; const heroStyle = { backgroundSize: 'cover', @@ -34,17 +34,27 @@ const Hero = () => (
- + - +    +
+ + Check out the{' '} + + {' '} + Rinkeby testnet version{' '} + {' '} + of this dapp. + +
); diff --git a/yarn.lock b/yarn.lock index 20f6116..8a52c41 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1597,7 +1597,7 @@ async-eventemitter@^0.2.2, async-eventemitter@^0.2.4: dependencies: async "^2.4.0" -"async-eventemitter@github:ahultgren/async-eventemitter#fa06e39e56786ba541c180061dbf2c0a5bbf951c": +async-eventemitter@ahultgren/async-eventemitter#fa06e39e56786ba541c180061dbf2c0a5bbf951c: version "0.2.3" resolved "https://codeload.github.com/ahultgren/async-eventemitter/tar.gz/fa06e39e56786ba541c180061dbf2c0a5bbf951c" dependencies: From 710695dea360831b1107d7932a0a40f99c40e816 Mon Sep 17 00:00:00 2001 From: acrdlph Date: Sun, 16 Dec 2018 20:56:56 +0000 Subject: [PATCH 2/4] using hashrouter --- src/index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/index.js b/src/index.js index 8e6e4ed..d1a9b2a 100644 --- a/src/index.js +++ b/src/index.js @@ -1,7 +1,7 @@ /* eslint-disable */ import React from 'react'; import ReactDOM from 'react-dom'; -import { BrowserRouter } from 'react-router-dom'; +import { HashRouter } from 'react-router-dom'; /// Drizzle import { Drizzle, generateStore } from 'drizzle'; @@ -26,9 +26,9 @@ const drizzle = new Drizzle(options, drizzleStore); ReactDOM.render( - + - + , document.getElementById('root') ); From f55a635d7e8c94cf8183f2a61b1a55326dc33ae7 Mon Sep 17 00:00:00 2001 From: Logan Saether Date: Sun, 16 Dec 2018 19:48:57 -0700 Subject: [PATCH 3/4] changes --- contracts/PersonalEconomy.sol | 45 +- package.json | 2 +- src/build/contracts/ERC20.json | 4752 +++++------ src/build/contracts/ERC20Detailed.json | 875 +- .../contracts/EthPolynomialCurvedToken.json | 3930 --------- src/build/contracts/Factory.json | 16 +- src/build/contracts/IERC20.json | 686 +- src/build/contracts/Initializable.json | 1454 ++++ src/build/contracts/Migrations.json | 32 +- src/build/contracts/Ownable.json | 2836 +++++++ src/build/contracts/PersonalEconomy.json | 2667 +++--- .../contracts/PersonalEconomyFactory.json | 364 +- src/build/contracts/SafeMath.json | 1342 ++-- src/build/contracts/SpreadEther.json | 7154 +++++++++++++++++ ...CurvedToken.json => WithEtherReserve.json} | 3872 +++++---- .../PriceChart/PriceChart.jsx | 4 +- .../Dashboard/DashboardInterface/index.jsx | 2 +- src/components/Profile/BuyAndSellButtons.jsx | 8 +- src/components/Profile/ServiceDetails.jsx | 2 +- src/pages/Landing/index.jsx | 2 +- src/pages/Leaderboard/index.jsx | 4 +- src/pages/Profile/index.jsx | 21 +- src/util/index.js | 2 +- yarn.lock | 243 +- 24 files changed, 19729 insertions(+), 10586 deletions(-) delete mode 100644 src/build/contracts/EthPolynomialCurvedToken.json create mode 100644 src/build/contracts/Initializable.json create mode 100644 src/build/contracts/Ownable.json create mode 100644 src/build/contracts/SpreadEther.json rename src/build/contracts/{EthBondingCurvedToken.json => WithEtherReserve.json} (67%) diff --git a/contracts/PersonalEconomy.sol b/contracts/PersonalEconomy.sol index 2b17d33..beff361 100644 --- a/contracts/PersonalEconomy.sol +++ b/contracts/PersonalEconomy.sol @@ -1,54 +1,55 @@ pragma solidity ^0.4.24; -import "@convergent/arc/contracts/EthPolynomialCurvedToken.sol"; +import "@convergent/arc/contracts/Spreads/SpreadEther.sol"; -contract PersonalEconomy is EthPolynomialCurvedToken { +contract PersonalEconomy is SpreadEther { event Requested(string message, uint256 time, address who); bytes32 public mhash; - address public owner; constructor( bytes32 _mhash, string _name, string _symbol, address _owner - ) EthPolynomialCurvedToken( - _name, - _symbol, - 18, - 1, - 1000 - ) - public + ) public { + SpreadEther.initialize( + _name, + _symbol, + 18, + 1, + 1, + 3000, + 4000 + ); + transferOwnership(_owner); mhash = _mhash; - owner = _owner; } function requestWithEth( - string _msg, - uint256 _price + string message, + uint256 reqNumTokens ) public payable { - uint256 cost = priceToMint(_price); + uint256 cost = price(reqNumTokens); require(msg.value >= cost, "Must send requisite amount to purchase."); - _mint(msg.sender, _price); - _transfer(msg.sender, owner, _price); - emit Requested(_msg, now, msg.sender); + _mint(msg.sender, reqNumTokens); + _transfer(msg.sender, owner(), reqNumTokens); + emit Requested(message, now, msg.sender); } - function requestWithToken(string _msg, uint256 _price) public { - _transfer(msg.sender, owner, _price); - emit Requested(_msg, now, msg.sender); + function requestWithToken(string message, uint256 reqNumTokens) public { + _transfer(msg.sender, owner(), reqNumTokens); + emit Requested(message, now, msg.sender); } function updateData(bytes32 _mhash) public returns (bool) { - require(msg.sender == owner); + require(msg.sender == owner()); mhash = _mhash; } } diff --git a/package.json b/package.json index 463d68c..91f376b 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "web3": "1.0.0-beta.37" }, "devDependencies": { - "@convergent/arc": "0.0.3", + "@convergent/arc": "0.0.5", "babel-eslint": "9.0.0", "bs58": "4.0.1", "data-uri-to-buffer": "2.0.0", diff --git a/src/build/contracts/ERC20.json b/src/build/contracts/ERC20.json index 7666fc4..d2764d9 100644 --- a/src/build/contracts/ERC20.json +++ b/src/build/contracts/ERC20.json @@ -221,24 +221,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610e69806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b31461009357806318160ddd146100f857806323b872dd1461012357806339509351146101a857806370a082311461020d578063a457c2d714610264578063a9059cbb146102c9578063dd62ed3e1461032e575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103a5565b604051808215151515815260200191505060405180910390f35b34801561010457600080fd5b5061010d6104d2565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b5061018e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104dc565b604051808215151515815260200191505060405180910390f35b3480156101b457600080fd5b506101f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061068e565b604051808215151515815260200191505060405180910390f35b34801561021957600080fd5b5061024e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c5565b6040518082815260200191505060405180910390f35b34801561027057600080fd5b506102af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061090d565b604051808215151515815260200191505060405180910390f35b3480156102d557600080fd5b50610314600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b44565b604051808215151515815260200191505060405180910390f35b34801561033a57600080fd5b5061038f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b5b565b6040518082815260200191505060405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156103e257600080fd5b81600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600254905090565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561056957600080fd5b6105f882600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610683848484610c03565b600190509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106cb57600080fd5b61075a82600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e1c90919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561094a57600080fd5b6109d982600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be290919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000610b51338484610c03565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080838311151515610bf457600080fd5b82840390508091505092915050565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515610c5057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610c8c57600080fd5b610cdd816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be290919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d70816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e1c90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000808284019050838110151515610e3357600080fd5b80915050929150505600a165627a7a72305820cb113e63aff2bf79570af8c3959f34772b7d5d463d1c14847abe1515328376690029", - "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b31461009357806318160ddd146100f857806323b872dd1461012357806339509351146101a857806370a082311461020d578063a457c2d714610264578063a9059cbb146102c9578063dd62ed3e1461032e575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103a5565b604051808215151515815260200191505060405180910390f35b34801561010457600080fd5b5061010d6104d2565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b5061018e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104dc565b604051808215151515815260200191505060405180910390f35b3480156101b457600080fd5b506101f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061068e565b604051808215151515815260200191505060405180910390f35b34801561021957600080fd5b5061024e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c5565b6040518082815260200191505060405180910390f35b34801561027057600080fd5b506102af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061090d565b604051808215151515815260200191505060405180910390f35b3480156102d557600080fd5b50610314600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b44565b604051808215151515815260200191505060405180910390f35b34801561033a57600080fd5b5061038f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b5b565b6040518082815260200191505060405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156103e257600080fd5b81600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600254905090565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561056957600080fd5b6105f882600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610683848484610c03565b600190509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106cb57600080fd5b61075a82600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e1c90919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561094a57600080fd5b6109d982600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be290919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000610b51338484610c03565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080838311151515610bf457600080fd5b82840390508091505092915050565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515610c5057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610c8c57600080fd5b610cdd816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be290919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d70816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e1c90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000808284019050838110151515610e3357600080fd5b80915050929150505600a165627a7a72305820cb113e63aff2bf79570af8c3959f34772b7d5d463d1c14847abe1515328376690029", - "sourceMap": "369:6595:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;369:6595:7;;;;;;;", - "deployedSourceMap": "369:6595:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2380:220;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2380:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;640:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;640:83:7;;;;;;;;;;;;;;;;;;;;;;;2872:288;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2872:288:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3611:330;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3611:330:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;920:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;920:98:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4397:340;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4397:340:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1637:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1637:127:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1335:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1335:150:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2380:220;2445:4;2484:1;2465:21;;:7;:21;;;;2457:30;;;;;;;;2526:5;2494:8;:20;2503:10;2494:20;;;;;;;;;;;;;;;:29;2515:7;2494:29;;;;;;;;;;;;;;;:37;;;;2563:7;2542:36;;2551:10;2542:36;;;2572:5;2542:36;;;;;;;;;;;;;;;;;;2591:4;2584:11;;2380:220;;;;:::o;640:83::-;684:7;706:12;;699:19;;640:83;:::o;2872:288::-;2975:4;3006:8;:14;3015:4;3006:14;;;;;;;;;;;;;;;:26;3021:10;3006:26;;;;;;;;;;;;;;;;2997:5;:35;;2989:44;;;;;;;;3069:37;3100:5;3069:8;:14;3078:4;3069:14;;;;;;;;;;;;;;;:26;3084:10;3069:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;3040:8;:14;3049:4;3040:14;;;;;;;;;;;;;;;:26;3055:10;3040:26;;;;;;;;;;;;;;;:66;;;;3112:26;3122:4;3128:2;3132:5;3112:9;:26::i;:::-;3151:4;3144:11;;2872:288;;;;;:::o;3611:330::-;3711:4;3752:1;3733:21;;:7;:21;;;;3725:30;;;;;;;;3802:45;3836:10;3802:8;:20;3811:10;3802:20;;;;;;;;;;;;;;;:29;3823:7;3802:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;3762:8;:20;3771:10;3762:20;;;;;;;;;;;;;;;:29;3783:7;3762:29;;;;;;;;;;;;;;;:86;;;;3880:7;3859:60;;3868:10;3859:60;;;3889:8;:20;3898:10;3889:20;;;;;;;;;;;;;;;:29;3910:7;3889:29;;;;;;;;;;;;;;;;3859:60;;;;;;;;;;;;;;;;;;3932:4;3925:11;;3611:330;;;;:::o;920:98::-;975:7;997:9;:16;1007:5;997:16;;;;;;;;;;;;;;;;990:23;;920:98;;;:::o;4397:340::-;4502:4;4543:1;4524:21;;:7;:21;;;;4516:30;;;;;;;;4593:50;4627:15;4593:8;:20;4602:10;4593:20;;;;;;;;;;;;;;;:29;4614:7;4593:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;4553:8;:20;4562:10;4553:20;;;;;;;;;;;;;;;:29;4574:7;4553:29;;;;;;;;;;;;;;;:91;;;;4676:7;4655:60;;4664:10;4655:60;;;4685:8;:20;4694:10;4685:20;;;;;;;;;;;;;;;:29;4706:7;4685:29;;;;;;;;;;;;;;;;4655:60;;;;;;;;;;;;;;;;;;4728:4;4721:11;;4397:340;;;;:::o;1637:127::-;1698:4;1710:32;1720:10;1732:2;1736:5;1710:9;:32::i;:::-;1755:4;1748:11;;1637:127;;;;:::o;1335:150::-;1432:7;1456:8;:15;1465:5;1456:15;;;;;;;;;;;;;;;:24;1472:7;1456:24;;;;;;;;;;;;;;;;1449:31;;1335:150;;;;:::o;1078:131:6:-;1136:7;1172:9;1164:1;1159;:6;;1151:15;;;;;;;;1188:1;1184;:5;1172:17;;1203:1;1196:8;;1078:131;;;;;:::o;4937:277:7:-;5029:9;:15;5039:4;5029:15;;;;;;;;;;;;;;;;5020:5;:24;;5012:33;;;;;;;;5073:1;5059:16;;:2;:16;;;;5051:25;;;;;;;;5101:26;5121:5;5101:9;:15;5111:4;5101:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;5083:9;:15;5093:4;5083:15;;;;;;;;;;;;;;;:44;;;;5149:24;5167:5;5149:9;:13;5159:2;5149:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;5133:9;:13;5143:2;5133:13;;;;;;;;;;;;;;;:40;;;;5199:2;5184:25;;5193:4;5184:25;;;5203:5;5184:25;;;;;;;;;;;;;;;;;;4937:277;;;:::o;1272:131:6:-;1330:7;1345:9;1361:1;1357;:5;1345:17;;1381:1;1376;:6;;1368:15;;;;;;;;1397:1;1390:8;;1272:131;;;;;:::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"./IERC20.sol\";\nimport \"../../math/SafeMath.sol\";\n\n/**\n * @title Standard ERC20 token\n *\n * @dev Implementation of the basic standard token.\n * https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\n * Originally based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol\n */\ncontract ERC20 is IERC20 {\n using SafeMath for uint256;\n\n mapping (address => uint256) private _balances;\n\n mapping (address => mapping (address => uint256)) private _allowed;\n\n uint256 private _totalSupply;\n\n /**\n * @dev Total number of tokens in existence\n */\n function totalSupply() public view returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param owner The address to query the balance of.\n * @return An uint256 representing the amount owned by the passed address.\n */\n function balanceOf(address owner) public view returns (uint256) {\n return _balances[owner];\n }\n\n /**\n * @dev Function to check the amount of tokens that an owner allowed to a spender.\n * @param owner address The address which owns the funds.\n * @param spender address The address which will spend the funds.\n * @return A uint256 specifying the amount of tokens still available for the spender.\n */\n function allowance(\n address owner,\n address spender\n )\n public\n view\n returns (uint256)\n {\n return _allowed[owner][spender];\n }\n\n /**\n * @dev Transfer token for a specified address\n * @param to The address to transfer to.\n * @param value The amount to be transferred.\n */\n function transfer(address to, uint256 value) public returns (bool) {\n _transfer(msg.sender, to, value);\n return true;\n }\n\n /**\n * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\n * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\n * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n * @param spender The address which will spend the funds.\n * @param value The amount of tokens to be spent.\n */\n function approve(address spender, uint256 value) public returns (bool) {\n require(spender != address(0));\n\n _allowed[msg.sender][spender] = value;\n emit Approval(msg.sender, spender, value);\n return true;\n }\n\n /**\n * @dev Transfer tokens from one address to another\n * @param from address The address which you want to send tokens from\n * @param to address The address which you want to transfer to\n * @param value uint256 the amount of tokens to be transferred\n */\n function transferFrom(\n address from,\n address to,\n uint256 value\n )\n public\n returns (bool)\n {\n require(value <= _allowed[from][msg.sender]);\n\n _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);\n _transfer(from, to, value);\n return true;\n }\n\n /**\n * @dev Increase the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed_[_spender] == 0. To increment\n * allowed value is better to use this function to avoid 2 calls (and wait until\n * the first transaction is mined)\n * From MonolithDAO Token.sol\n * @param spender The address which will spend the funds.\n * @param addedValue The amount of tokens to increase the allowance by.\n */\n function increaseAllowance(\n address spender,\n uint256 addedValue\n )\n public\n returns (bool)\n {\n require(spender != address(0));\n\n _allowed[msg.sender][spender] = (\n _allowed[msg.sender][spender].add(addedValue));\n emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);\n return true;\n }\n\n /**\n * @dev Decrease the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed_[_spender] == 0. To decrement\n * allowed value is better to use this function to avoid 2 calls (and wait until\n * the first transaction is mined)\n * From MonolithDAO Token.sol\n * @param spender The address which will spend the funds.\n * @param subtractedValue The amount of tokens to decrease the allowance by.\n */\n function decreaseAllowance(\n address spender,\n uint256 subtractedValue\n )\n public\n returns (bool)\n {\n require(spender != address(0));\n\n _allowed[msg.sender][spender] = (\n _allowed[msg.sender][spender].sub(subtractedValue));\n emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);\n return true;\n }\n\n /**\n * @dev Transfer token for a specified addresses\n * @param from The address to transfer from.\n * @param to The address to transfer to.\n * @param value The amount to be transferred.\n */\n function _transfer(address from, address to, uint256 value) internal {\n require(value <= _balances[from]);\n require(to != address(0));\n\n _balances[from] = _balances[from].sub(value);\n _balances[to] = _balances[to].add(value);\n emit Transfer(from, to, value);\n }\n\n /**\n * @dev Internal function that mints an amount of the token and assigns it to\n * an account. This encapsulates the modification of balances such that the\n * proper events are emitted.\n * @param account The account that will receive the created tokens.\n * @param value The amount that will be created.\n */\n function _mint(address account, uint256 value) internal {\n require(account != 0);\n _totalSupply = _totalSupply.add(value);\n _balances[account] = _balances[account].add(value);\n emit Transfer(address(0), account, value);\n }\n\n /**\n * @dev Internal function that burns an amount of the token of a given\n * account.\n * @param account The account whose tokens will be burnt.\n * @param value The amount that will be burnt.\n */\n function _burn(address account, uint256 value) internal {\n require(account != 0);\n require(value <= _balances[account]);\n\n _totalSupply = _totalSupply.sub(value);\n _balances[account] = _balances[account].sub(value);\n emit Transfer(account, address(0), value);\n }\n\n /**\n * @dev Internal function that burns an amount of the token of a given\n * account, deducting from the sender's allowance for said account. Uses the\n * internal burn function.\n * @param account The account whose tokens will be burnt.\n * @param value The amount that will be burnt.\n */\n function _burnFrom(address account, uint256 value) internal {\n require(value <= _allowed[account][msg.sender]);\n\n // Should https://github.com/OpenZeppelin/zeppelin-solidity/issues/707 be accepted,\n // this function needs to emit an event with the updated approval.\n _allowed[account][msg.sender] = _allowed[account][msg.sender].sub(\n value);\n _burn(account, value);\n }\n}\n", - "sourcePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "bytecode": "0x608060405234801561001057600080fd5b50610e6f806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b31461009357806318160ddd146100f857806323b872dd1461012357806339509351146101a857806370a082311461020d578063a457c2d714610264578063a9059cbb146102c9578063dd62ed3e1461032e575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103a5565b604051808215151515815260200191505060405180910390f35b34801561010457600080fd5b5061010d6104d2565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b5061018e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104dc565b604051808215151515815260200191505060405180910390f35b3480156101b457600080fd5b506101f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061068e565b604051808215151515815260200191505060405180910390f35b34801561021957600080fd5b5061024e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c5565b6040518082815260200191505060405180910390f35b34801561027057600080fd5b506102af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061090e565b604051808215151515815260200191505060405180910390f35b3480156102d557600080fd5b50610314600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b45565b604051808215151515815260200191505060405180910390f35b34801561033a57600080fd5b5061038f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b5c565b6040518082815260200191505060405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156103e257600080fd5b81603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000603554905090565b6000603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561056957600080fd5b6105f882603460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be390919063ffffffff16565b603460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610683848484610c04565b600190509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106cb57600080fd5b61075a82603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e2290919063ffffffff16565b603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561094b57600080fd5b6109da82603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be390919063ffffffff16565b603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000610b52338484610c04565b6001905092915050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080838311151515610bf557600080fd5b82840390508091505092915050565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515610c5257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610c8e57600080fd5b610ce081603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be390919063ffffffff16565b603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d7581603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e2290919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000808284019050838110151515610e3957600080fd5b80915050929150505600a165627a7a723058207d56db8b42eedc9e21a0dd77ffa5ecad47dd139f8d9f4da0836caca48444fbbd0029", + "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095ea7b31461009357806318160ddd146100f857806323b872dd1461012357806339509351146101a857806370a082311461020d578063a457c2d714610264578063a9059cbb146102c9578063dd62ed3e1461032e575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506103a5565b604051808215151515815260200191505060405180910390f35b34801561010457600080fd5b5061010d6104d2565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b5061018e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104dc565b604051808215151515815260200191505060405180910390f35b3480156101b457600080fd5b506101f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061068e565b604051808215151515815260200191505060405180910390f35b34801561021957600080fd5b5061024e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c5565b6040518082815260200191505060405180910390f35b34801561027057600080fd5b506102af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061090e565b604051808215151515815260200191505060405180910390f35b3480156102d557600080fd5b50610314600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b45565b604051808215151515815260200191505060405180910390f35b34801561033a57600080fd5b5061038f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b5c565b6040518082815260200191505060405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156103e257600080fd5b81603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000603554905090565b6000603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561056957600080fd5b6105f882603460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be390919063ffffffff16565b603460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610683848484610c04565b600190509392505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156106cb57600080fd5b61075a82603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e2290919063ffffffff16565b603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561094b57600080fd5b6109da82603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be390919063ffffffff16565b603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925603460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000610b52338484610c04565b6001905092915050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080838311151515610bf557600080fd5b82840390508091505092915050565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515610c5257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610c8e57600080fd5b610ce081603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be390919063ffffffff16565b603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d7581603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e2290919063ffffffff16565b603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000808284019050838110151515610e3957600080fd5b80915050929150505600a165627a7a723058207d56db8b42eedc9e21a0dd77ffa5ecad47dd139f8d9f4da0836caca48444fbbd0029", + "sourceMap": "416:6664:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;416:6664:8;;;;;;;", + "deployedSourceMap": "416:6664:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2446:220;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2446:220:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;702:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;702:83:8;;;;;;;;;;;;;;;;;;;;;;;2938:288;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2938:288:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3677:330;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3677:330:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;986:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;986:98:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4463:340;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4463:340:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1703:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1703:127:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1401:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1401:150:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2446:220;2511:4;2550:1;2531:21;;:7;:21;;;;2523:30;;;;;;;;2592:5;2560:8;:20;2569:10;2560:20;;;;;;;;;;;;;;;:29;2581:7;2560:29;;;;;;;;;;;;;;;:37;;;;2629:7;2608:36;;2617:10;2608:36;;;2638:5;2608:36;;;;;;;;;;;;;;;;;;2657:4;2650:11;;2446:220;;;;:::o;702:83::-;746:7;768:12;;761:19;;702:83;:::o;2938:288::-;3041:4;3072:8;:14;3081:4;3072:14;;;;;;;;;;;;;;;:26;3087:10;3072:26;;;;;;;;;;;;;;;;3063:5;:35;;3055:44;;;;;;;;3135:37;3166:5;3135:8;:14;3144:4;3135:14;;;;;;;;;;;;;;;:26;3150:10;3135:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;3106:8;:14;3115:4;3106:14;;;;;;;;;;;;;;;:26;3121:10;3106:26;;;;;;;;;;;;;;;:66;;;;3178:26;3188:4;3194:2;3198:5;3178:9;:26::i;:::-;3217:4;3210:11;;2938:288;;;;;:::o;3677:330::-;3777:4;3818:1;3799:21;;:7;:21;;;;3791:30;;;;;;;;3868:45;3902:10;3868:8;:20;3877:10;3868:20;;;;;;;;;;;;;;;:29;3889:7;3868:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;3828:8;:20;3837:10;3828:20;;;;;;;;;;;;;;;:29;3849:7;3828:29;;;;;;;;;;;;;;;:86;;;;3946:7;3925:60;;3934:10;3925:60;;;3955:8;:20;3964:10;3955:20;;;;;;;;;;;;;;;:29;3976:7;3955:29;;;;;;;;;;;;;;;;3925:60;;;;;;;;;;;;;;;;;;3998:4;3991:11;;3677:330;;;;:::o;986:98::-;1041:7;1063:9;:16;1073:5;1063:16;;;;;;;;;;;;;;;;1056:23;;986:98;;;:::o;4463:340::-;4568:4;4609:1;4590:21;;:7;:21;;;;4582:30;;;;;;;;4659:50;4693:15;4659:8;:20;4668:10;4659:20;;;;;;;;;;;;;;;:29;4680:7;4659:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;4619:8;:20;4628:10;4619:20;;;;;;;;;;;;;;;:29;4640:7;4619:29;;;;;;;;;;;;;;;:91;;;;4742:7;4721:60;;4730:10;4721:60;;;4751:8;:20;4760:10;4751:20;;;;;;;;;;;;;;;:29;4772:7;4751:29;;;;;;;;;;;;;;;;4721:60;;;;;;;;;;;;;;;;;;4794:4;4787:11;;4463:340;;;;:::o;1703:127::-;1764:4;1776:32;1786:10;1798:2;1802:5;1776:9;:32::i;:::-;1821:4;1814:11;;1703:127;;;;:::o;1401:150::-;1498:7;1522:8;:15;1531:5;1522:15;;;;;;;;;;;;;;;:24;1538:7;1522:24;;;;;;;;;;;;;;;;1515:31;;1401:150;;;;:::o;1079:131:6:-;1137:7;1173:9;1165:1;1160;:6;;1152:15;;;;;;;;1189:1;1185;:5;1173:17;;1204:1;1197:8;;1079:131;;;;;:::o;5003:277:8:-;5095:9;:15;5105:4;5095:15;;;;;;;;;;;;;;;;5086:5;:24;;5078:33;;;;;;;;5139:1;5125:16;;:2;:16;;;;5117:25;;;;;;;;5167:26;5187:5;5167:9;:15;5177:4;5167:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;5149:9;:15;5159:4;5149:15;;;;;;;;;;;;;;;:44;;;;5215:24;5233:5;5215:9;:13;5225:2;5215:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;5199:9;:13;5209:2;5199:13;;;;;;;;;;;;;;;:40;;;;5265:2;5250:25;;5259:4;5250:25;;;5269:5;5250:25;;;;;;;;;;;;;;;;;;5003:277;;;:::o;1273:131:6:-;1331:7;1346:9;1362:1;1358;:5;1346:17;;1382:1;1377;:6;;1369:15;;;;;;;;1398:1;1391:8;;1273:131;;;;;:::o", + "source": "pragma solidity ^0.4.24;\n\nimport \"zos-lib/contracts/Initializable.sol\";\nimport \"./IERC20.sol\";\nimport \"../../math/SafeMath.sol\";\n\n\n/**\n * @title Standard ERC20 token\n *\n * @dev Implementation of the basic standard token.\n * https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\n * Originally based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol\n */\ncontract ERC20 is Initializable, IERC20 {\n using SafeMath for uint256;\n\n mapping (address => uint256) private _balances;\n\n mapping (address => mapping (address => uint256)) private _allowed;\n\n uint256 private _totalSupply;\n\n /**\n * @dev Total number of tokens in existence\n */\n function totalSupply() public view returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param owner The address to query the the balance of.\n * @return An uint256 representing the amount owned by the passed address.\n */\n function balanceOf(address owner) public view returns (uint256) {\n return _balances[owner];\n }\n\n /**\n * @dev Function to check the amount of tokens that an owner allowed to a spender.\n * @param owner address The address which owns the funds.\n * @param spender address The address which will spend the funds.\n * @return A uint256 specifying the amount of tokens still available for the spender.\n */\n function allowance(\n address owner,\n address spender\n )\n public\n view\n returns (uint256)\n {\n return _allowed[owner][spender];\n }\n\n /**\n * @dev Transfer token for a specified address\n * @param to The address to transfer to.\n * @param value The amount to be transferred.\n */\n function transfer(address to, uint256 value) public returns (bool) {\n _transfer(msg.sender, to, value);\n return true;\n }\n\n /**\n * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\n * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\n * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n * @param spender The address which will spend the funds.\n * @param value The amount of tokens to be spent.\n */\n function approve(address spender, uint256 value) public returns (bool) {\n require(spender != address(0));\n\n _allowed[msg.sender][spender] = value;\n emit Approval(msg.sender, spender, value);\n return true;\n }\n\n /**\n * @dev Transfer tokens from one address to another\n * @param from address The address which you want to send tokens from\n * @param to address The address which you want to transfer to\n * @param value uint256 the amount of tokens to be transferred\n */\n function transferFrom(\n address from,\n address to,\n uint256 value\n )\n public\n returns (bool)\n {\n require(value <= _allowed[from][msg.sender]);\n\n _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);\n _transfer(from, to, value);\n return true;\n }\n\n /**\n * @dev Increase the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed_[_spender] == 0. To increment\n * allowed value is better to use this function to avoid 2 calls (and wait until\n * the first transaction is mined)\n * From MonolithDAO Token.sol\n * @param spender The address which will spend the funds.\n * @param addedValue The amount of tokens to increase the allowance by.\n */\n function increaseAllowance(\n address spender,\n uint256 addedValue\n )\n public\n returns (bool)\n {\n require(spender != address(0));\n\n _allowed[msg.sender][spender] = (\n _allowed[msg.sender][spender].add(addedValue));\n emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);\n return true;\n }\n\n /**\n * @dev Decrease the amount of tokens that an owner allowed to a spender.\n * approve should be called when allowed_[_spender] == 0. To decrement\n * allowed value is better to use this function to avoid 2 calls (and wait until\n * the first transaction is mined)\n * From MonolithDAO Token.sol\n * @param spender The address which will spend the funds.\n * @param subtractedValue The amount of tokens to decrease the allowance by.\n */\n function decreaseAllowance(\n address spender,\n uint256 subtractedValue\n )\n public\n returns (bool)\n {\n require(spender != address(0));\n\n _allowed[msg.sender][spender] = (\n _allowed[msg.sender][spender].sub(subtractedValue));\n emit Approval(msg.sender, spender, _allowed[msg.sender][spender]);\n return true;\n }\n\n /**\n * @dev Transfer token for a specified addresses\n * @param from The address to transfer from.\n * @param to The address to transfer to.\n * @param value The amount to be transferred.\n */\n function _transfer(address from, address to, uint256 value) internal {\n require(value <= _balances[from]);\n require(to != address(0));\n\n _balances[from] = _balances[from].sub(value);\n _balances[to] = _balances[to].add(value);\n emit Transfer(from, to, value);\n }\n\n /**\n * @dev Internal function that mints an amount of the token and assigns it to\n * an account. This encapsulates the modification of balances such that the\n * proper events are emitted.\n * @param account The account that will receive the created tokens.\n * @param amount The amount that will be created.\n */\n function _mint(address account, uint256 amount) internal {\n require(account != 0);\n _totalSupply = _totalSupply.add(amount);\n _balances[account] = _balances[account].add(amount);\n emit Transfer(address(0), account, amount);\n }\n\n /**\n * @dev Internal function that burns an amount of the token of a given\n * account.\n * @param account The account whose tokens will be burnt.\n * @param amount The amount that will be burnt.\n */\n function _burn(address account, uint256 amount) internal {\n require(account != 0);\n require(amount <= _balances[account]);\n\n _totalSupply = _totalSupply.sub(amount);\n _balances[account] = _balances[account].sub(amount);\n emit Transfer(account, address(0), amount);\n }\n\n /**\n * @dev Internal function that burns an amount of the token of a given\n * account, deducting from the sender's allowance for said account. Uses the\n * internal burn function.\n * @param account The account whose tokens will be burnt.\n * @param amount The amount that will be burnt.\n */\n function _burnFrom(address account, uint256 amount) internal {\n require(amount <= _allowed[account][msg.sender]);\n\n // Should https://github.com/OpenZeppelin/zeppelin-solidity/issues/707 be accepted,\n // this function needs to emit an event with the updated approval.\n _allowed[account][msg.sender] = _allowed[account][msg.sender].sub(\n amount);\n _burn(account, amount);\n }\n\n uint256[50] private ______gap;\n}\n", + "sourcePath": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", "ast": { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", "exportedSymbols": { "ERC20": [ - 1153 + 1415 ] }, - "id": 1154, + "id": 1416, "nodeType": "SourceUnit", "nodes": [ { - "id": 711, + "id": 966, "literals": [ "solidity", "^", @@ -246,27 +246,38 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:7" + "src": "0:24:8" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "absolutePath": "zos-lib/contracts/Initializable.sol", + "file": "zos-lib/contracts/Initializable.sol", + "id": 967, + "nodeType": "ImportDirective", + "scope": 1416, + "sourceUnit": 1608, + "src": "26:45:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/IERC20.sol", "file": "./IERC20.sol", - "id": 712, + "id": 968, "nodeType": "ImportDirective", - "scope": 1154, - "sourceUnit": 1281, - "src": "26:22:7", + "scope": 1416, + "sourceUnit": 1552, + "src": "72:22:8", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "absolutePath": "openzeppelin-eth/contracts/math/SafeMath.sol", "file": "../../math/SafeMath.sol", - "id": 713, + "id": 969, "nodeType": "ImportDirective", - "scope": 1154, - "sourceUnit": 710, - "src": "49:33:7", + "scope": 1416, + "sourceUnit": 852, + "src": "95:33:8", "symbolAliases": [], "unitAlias": "" }, @@ -276,56 +287,76 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 714, + "id": 970, + "name": "Initializable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1607, + "src": "434:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Initializable_$1607", + "typeString": "contract Initializable" + } + }, + "id": 971, + "nodeType": "InheritanceSpecifier", + "src": "434:13:8" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 972, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1280, - "src": "387:6:7", + "referencedDeclaration": 1551, + "src": "449:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1280", + "typeIdentifier": "t_contract$_IERC20_$1551", "typeString": "contract IERC20" } }, - "id": 715, + "id": 973, "nodeType": "InheritanceSpecifier", - "src": "387:6:7" + "src": "449:6:8" } ], "contractDependencies": [ - 1280 + 1551, + 1607 ], "contractKind": "contract", "documentation": "@title Standard ERC20 token\n * @dev Implementation of the basic standard token.\nhttps://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\nOriginally based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol", "fullyImplemented": true, - "id": 1153, + "id": 1415, "linearizedBaseContracts": [ - 1153, - 1280 + 1415, + 1551, + 1607 ], "name": "ERC20", "nodeType": "ContractDefinition", "nodes": [ { - "id": 718, + "id": 976, "libraryName": { "contractScope": null, - "id": 716, + "id": 974, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 709, - "src": "404:8:7", + "referencedDeclaration": 851, + "src": "466:8:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$709", + "typeIdentifier": "t_contract$_SafeMath_$851", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "398:27:7", + "src": "460:27:8", "typeName": { - "id": 717, + "id": 975, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "417:7:7", + "src": "479:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -334,11 +365,11 @@ }, { "constant": false, - "id": 722, + "id": 980, "name": "_balances", "nodeType": "VariableDeclaration", - "scope": 1153, - "src": "429:46:7", + "scope": 1415, + "src": "491:46:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -346,28 +377,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 721, + "id": 979, "keyType": { - "id": 719, + "id": 977, "name": "address", "nodeType": "ElementaryTypeName", - "src": "438:7:7", + "src": "500:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "429:28:7", + "src": "491:28:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 720, + "id": 978, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "449:7:7", + "src": "511:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -379,11 +410,11 @@ }, { "constant": false, - "id": 728, + "id": 986, "name": "_allowed", "nodeType": "VariableDeclaration", - "scope": 1153, - "src": "480:66:7", + "scope": 1415, + "src": "542:66:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -391,46 +422,46 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 727, + "id": 985, "keyType": { - "id": 723, + "id": 981, "name": "address", "nodeType": "ElementaryTypeName", - "src": "489:7:7", + "src": "551:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "480:49:7", + "src": "542:49:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 726, + "id": 984, "keyType": { - "id": 724, + "id": 982, "name": "address", "nodeType": "ElementaryTypeName", - "src": "509:7:7", + "src": "571:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "500:28:7", + "src": "562:28:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 725, + "id": 983, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "520:7:7", + "src": "582:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -443,11 +474,11 @@ }, { "constant": false, - "id": 730, + "id": 988, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 1153, - "src": "551:28:7", + "scope": 1415, + "src": "613:28:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -455,10 +486,10 @@ "typeString": "uint256" }, "typeName": { - "id": 729, + "id": 987, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "551:7:7", + "src": "613:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -469,33 +500,33 @@ }, { "body": { - "id": 737, + "id": 995, "nodeType": "Block", - "src": "693:30:7", + "src": "755:30:8", "statements": [ { "expression": { "argumentTypes": null, - "id": 735, + "id": 993, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "706:12:7", + "referencedDeclaration": 988, + "src": "768:12:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 734, - "id": 736, + "functionReturnParameters": 992, + "id": 994, "nodeType": "Return", - "src": "699:19:7" + "src": "761:19:8" } ] }, "documentation": "@dev Total number of tokens in existence", - "id": 738, + "id": 996, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -503,23 +534,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 731, + "id": 989, "nodeType": "ParameterList", "parameters": [], - "src": "660:2:7" + "src": "722:2:8" }, "payable": false, "returnParameters": { - "id": 734, + "id": 992, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 733, + "id": 991, "name": "", "nodeType": "VariableDeclaration", - "scope": 738, - "src": "684:7:7", + "scope": 996, + "src": "746:7:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -527,10 +558,10 @@ "typeString": "uint256" }, "typeName": { - "id": 732, + "id": 990, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "684:7:7", + "src": "746:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -540,45 +571,45 @@ "visibility": "internal" } ], - "src": "683:9:7" + "src": "745:9:8" }, - "scope": 1153, - "src": "640:83:7", + "scope": 1415, + "src": "702:83:8", "stateMutability": "view", - "superFunction": 1218, + "superFunction": 1489, "visibility": "public" }, { "body": { - "id": 749, + "id": 1007, "nodeType": "Block", - "src": "984:34:7", + "src": "1050:34:8", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 745, + "id": 1003, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "997:9:7", + "referencedDeclaration": 980, + "src": "1063:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 747, + "id": 1005, "indexExpression": { "argumentTypes": null, - "id": 746, + "id": 1004, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 740, - "src": "1007:5:7", + "referencedDeclaration": 998, + "src": "1073:5:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -589,21 +620,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "997:16:7", + "src": "1063:16:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 744, - "id": 748, + "functionReturnParameters": 1002, + "id": 1006, "nodeType": "Return", - "src": "990:23:7" + "src": "1056:23:8" } ] }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner The address to query the balance of.\n@return An uint256 representing the amount owned by the passed address.", - "id": 750, + "documentation": "@dev Gets the balance of the specified address.\n@param owner The address to query the the balance of.\n@return An uint256 representing the amount owned by the passed address.", + "id": 1008, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -611,16 +642,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 741, + "id": 999, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 740, + "id": 998, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 750, - "src": "939:13:7", + "scope": 1008, + "src": "1005:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -628,10 +659,10 @@ "typeString": "address" }, "typeName": { - "id": 739, + "id": 997, "name": "address", "nodeType": "ElementaryTypeName", - "src": "939:7:7", + "src": "1005:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -641,20 +672,20 @@ "visibility": "internal" } ], - "src": "938:15:7" + "src": "1004:15:8" }, "payable": false, "returnParameters": { - "id": 744, + "id": 1002, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 743, + "id": 1001, "name": "", "nodeType": "VariableDeclaration", - "scope": 750, - "src": "975:7:7", + "scope": 1008, + "src": "1041:7:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -662,10 +693,10 @@ "typeString": "uint256" }, "typeName": { - "id": 742, + "id": 1000, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "975:7:7", + "src": "1041:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -675,19 +706,19 @@ "visibility": "internal" } ], - "src": "974:9:7" + "src": "1040:9:8" }, - "scope": 1153, - "src": "920:98:7", + "scope": 1415, + "src": "986:98:8", "stateMutability": "view", - "superFunction": 1225, + "superFunction": 1496, "visibility": "public" }, { "body": { - "id": 765, + "id": 1023, "nodeType": "Block", - "src": "1443:42:7", + "src": "1509:42:8", "statements": [ { "expression": { @@ -696,26 +727,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 759, + "id": 1017, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "1456:8:7", + "referencedDeclaration": 986, + "src": "1522:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 761, + "id": 1019, "indexExpression": { "argumentTypes": null, - "id": 760, + "id": 1018, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 752, - "src": "1465:5:7", + "referencedDeclaration": 1010, + "src": "1531:5:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -726,21 +757,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1456:15:7", + "src": "1522:15:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 763, + "id": 1021, "indexExpression": { "argumentTypes": null, - "id": 762, + "id": 1020, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 754, - "src": "1472:7:7", + "referencedDeclaration": 1012, + "src": "1538:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -751,21 +782,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1456:24:7", + "src": "1522:24:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 758, - "id": 764, + "functionReturnParameters": 1016, + "id": 1022, "nodeType": "Return", - "src": "1449:31:7" + "src": "1515:31:8" } ] }, "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\n@param owner address The address which owns the funds.\n@param spender address The address which will spend the funds.\n@return A uint256 specifying the amount of tokens still available for the spender.", - "id": 766, + "id": 1024, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -773,16 +804,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 755, + "id": 1013, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 752, + "id": 1010, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 766, - "src": "1359:13:7", + "scope": 1024, + "src": "1425:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -790,10 +821,10 @@ "typeString": "address" }, "typeName": { - "id": 751, + "id": 1009, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1359:7:7", + "src": "1425:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -804,11 +835,11 @@ }, { "constant": false, - "id": 754, + "id": 1012, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 766, - "src": "1378:15:7", + "scope": 1024, + "src": "1444:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -816,10 +847,10 @@ "typeString": "address" }, "typeName": { - "id": 753, + "id": 1011, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1378:7:7", + "src": "1444:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -829,20 +860,20 @@ "visibility": "internal" } ], - "src": "1353:45:7" + "src": "1419:45:8" }, "payable": false, "returnParameters": { - "id": 758, + "id": 1016, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 757, + "id": 1015, "name": "", "nodeType": "VariableDeclaration", - "scope": 766, - "src": "1432:7:7", + "scope": 1024, + "src": "1498:7:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -850,10 +881,10 @@ "typeString": "uint256" }, "typeName": { - "id": 756, + "id": 1014, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1432:7:7", + "src": "1498:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -863,19 +894,19 @@ "visibility": "internal" } ], - "src": "1431:9:7" + "src": "1497:9:8" }, - "scope": 1153, - "src": "1335:150:7", + "scope": 1415, + "src": "1401:150:8", "stateMutability": "view", - "superFunction": 1234, + "superFunction": 1505, "visibility": "public" }, { "body": { - "id": 784, + "id": 1042, "nodeType": "Block", - "src": "1704:60:7", + "src": "1770:60:8", "statements": [ { "expression": { @@ -885,18 +916,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 776, + "id": 1034, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "1720:3:7", + "referencedDeclaration": 1622, + "src": "1786:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 777, + "id": 1035, "isConstant": false, "isLValue": false, "isPure": false, @@ -904,7 +935,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1720:10:7", + "src": "1786:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -912,12 +943,12 @@ }, { "argumentTypes": null, - "id": 778, + "id": 1036, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 768, - "src": "1732:2:7", + "referencedDeclaration": 1026, + "src": "1798:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -925,12 +956,12 @@ }, { "argumentTypes": null, - "id": 779, + "id": 1037, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "1736:5:7", + "referencedDeclaration": 1028, + "src": "1802:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -952,18 +983,18 @@ "typeString": "uint256" } ], - "id": 775, + "id": 1033, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "1710:9:7", + "referencedDeclaration": 1281, + "src": "1776:9:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 780, + "id": 1038, "isConstant": false, "isLValue": false, "isPure": false, @@ -971,28 +1002,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1710:32:7", + "src": "1776:32:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 781, + "id": 1039, "nodeType": "ExpressionStatement", - "src": "1710:32:7" + "src": "1776:32:8" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 782, + "id": 1040, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1755:4:7", + "src": "1821:4:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1000,15 +1031,15 @@ }, "value": "true" }, - "functionReturnParameters": 774, - "id": 783, + "functionReturnParameters": 1032, + "id": 1041, "nodeType": "Return", - "src": "1748:11:7" + "src": "1814:11:8" } ] }, "documentation": "@dev Transfer token for a specified address\n@param to The address to transfer to.\n@param value The amount to be transferred.", - "id": 785, + "id": 1043, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1016,16 +1047,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 771, + "id": 1029, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 768, + "id": 1026, "name": "to", "nodeType": "VariableDeclaration", - "scope": 785, - "src": "1655:10:7", + "scope": 1043, + "src": "1721:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1033,10 +1064,10 @@ "typeString": "address" }, "typeName": { - "id": 767, + "id": 1025, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1655:7:7", + "src": "1721:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1047,11 +1078,11 @@ }, { "constant": false, - "id": 770, + "id": 1028, "name": "value", "nodeType": "VariableDeclaration", - "scope": 785, - "src": "1667:13:7", + "scope": 1043, + "src": "1733:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1059,10 +1090,10 @@ "typeString": "uint256" }, "typeName": { - "id": 769, + "id": 1027, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1667:7:7", + "src": "1733:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1072,20 +1103,20 @@ "visibility": "internal" } ], - "src": "1654:27:7" + "src": "1720:27:8" }, "payable": false, "returnParameters": { - "id": 774, + "id": 1032, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 773, + "id": 1031, "name": "", "nodeType": "VariableDeclaration", - "scope": 785, - "src": "1698:4:7", + "scope": 1043, + "src": "1764:4:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1093,10 +1124,10 @@ "typeString": "bool" }, "typeName": { - "id": 772, + "id": 1030, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1698:4:7", + "src": "1764:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1106,19 +1137,19 @@ "visibility": "internal" } ], - "src": "1697:6:7" + "src": "1763:6:8" }, - "scope": 1153, - "src": "1637:127:7", + "scope": 1415, + "src": "1703:127:8", "stateMutability": "nonpayable", - "superFunction": 1243, + "superFunction": 1514, "visibility": "public" }, { "body": { - "id": 820, + "id": 1078, "nodeType": "Block", - "src": "2451:149:7", + "src": "2517:149:8", "statements": [ { "expression": { @@ -1130,19 +1161,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 799, + "id": 1057, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 795, + "id": 1053, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 787, - "src": "2465:7:7", + "referencedDeclaration": 1045, + "src": "2531:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1156,14 +1187,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 797, + "id": 1055, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2484:1:7", + "src": "2550:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1179,20 +1210,20 @@ "typeString": "int_const 0" } ], - "id": 796, + "id": 1054, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2476:7:7", + "src": "2542:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 798, + "id": 1056, "isConstant": false, "isLValue": false, "isPure": true, @@ -1200,13 +1231,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2476:10:7", + "src": "2542:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2465:21:7", + "src": "2531:21:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1220,21 +1251,21 @@ "typeString": "bool" } ], - "id": 794, + "id": 1052, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "2457:7:7", + "referencedDeclaration": 1625, + "src": "2523:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 800, + "id": 1058, "isConstant": false, "isLValue": false, "isPure": false, @@ -1242,20 +1273,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2457:30:7", + "src": "2523:30:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 801, + "id": 1059, "nodeType": "ExpressionStatement", - "src": "2457:30:7" + "src": "2523:30:8" }, { "expression": { "argumentTypes": null, - "id": 809, + "id": 1067, "isConstant": false, "isLValue": false, "isPure": false, @@ -1266,34 +1297,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 802, + "id": 1060, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "2494:8:7", + "referencedDeclaration": 986, + "src": "2560:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 806, + "id": 1064, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 803, + "id": 1061, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "2503:3:7", + "referencedDeclaration": 1622, + "src": "2569:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 804, + "id": 1062, "isConstant": false, "isLValue": false, "isPure": false, @@ -1301,7 +1332,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2503:10:7", + "src": "2569:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1312,21 +1343,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2494:20:7", + "src": "2560:20:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 807, + "id": 1065, "indexExpression": { "argumentTypes": null, - "id": 805, + "id": 1063, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 787, - "src": "2515:7:7", + "referencedDeclaration": 1045, + "src": "2581:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1337,7 +1368,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2494:29:7", + "src": "2560:29:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1347,26 +1378,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 808, + "id": 1066, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 789, - "src": "2526:5:7", + "referencedDeclaration": 1047, + "src": "2592:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2494:37:7", + "src": "2560:37:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 810, + "id": 1068, "nodeType": "ExpressionStatement", - "src": "2494:37:7" + "src": "2560:37:8" }, { "eventCall": { @@ -1376,18 +1407,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 812, + "id": 1070, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "2551:3:7", + "referencedDeclaration": 1622, + "src": "2617:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 813, + "id": 1071, "isConstant": false, "isLValue": false, "isPure": false, @@ -1395,7 +1426,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2551:10:7", + "src": "2617:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1403,12 +1434,12 @@ }, { "argumentTypes": null, - "id": 814, + "id": 1072, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 787, - "src": "2563:7:7", + "referencedDeclaration": 1045, + "src": "2629:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1416,12 +1447,12 @@ }, { "argumentTypes": null, - "id": 815, + "id": 1073, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 789, - "src": "2572:5:7", + "referencedDeclaration": 1047, + "src": "2638:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1443,18 +1474,18 @@ "typeString": "uint256" } ], - "id": 811, + "id": 1069, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1279, - "src": "2542:8:7", + "referencedDeclaration": 1550, + "src": "2608:8:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 816, + "id": 1074, "isConstant": false, "isLValue": false, "isPure": false, @@ -1462,28 +1493,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2542:36:7", + "src": "2608:36:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 817, + "id": 1075, "nodeType": "EmitStatement", - "src": "2537:41:7" + "src": "2603:41:8" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 818, + "id": 1076, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2591:4:7", + "src": "2657:4:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1491,15 +1522,15 @@ }, "value": "true" }, - "functionReturnParameters": 793, - "id": 819, + "functionReturnParameters": 1051, + "id": 1077, "nodeType": "Return", - "src": "2584:11:7" + "src": "2650:11:8" } ] }, "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\nBeware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param spender The address which will spend the funds.\n@param value The amount of tokens to be spent.", - "id": 821, + "id": 1079, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1507,16 +1538,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 790, + "id": 1048, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 787, + "id": 1045, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 821, - "src": "2397:15:7", + "scope": 1079, + "src": "2463:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1524,10 +1555,10 @@ "typeString": "address" }, "typeName": { - "id": 786, + "id": 1044, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2397:7:7", + "src": "2463:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1538,11 +1569,11 @@ }, { "constant": false, - "id": 789, + "id": 1047, "name": "value", "nodeType": "VariableDeclaration", - "scope": 821, - "src": "2414:13:7", + "scope": 1079, + "src": "2480:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1550,10 +1581,10 @@ "typeString": "uint256" }, "typeName": { - "id": 788, + "id": 1046, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2414:7:7", + "src": "2480:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1563,20 +1594,20 @@ "visibility": "internal" } ], - "src": "2396:32:7" + "src": "2462:32:8" }, "payable": false, "returnParameters": { - "id": 793, + "id": 1051, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 792, + "id": 1050, "name": "", "nodeType": "VariableDeclaration", - "scope": 821, - "src": "2445:4:7", + "scope": 1079, + "src": "2511:4:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1584,10 +1615,10 @@ "typeString": "bool" }, "typeName": { - "id": 791, + "id": 1049, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2445:4:7", + "src": "2511:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1597,19 +1628,19 @@ "visibility": "internal" } ], - "src": "2444:6:7" + "src": "2510:6:8" }, - "scope": 1153, - "src": "2380:220:7", + "scope": 1415, + "src": "2446:220:8", "stateMutability": "nonpayable", - "superFunction": 1252, + "superFunction": 1523, "visibility": "public" }, { "body": { - "id": 868, + "id": 1126, "nodeType": "Block", - "src": "2983:177:7", + "src": "3049:177:8", "statements": [ { "expression": { @@ -1621,19 +1652,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 840, + "id": 1098, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 833, + "id": 1091, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 827, - "src": "2997:5:7", + "referencedDeclaration": 1085, + "src": "3063:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1647,26 +1678,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 834, + "id": 1092, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "3006:8:7", + "referencedDeclaration": 986, + "src": "3072:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 836, + "id": 1094, "indexExpression": { "argumentTypes": null, - "id": 835, + "id": 1093, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 823, - "src": "3015:4:7", + "referencedDeclaration": 1081, + "src": "3081:4:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1677,29 +1708,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3006:14:7", + "src": "3072:14:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 839, + "id": 1097, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 837, + "id": 1095, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "3021:3:7", + "referencedDeclaration": 1622, + "src": "3087:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 838, + "id": 1096, "isConstant": false, "isLValue": false, "isPure": false, @@ -1707,7 +1738,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3021:10:7", + "src": "3087:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1718,13 +1749,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3006:26:7", + "src": "3072:26:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2997:35:7", + "src": "3063:35:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1738,21 +1769,21 @@ "typeString": "bool" } ], - "id": 832, + "id": 1090, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "2989:7:7", + "referencedDeclaration": 1625, + "src": "3055:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 841, + "id": 1099, "isConstant": false, "isLValue": false, "isPure": false, @@ -1760,20 +1791,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2989:44:7", + "src": "3055:44:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 842, + "id": 1100, "nodeType": "ExpressionStatement", - "src": "2989:44:7" + "src": "3055:44:8" }, { "expression": { "argumentTypes": null, - "id": 858, + "id": 1116, "isConstant": false, "isLValue": false, "isPure": false, @@ -1784,26 +1815,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 843, + "id": 1101, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "3040:8:7", + "referencedDeclaration": 986, + "src": "3106:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 847, + "id": 1105, "indexExpression": { "argumentTypes": null, - "id": 844, + "id": 1102, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 823, - "src": "3049:4:7", + "referencedDeclaration": 1081, + "src": "3115:4:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1814,29 +1845,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3040:14:7", + "src": "3106:14:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 848, + "id": 1106, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 845, + "id": 1103, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "3055:3:7", + "referencedDeclaration": 1622, + "src": "3121:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 846, + "id": 1104, "isConstant": false, "isLValue": false, "isPure": false, @@ -1844,7 +1875,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3055:10:7", + "src": "3121:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1855,7 +1886,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3040:26:7", + "src": "3106:26:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1868,12 +1899,12 @@ "arguments": [ { "argumentTypes": null, - "id": 856, + "id": 1114, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 827, - "src": "3100:5:7", + "referencedDeclaration": 1085, + "src": "3166:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1893,26 +1924,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 849, + "id": 1107, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "3069:8:7", + "referencedDeclaration": 986, + "src": "3135:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 851, + "id": 1109, "indexExpression": { "argumentTypes": null, - "id": 850, + "id": 1108, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 823, - "src": "3078:4:7", + "referencedDeclaration": 1081, + "src": "3144:4:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1923,29 +1954,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3069:14:7", + "src": "3135:14:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 854, + "id": 1112, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 852, + "id": 1110, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "3084:3:7", + "referencedDeclaration": 1622, + "src": "3150:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 853, + "id": 1111, "isConstant": false, "isLValue": false, "isPure": false, @@ -1953,7 +1984,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3084:10:7", + "src": "3150:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1964,27 +1995,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3069:26:7", + "src": "3135:26:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 855, + "id": 1113, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 664, - "src": "3069:30:7", + "referencedDeclaration": 806, + "src": "3135:30:8", "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": 857, + "id": 1115, "isConstant": false, "isLValue": false, "isPure": false, @@ -1992,21 +2023,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3069:37:7", + "src": "3135:37:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3040:66:7", + "src": "3106:66:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 859, + "id": 1117, "nodeType": "ExpressionStatement", - "src": "3040:66:7" + "src": "3106:66:8" }, { "expression": { @@ -2014,12 +2045,12 @@ "arguments": [ { "argumentTypes": null, - "id": 861, + "id": 1119, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 823, - "src": "3122:4:7", + "referencedDeclaration": 1081, + "src": "3188:4:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2027,12 +2058,12 @@ }, { "argumentTypes": null, - "id": 862, + "id": 1120, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 825, - "src": "3128:2:7", + "referencedDeclaration": 1083, + "src": "3194:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2040,12 +2071,12 @@ }, { "argumentTypes": null, - "id": 863, + "id": 1121, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 827, - "src": "3132:5:7", + "referencedDeclaration": 1085, + "src": "3198:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2067,18 +2098,18 @@ "typeString": "uint256" } ], - "id": 860, + "id": 1118, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "3112:9:7", + "referencedDeclaration": 1281, + "src": "3178:9:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 864, + "id": 1122, "isConstant": false, "isLValue": false, "isPure": false, @@ -2086,28 +2117,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3112:26:7", + "src": "3178:26:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 865, + "id": 1123, "nodeType": "ExpressionStatement", - "src": "3112:26:7" + "src": "3178:26:8" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 866, + "id": 1124, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3151:4:7", + "src": "3217:4:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2115,15 +2146,15 @@ }, "value": "true" }, - "functionReturnParameters": 831, - "id": 867, + "functionReturnParameters": 1089, + "id": 1125, "nodeType": "Return", - "src": "3144:11:7" + "src": "3210:11:8" } ] }, "documentation": "@dev Transfer tokens from one address to another\n@param from address The address which you want to send tokens from\n@param to address The address which you want to transfer to\n@param value uint256 the amount of tokens to be transferred", - "id": 869, + "id": 1127, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2131,16 +2162,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 828, + "id": 1086, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 823, + "id": 1081, "name": "from", "nodeType": "VariableDeclaration", - "scope": 869, - "src": "2899:12:7", + "scope": 1127, + "src": "2965:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2148,10 +2179,10 @@ "typeString": "address" }, "typeName": { - "id": 822, + "id": 1080, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2899:7:7", + "src": "2965:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2162,11 +2193,11 @@ }, { "constant": false, - "id": 825, + "id": 1083, "name": "to", "nodeType": "VariableDeclaration", - "scope": 869, - "src": "2917:10:7", + "scope": 1127, + "src": "2983:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2174,10 +2205,10 @@ "typeString": "address" }, "typeName": { - "id": 824, + "id": 1082, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2917:7:7", + "src": "2983:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2188,11 +2219,11 @@ }, { "constant": false, - "id": 827, + "id": 1085, "name": "value", "nodeType": "VariableDeclaration", - "scope": 869, - "src": "2933:13:7", + "scope": 1127, + "src": "2999:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2200,10 +2231,10 @@ "typeString": "uint256" }, "typeName": { - "id": 826, + "id": 1084, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2933:7:7", + "src": "2999:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2213,20 +2244,20 @@ "visibility": "internal" } ], - "src": "2893:57:7" + "src": "2959:57:8" }, "payable": false, "returnParameters": { - "id": 831, + "id": 1089, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 830, + "id": 1088, "name": "", "nodeType": "VariableDeclaration", - "scope": 869, - "src": "2975:4:7", + "scope": 1127, + "src": "3041:4:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2234,10 +2265,10 @@ "typeString": "bool" }, "typeName": { - "id": 829, + "id": 1087, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2975:4:7", + "src": "3041:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2247,19 +2278,19 @@ "visibility": "internal" } ], - "src": "2974:6:7" + "src": "3040:6:8" }, - "scope": 1153, - "src": "2872:288:7", + "scope": 1415, + "src": "2938:288:8", "stateMutability": "nonpayable", - "superFunction": 1263, + "superFunction": 1534, "visibility": "public" }, { "body": { - "id": 918, + "id": 1176, "nodeType": "Block", - "src": "3719:222:7", + "src": "3785:222:8", "statements": [ { "expression": { @@ -2271,19 +2302,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 883, + "id": 1141, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 879, + "id": 1137, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 871, - "src": "3733:7:7", + "referencedDeclaration": 1129, + "src": "3799:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2297,14 +2328,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 881, + "id": 1139, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3752:1:7", + "src": "3818:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2320,20 +2351,20 @@ "typeString": "int_const 0" } ], - "id": 880, + "id": 1138, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3744:7:7", + "src": "3810:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 882, + "id": 1140, "isConstant": false, "isLValue": false, "isPure": true, @@ -2341,13 +2372,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3744:10:7", + "src": "3810:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3733:21:7", + "src": "3799:21:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2361,21 +2392,21 @@ "typeString": "bool" } ], - "id": 878, + "id": 1136, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "3725:7:7", + "referencedDeclaration": 1625, + "src": "3791:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 884, + "id": 1142, "isConstant": false, "isLValue": false, "isPure": false, @@ -2383,20 +2414,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3725:30:7", + "src": "3791:30:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 885, + "id": 1143, "nodeType": "ExpressionStatement", - "src": "3725:30:7" + "src": "3791:30:8" }, { "expression": { "argumentTypes": null, - "id": 902, + "id": 1160, "isConstant": false, "isLValue": false, "isPure": false, @@ -2407,34 +2438,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 886, + "id": 1144, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "3762:8:7", + "referencedDeclaration": 986, + "src": "3828:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 890, + "id": 1148, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 887, + "id": 1145, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "3771:3:7", + "referencedDeclaration": 1622, + "src": "3837:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 888, + "id": 1146, "isConstant": false, "isLValue": false, "isPure": false, @@ -2442,7 +2473,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3771:10:7", + "src": "3837:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2453,21 +2484,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3762:20:7", + "src": "3828:20:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 891, + "id": 1149, "indexExpression": { "argumentTypes": null, - "id": 889, + "id": 1147, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 871, - "src": "3783:7:7", + "referencedDeclaration": 1129, + "src": "3849:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2478,7 +2509,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3762:29:7", + "src": "3828:29:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2494,12 +2525,12 @@ "arguments": [ { "argumentTypes": null, - "id": 899, + "id": 1157, "name": "addedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 873, - "src": "3836:10:7", + "referencedDeclaration": 1131, + "src": "3902:10:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2519,34 +2550,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 892, + "id": 1150, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "3802:8:7", + "referencedDeclaration": 986, + "src": "3868:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 895, + "id": 1153, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 893, + "id": 1151, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "3811:3:7", + "referencedDeclaration": 1622, + "src": "3877:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 894, + "id": 1152, "isConstant": false, "isLValue": false, "isPure": false, @@ -2554,7 +2585,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3811:10:7", + "src": "3877:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2565,21 +2596,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3802:20:7", + "src": "3868:20:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 897, + "id": 1155, "indexExpression": { "argumentTypes": null, - "id": 896, + "id": 1154, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 871, - "src": "3823:7:7", + "referencedDeclaration": 1129, + "src": "3889:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2590,27 +2621,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3802:29:7", + "src": "3868:29:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 898, + "id": 1156, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 688, - "src": "3802:33:7", + "referencedDeclaration": 830, + "src": "3868:33:8", "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": 900, + "id": 1158, "isConstant": false, "isLValue": false, "isPure": false, @@ -2618,35 +2649,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3802:45:7", + "src": "3868:45:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 901, + "id": 1159, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3794:54:7", + "src": "3860:54:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3762:86:7", + "src": "3828:86:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 903, + "id": 1161, "nodeType": "ExpressionStatement", - "src": "3762:86:7" + "src": "3828:86:8" }, { "eventCall": { @@ -2656,18 +2687,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 905, + "id": 1163, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "3868:3:7", + "referencedDeclaration": 1622, + "src": "3934:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 906, + "id": 1164, "isConstant": false, "isLValue": false, "isPure": false, @@ -2675,7 +2706,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3868:10:7", + "src": "3934:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2683,12 +2714,12 @@ }, { "argumentTypes": null, - "id": 907, + "id": 1165, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 871, - "src": "3880:7:7", + "referencedDeclaration": 1129, + "src": "3946:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2700,34 +2731,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 908, + "id": 1166, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "3889:8:7", + "referencedDeclaration": 986, + "src": "3955:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 911, + "id": 1169, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 909, + "id": 1167, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "3898:3:7", + "referencedDeclaration": 1622, + "src": "3964:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 910, + "id": 1168, "isConstant": false, "isLValue": false, "isPure": false, @@ -2735,7 +2766,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3898:10:7", + "src": "3964:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2746,21 +2777,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3889:20:7", + "src": "3955:20:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 913, + "id": 1171, "indexExpression": { "argumentTypes": null, - "id": 912, + "id": 1170, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 871, - "src": "3910:7:7", + "referencedDeclaration": 1129, + "src": "3976:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2771,7 +2802,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3889:29:7", + "src": "3955:29:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2793,18 +2824,18 @@ "typeString": "uint256" } ], - "id": 904, + "id": 1162, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1279, - "src": "3859:8:7", + "referencedDeclaration": 1550, + "src": "3925:8:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 914, + "id": 1172, "isConstant": false, "isLValue": false, "isPure": false, @@ -2812,28 +2843,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3859:60:7", + "src": "3925:60:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 915, + "id": 1173, "nodeType": "EmitStatement", - "src": "3854:65:7" + "src": "3920:65:8" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 916, + "id": 1174, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3932:4:7", + "src": "3998:4:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2841,15 +2872,15 @@ }, "value": "true" }, - "functionReturnParameters": 877, - "id": 917, + "functionReturnParameters": 1135, + "id": 1175, "nodeType": "Return", - "src": "3925:11:7" + "src": "3991:11:8" } ] }, "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\napprove should be called when allowed_[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param spender The address which will spend the funds.\n@param addedValue The amount of tokens to increase the allowance by.", - "id": 919, + "id": 1177, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2857,16 +2888,16 @@ "name": "increaseAllowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 874, + "id": 1132, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 871, + "id": 1129, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 919, - "src": "3643:15:7", + "scope": 1177, + "src": "3709:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2874,10 +2905,10 @@ "typeString": "address" }, "typeName": { - "id": 870, + "id": 1128, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3643:7:7", + "src": "3709:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2888,11 +2919,11 @@ }, { "constant": false, - "id": 873, + "id": 1131, "name": "addedValue", "nodeType": "VariableDeclaration", - "scope": 919, - "src": "3664:18:7", + "scope": 1177, + "src": "3730:18:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2900,10 +2931,10 @@ "typeString": "uint256" }, "typeName": { - "id": 872, + "id": 1130, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3664:7:7", + "src": "3730:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2913,20 +2944,20 @@ "visibility": "internal" } ], - "src": "3637:49:7" + "src": "3703:49:8" }, "payable": false, "returnParameters": { - "id": 877, + "id": 1135, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 876, + "id": 1134, "name": "", "nodeType": "VariableDeclaration", - "scope": 919, - "src": "3711:4:7", + "scope": 1177, + "src": "3777:4:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2934,10 +2965,10 @@ "typeString": "bool" }, "typeName": { - "id": 875, + "id": 1133, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3711:4:7", + "src": "3777:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2947,19 +2978,19 @@ "visibility": "internal" } ], - "src": "3710:6:7" + "src": "3776:6:8" }, - "scope": 1153, - "src": "3611:330:7", + "scope": 1415, + "src": "3677:330:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 968, + "id": 1226, "nodeType": "Block", - "src": "4510:227:7", + "src": "4576:227:8", "statements": [ { "expression": { @@ -2971,19 +3002,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 933, + "id": 1191, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 929, + "id": 1187, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "4524:7:7", + "referencedDeclaration": 1179, + "src": "4590:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2997,14 +3028,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 931, + "id": 1189, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4543:1:7", + "src": "4609:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3020,20 +3051,20 @@ "typeString": "int_const 0" } ], - "id": 930, + "id": 1188, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4535:7:7", + "src": "4601:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 932, + "id": 1190, "isConstant": false, "isLValue": false, "isPure": true, @@ -3041,13 +3072,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4535:10:7", + "src": "4601:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4524:21:7", + "src": "4590:21:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3061,21 +3092,21 @@ "typeString": "bool" } ], - "id": 928, + "id": 1186, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "4516:7:7", + "referencedDeclaration": 1625, + "src": "4582:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 934, + "id": 1192, "isConstant": false, "isLValue": false, "isPure": false, @@ -3083,20 +3114,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4516:30:7", + "src": "4582:30:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 935, + "id": 1193, "nodeType": "ExpressionStatement", - "src": "4516:30:7" + "src": "4582:30:8" }, { "expression": { "argumentTypes": null, - "id": 952, + "id": 1210, "isConstant": false, "isLValue": false, "isPure": false, @@ -3107,34 +3138,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 936, + "id": 1194, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "4553:8:7", + "referencedDeclaration": 986, + "src": "4619:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 940, + "id": 1198, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 937, + "id": 1195, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "4562:3:7", + "referencedDeclaration": 1622, + "src": "4628:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 938, + "id": 1196, "isConstant": false, "isLValue": false, "isPure": false, @@ -3142,7 +3173,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4562:10:7", + "src": "4628:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3153,21 +3184,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4553:20:7", + "src": "4619:20:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 941, + "id": 1199, "indexExpression": { "argumentTypes": null, - "id": 939, + "id": 1197, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "4574:7:7", + "referencedDeclaration": 1179, + "src": "4640:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3178,7 +3209,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4553:29:7", + "src": "4619:29:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3194,12 +3225,12 @@ "arguments": [ { "argumentTypes": null, - "id": 949, + "id": 1207, "name": "subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 923, - "src": "4627:15:7", + "referencedDeclaration": 1181, + "src": "4693:15:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3219,34 +3250,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 942, + "id": 1200, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "4593:8:7", + "referencedDeclaration": 986, + "src": "4659:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 945, + "id": 1203, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 943, + "id": 1201, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "4602:3:7", + "referencedDeclaration": 1622, + "src": "4668:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 944, + "id": 1202, "isConstant": false, "isLValue": false, "isPure": false, @@ -3254,7 +3285,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4602:10:7", + "src": "4668:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3265,21 +3296,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4593:20:7", + "src": "4659:20:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 947, + "id": 1205, "indexExpression": { "argumentTypes": null, - "id": 946, + "id": 1204, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "4614:7:7", + "referencedDeclaration": 1179, + "src": "4680:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3290,27 +3321,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4593:29:7", + "src": "4659:29:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 948, + "id": 1206, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 664, - "src": "4593:33:7", + "referencedDeclaration": 806, + "src": "4659:33:8", "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": 950, + "id": 1208, "isConstant": false, "isLValue": false, "isPure": false, @@ -3318,35 +3349,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4593:50:7", + "src": "4659:50:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 951, + "id": 1209, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4585:59:7", + "src": "4651:59:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4553:91:7", + "src": "4619:91:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 953, + "id": 1211, "nodeType": "ExpressionStatement", - "src": "4553:91:7" + "src": "4619:91:8" }, { "eventCall": { @@ -3356,18 +3387,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 955, + "id": 1213, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "4664:3:7", + "referencedDeclaration": 1622, + "src": "4730:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 956, + "id": 1214, "isConstant": false, "isLValue": false, "isPure": false, @@ -3375,7 +3406,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4664:10:7", + "src": "4730:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3383,12 +3414,12 @@ }, { "argumentTypes": null, - "id": 957, + "id": 1215, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "4676:7:7", + "referencedDeclaration": 1179, + "src": "4742:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3400,34 +3431,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 958, + "id": 1216, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "4685:8:7", + "referencedDeclaration": 986, + "src": "4751:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 961, + "id": 1219, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 959, + "id": 1217, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "4694:3:7", + "referencedDeclaration": 1622, + "src": "4760:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 960, + "id": 1218, "isConstant": false, "isLValue": false, "isPure": false, @@ -3435,7 +3466,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4694:10:7", + "src": "4760:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3446,21 +3477,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4685:20:7", + "src": "4751:20:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 963, + "id": 1221, "indexExpression": { "argumentTypes": null, - "id": 962, + "id": 1220, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "4706:7:7", + "referencedDeclaration": 1179, + "src": "4772:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3471,7 +3502,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4685:29:7", + "src": "4751:29:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3493,18 +3524,18 @@ "typeString": "uint256" } ], - "id": 954, + "id": 1212, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1279, - "src": "4655:8:7", + "referencedDeclaration": 1550, + "src": "4721:8:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 964, + "id": 1222, "isConstant": false, "isLValue": false, "isPure": false, @@ -3512,28 +3543,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4655:60:7", + "src": "4721:60:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 965, + "id": 1223, "nodeType": "EmitStatement", - "src": "4650:65:7" + "src": "4716:65:8" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 966, + "id": 1224, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4728:4:7", + "src": "4794:4:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3541,15 +3572,15 @@ }, "value": "true" }, - "functionReturnParameters": 927, - "id": 967, + "functionReturnParameters": 1185, + "id": 1225, "nodeType": "Return", - "src": "4721:11:7" + "src": "4787:11:8" } ] }, "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\napprove should be called when allowed_[_spender] == 0. To decrement\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param spender The address which will spend the funds.\n@param subtractedValue The amount of tokens to decrease the allowance by.", - "id": 969, + "id": 1227, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3557,16 +3588,16 @@ "name": "decreaseAllowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 924, + "id": 1182, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 921, + "id": 1179, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 969, - "src": "4429:15:7", + "scope": 1227, + "src": "4495:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3574,10 +3605,10 @@ "typeString": "address" }, "typeName": { - "id": 920, + "id": 1178, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4429:7:7", + "src": "4495:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3588,11 +3619,11 @@ }, { "constant": false, - "id": 923, + "id": 1181, "name": "subtractedValue", "nodeType": "VariableDeclaration", - "scope": 969, - "src": "4450:23:7", + "scope": 1227, + "src": "4516:23:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3600,10 +3631,10 @@ "typeString": "uint256" }, "typeName": { - "id": 922, + "id": 1180, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4450:7:7", + "src": "4516:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3613,20 +3644,20 @@ "visibility": "internal" } ], - "src": "4423:54:7" + "src": "4489:54:8" }, "payable": false, "returnParameters": { - "id": 927, + "id": 1185, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 926, + "id": 1184, "name": "", "nodeType": "VariableDeclaration", - "scope": 969, - "src": "4502:4:7", + "scope": 1227, + "src": "4568:4:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3634,10 +3665,10 @@ "typeString": "bool" }, "typeName": { - "id": 925, + "id": 1183, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4502:4:7", + "src": "4568:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3647,19 +3678,19 @@ "visibility": "internal" } ], - "src": "4501:6:7" + "src": "4567:6:8" }, - "scope": 1153, - "src": "4397:340:7", + "scope": 1415, + "src": "4463:340:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1022, + "id": 1280, "nodeType": "Block", - "src": "5006:208:7", + "src": "5072:208:8", "statements": [ { "expression": { @@ -3671,19 +3702,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 983, + "id": 1241, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 979, + "id": 1237, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "5020:5:7", + "referencedDeclaration": 1233, + "src": "5086:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3695,26 +3726,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 980, + "id": 1238, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "5029:9:7", + "referencedDeclaration": 980, + "src": "5095:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 982, + "id": 1240, "indexExpression": { "argumentTypes": null, - "id": 981, + "id": 1239, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "5039:4:7", + "referencedDeclaration": 1229, + "src": "5105:4:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3725,13 +3756,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5029:15:7", + "src": "5095:15:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5020:24:7", + "src": "5086:24:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3745,21 +3776,21 @@ "typeString": "bool" } ], - "id": 978, + "id": 1236, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "5012:7:7", + "referencedDeclaration": 1625, + "src": "5078:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 984, + "id": 1242, "isConstant": false, "isLValue": false, "isPure": false, @@ -3767,15 +3798,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5012:33:7", + "src": "5078:33:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 985, + "id": 1243, "nodeType": "ExpressionStatement", - "src": "5012:33:7" + "src": "5078:33:8" }, { "expression": { @@ -3787,19 +3818,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 991, + "id": 1249, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 987, + "id": 1245, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 973, - "src": "5059:2:7", + "referencedDeclaration": 1231, + "src": "5125:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3813,14 +3844,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 989, + "id": 1247, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5073:1:7", + "src": "5139:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3836,20 +3867,20 @@ "typeString": "int_const 0" } ], - "id": 988, + "id": 1246, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5065:7:7", + "src": "5131:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 990, + "id": 1248, "isConstant": false, "isLValue": false, "isPure": true, @@ -3857,13 +3888,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5065:10:7", + "src": "5131:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5059:16:7", + "src": "5125:16:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3877,21 +3908,21 @@ "typeString": "bool" } ], - "id": 986, + "id": 1244, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "5051:7:7", + "referencedDeclaration": 1625, + "src": "5117:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 992, + "id": 1250, "isConstant": false, "isLValue": false, "isPure": false, @@ -3899,20 +3930,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5051:25:7", + "src": "5117:25:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 993, + "id": 1251, "nodeType": "ExpressionStatement", - "src": "5051:25:7" + "src": "5117:25:8" }, { "expression": { "argumentTypes": null, - "id": 1003, + "id": 1261, "isConstant": false, "isLValue": false, "isPure": false, @@ -3921,26 +3952,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 994, + "id": 1252, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "5083:9:7", + "referencedDeclaration": 980, + "src": "5149:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 996, + "id": 1254, "indexExpression": { "argumentTypes": null, - "id": 995, + "id": 1253, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "5093:4:7", + "referencedDeclaration": 1229, + "src": "5159:4:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3951,7 +3982,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5083:15:7", + "src": "5149:15:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3964,12 +3995,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1001, + "id": 1259, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "5121:5:7", + "referencedDeclaration": 1233, + "src": "5187:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3987,26 +4018,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 997, + "id": 1255, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "5101:9:7", + "referencedDeclaration": 980, + "src": "5167:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 999, + "id": 1257, "indexExpression": { "argumentTypes": null, - "id": 998, + "id": 1256, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "5111:4:7", + "referencedDeclaration": 1229, + "src": "5177:4:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4017,27 +4048,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5101:15:7", + "src": "5167:15:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1000, + "id": 1258, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 664, - "src": "5101:19:7", + "referencedDeclaration": 806, + "src": "5167:19:8", "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": 1002, + "id": 1260, "isConstant": false, "isLValue": false, "isPure": false, @@ -4045,26 +4076,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5101:26:7", + "src": "5167:26:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5083:44:7", + "src": "5149:44:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1004, + "id": 1262, "nodeType": "ExpressionStatement", - "src": "5083:44:7" + "src": "5149:44:8" }, { "expression": { "argumentTypes": null, - "id": 1014, + "id": 1272, "isConstant": false, "isLValue": false, "isPure": false, @@ -4073,26 +4104,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1005, + "id": 1263, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "5133:9:7", + "referencedDeclaration": 980, + "src": "5199:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1007, + "id": 1265, "indexExpression": { "argumentTypes": null, - "id": 1006, + "id": 1264, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 973, - "src": "5143:2:7", + "referencedDeclaration": 1231, + "src": "5209:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4103,7 +4134,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5133:13:7", + "src": "5199:13:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4116,12 +4147,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1012, + "id": 1270, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "5167:5:7", + "referencedDeclaration": 1233, + "src": "5233:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4139,26 +4170,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1008, + "id": 1266, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "5149:9:7", + "referencedDeclaration": 980, + "src": "5215:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1010, + "id": 1268, "indexExpression": { "argumentTypes": null, - "id": 1009, + "id": 1267, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 973, - "src": "5159:2:7", + "referencedDeclaration": 1231, + "src": "5225:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4169,27 +4200,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5149:13:7", + "src": "5215:13:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1011, + "id": 1269, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 688, - "src": "5149:17:7", + "referencedDeclaration": 830, + "src": "5215:17:8", "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": 1013, + "id": 1271, "isConstant": false, "isLValue": false, "isPure": false, @@ -4197,21 +4228,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5149:24:7", + "src": "5215:24:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5133:40:7", + "src": "5199:40:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1015, + "id": 1273, "nodeType": "ExpressionStatement", - "src": "5133:40:7" + "src": "5199:40:8" }, { "eventCall": { @@ -4219,12 +4250,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1017, + "id": 1275, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "5193:4:7", + "referencedDeclaration": 1229, + "src": "5259:4:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4232,12 +4263,12 @@ }, { "argumentTypes": null, - "id": 1018, + "id": 1276, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 973, - "src": "5199:2:7", + "referencedDeclaration": 1231, + "src": "5265:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4245,12 +4276,12 @@ }, { "argumentTypes": null, - "id": 1019, + "id": 1277, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "5203:5:7", + "referencedDeclaration": 1233, + "src": "5269:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4272,18 +4303,18 @@ "typeString": "uint256" } ], - "id": 1016, + "id": 1274, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1271, - "src": "5184:8:7", + "referencedDeclaration": 1542, + "src": "5250:8:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 1020, + "id": 1278, "isConstant": false, "isLValue": false, "isPure": false, @@ -4291,20 +4322,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5184:25:7", + "src": "5250:25:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1021, + "id": 1279, "nodeType": "EmitStatement", - "src": "5179:30:7" + "src": "5245:30:8" } ] }, "documentation": "@dev Transfer token for a specified addresses\n@param from The address to transfer from.\n@param to The address to transfer to.\n@param value The amount to be transferred.", - "id": 1023, + "id": 1281, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4312,16 +4343,16 @@ "name": "_transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 976, + "id": 1234, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 971, + "id": 1229, "name": "from", "nodeType": "VariableDeclaration", - "scope": 1023, - "src": "4956:12:7", + "scope": 1281, + "src": "5022:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4329,10 +4360,10 @@ "typeString": "address" }, "typeName": { - "id": 970, + "id": 1228, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4956:7:7", + "src": "5022:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4343,11 +4374,11 @@ }, { "constant": false, - "id": 973, + "id": 1231, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1023, - "src": "4970:10:7", + "scope": 1281, + "src": "5036:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4355,10 +4386,10 @@ "typeString": "address" }, "typeName": { - "id": 972, + "id": 1230, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4970:7:7", + "src": "5036:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4369,11 +4400,11 @@ }, { "constant": false, - "id": 975, + "id": 1233, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1023, - "src": "4982:13:7", + "scope": 1281, + "src": "5048:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4381,10 +4412,10 @@ "typeString": "uint256" }, "typeName": { - "id": 974, + "id": 1232, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4982:7:7", + "src": "5048:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4394,26 +4425,26 @@ "visibility": "internal" } ], - "src": "4955:41:7" + "src": "5021:41:8" }, "payable": false, "returnParameters": { - "id": 977, + "id": 1235, "nodeType": "ParameterList", "parameters": [], - "src": "5006:0:7" + "src": "5072:0:8" }, - "scope": 1153, - "src": "4937:277:7", + "scope": 1415, + "src": "5003:277:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1062, + "id": 1320, "nodeType": "Block", - "src": "5597:179:7", + "src": "5665:182:8", "statements": [ { "expression": { @@ -4425,19 +4456,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1033, + "id": 1291, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1031, + "id": 1289, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "5611:7:7", + "referencedDeclaration": 1283, + "src": "5679:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4448,14 +4479,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1032, + "id": 1290, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5622:1:7", + "src": "5690:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4463,7 +4494,7 @@ }, "value": "0" }, - "src": "5611:12:7", + "src": "5679:12:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4477,21 +4508,21 @@ "typeString": "bool" } ], - "id": 1030, + "id": 1288, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "5603:7:7", + "referencedDeclaration": 1625, + "src": "5671:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1034, + "id": 1292, "isConstant": false, "isLValue": false, "isPure": false, @@ -4499,32 +4530,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5603:21:7", + "src": "5671:21:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1035, + "id": 1293, "nodeType": "ExpressionStatement", - "src": "5603:21:7" + "src": "5671:21:8" }, { "expression": { "argumentTypes": null, - "id": 1041, + "id": 1299, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1036, + "id": 1294, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "5630:12:7", + "referencedDeclaration": 988, + "src": "5698:12:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4537,12 +4568,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1039, - "name": "value", + "id": 1297, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "5662:5:7", + "referencedDeclaration": 1285, + "src": "5730:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4558,32 +4589,32 @@ ], "expression": { "argumentTypes": null, - "id": 1037, + "id": 1295, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "5645:12:7", + "referencedDeclaration": 988, + "src": "5713:12:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1038, + "id": 1296, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 688, - "src": "5645:16:7", + "referencedDeclaration": 830, + "src": "5713:16:8", "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": 1040, + "id": 1298, "isConstant": false, "isLValue": false, "isPure": false, @@ -4591,26 +4622,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5645:23:7", + "src": "5713:24:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5630:38:7", + "src": "5698:39:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1042, + "id": 1300, "nodeType": "ExpressionStatement", - "src": "5630:38:7" + "src": "5698:39:8" }, { "expression": { "argumentTypes": null, - "id": 1052, + "id": 1310, "isConstant": false, "isLValue": false, "isPure": false, @@ -4619,26 +4650,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1043, + "id": 1301, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "5674:9:7", + "referencedDeclaration": 980, + "src": "5743:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1045, + "id": 1303, "indexExpression": { "argumentTypes": null, - "id": 1044, + "id": 1302, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "5684:7:7", + "referencedDeclaration": 1283, + "src": "5753:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4649,7 +4680,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5674:18:7", + "src": "5743:18:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4662,12 +4693,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1050, - "name": "value", + "id": 1308, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "5718:5:7", + "referencedDeclaration": 1285, + "src": "5787:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4685,26 +4716,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1046, + "id": 1304, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "5695:9:7", + "referencedDeclaration": 980, + "src": "5764:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1048, + "id": 1306, "indexExpression": { "argumentTypes": null, - "id": 1047, + "id": 1305, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "5705:7:7", + "referencedDeclaration": 1283, + "src": "5774:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4715,27 +4746,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5695:18:7", + "src": "5764:18:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1049, + "id": 1307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 688, - "src": "5695:22:7", + "referencedDeclaration": 830, + "src": "5764:22:8", "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": 1051, + "id": 1309, "isConstant": false, "isLValue": false, "isPure": false, @@ -4743,21 +4774,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5695:29:7", + "src": "5764:30:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5674:50:7", + "src": "5743:51:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1053, + "id": 1311, "nodeType": "ExpressionStatement", - "src": "5674:50:7" + "src": "5743:51:8" }, { "eventCall": { @@ -4769,14 +4800,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1056, + "id": 1314, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5752:1:7", + "src": "5822:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4792,20 +4823,20 @@ "typeString": "int_const 0" } ], - "id": 1055, + "id": 1313, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5744:7:7", + "src": "5814:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1057, + "id": 1315, "isConstant": false, "isLValue": false, "isPure": true, @@ -4813,7 +4844,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5744:10:7", + "src": "5814:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4821,12 +4852,12 @@ }, { "argumentTypes": null, - "id": 1058, + "id": 1316, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "5756:7:7", + "referencedDeclaration": 1283, + "src": "5826:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4834,12 +4865,12 @@ }, { "argumentTypes": null, - "id": 1059, - "name": "value", + "id": 1317, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "5765:5:7", + "referencedDeclaration": 1285, + "src": "5835:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4861,18 +4892,18 @@ "typeString": "uint256" } ], - "id": 1054, + "id": 1312, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1271, - "src": "5735:8:7", + "referencedDeclaration": 1542, + "src": "5805:8:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 1060, + "id": 1318, "isConstant": false, "isLValue": false, "isPure": false, @@ -4880,20 +4911,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5735:36:7", + "src": "5805:37:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1061, + "id": 1319, "nodeType": "EmitStatement", - "src": "5730:41:7" + "src": "5800:42:8" } ] }, - "documentation": "@dev Internal function that mints an amount of the token and assigns it to\nan account. This encapsulates the modification of balances such that the\nproper events are emitted.\n@param account The account that will receive the created tokens.\n@param value The amount that will be created.", - "id": 1063, + "documentation": "@dev Internal function that mints an amount of the token and assigns it to\nan account. This encapsulates the modification of balances such that the\nproper events are emitted.\n@param account The account that will receive the created tokens.\n@param amount The amount that will be created.", + "id": 1321, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4901,16 +4932,16 @@ "name": "_mint", "nodeType": "FunctionDefinition", "parameters": { - "id": 1028, + "id": 1286, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1025, + "id": 1283, "name": "account", "nodeType": "VariableDeclaration", - "scope": 1063, - "src": "5556:15:7", + "scope": 1321, + "src": "5623:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4918,10 +4949,10 @@ "typeString": "address" }, "typeName": { - "id": 1024, + "id": 1282, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5556:7:7", + "src": "5623:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4932,11 +4963,11 @@ }, { "constant": false, - "id": 1027, - "name": "value", + "id": 1285, + "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1063, - "src": "5573:13:7", + "scope": 1321, + "src": "5640:14:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4944,10 +4975,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1026, + "id": 1284, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5573:7:7", + "src": "5640:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4957,26 +4988,26 @@ "visibility": "internal" } ], - "src": "5555:32:7" + "src": "5622:33:8" }, "payable": false, "returnParameters": { - "id": 1029, + "id": 1287, "nodeType": "ParameterList", "parameters": [], - "src": "5597:0:7" + "src": "5665:0:8" }, - "scope": 1153, - "src": "5541:235:7", + "scope": 1415, + "src": "5608:239:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1110, + "id": 1368, "nodeType": "Block", - "src": "6044:222:7", + "src": "6117:226:8", "statements": [ { "expression": { @@ -4988,19 +5019,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1073, + "id": 1331, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1071, + "id": 1329, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1065, - "src": "6058:7:7", + "referencedDeclaration": 1323, + "src": "6131:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5011,14 +5042,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1072, + "id": 1330, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6069:1:7", + "src": "6142:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5026,7 +5057,7 @@ }, "value": "0" }, - "src": "6058:12:7", + "src": "6131:12:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5040,21 +5071,21 @@ "typeString": "bool" } ], - "id": 1070, + "id": 1328, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "6050:7:7", + "referencedDeclaration": 1625, + "src": "6123:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1074, + "id": 1332, "isConstant": false, "isLValue": false, "isPure": false, @@ -5062,15 +5093,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6050:21:7", + "src": "6123:21:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1075, + "id": 1333, "nodeType": "ExpressionStatement", - "src": "6050:21:7" + "src": "6123:21:8" }, { "expression": { @@ -5082,19 +5113,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1081, + "id": 1339, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1077, - "name": "value", + "id": 1335, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1067, - "src": "6085:5:7", + "referencedDeclaration": 1325, + "src": "6158:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5106,26 +5137,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1078, + "id": 1336, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "6094:9:7", + "referencedDeclaration": 980, + "src": "6168:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1080, + "id": 1338, "indexExpression": { "argumentTypes": null, - "id": 1079, + "id": 1337, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1065, - "src": "6104:7:7", + "referencedDeclaration": 1323, + "src": "6178:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5136,13 +5167,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6094:18:7", + "src": "6168:18:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6085:27:7", + "src": "6158:28:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5156,21 +5187,21 @@ "typeString": "bool" } ], - "id": 1076, + "id": 1334, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "6077:7:7", + "referencedDeclaration": 1625, + "src": "6150:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1082, + "id": 1340, "isConstant": false, "isLValue": false, "isPure": false, @@ -5178,32 +5209,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6077:36:7", + "src": "6150:37:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1083, + "id": 1341, "nodeType": "ExpressionStatement", - "src": "6077:36:7" + "src": "6150:37:8" }, { "expression": { "argumentTypes": null, - "id": 1089, + "id": 1347, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1084, + "id": 1342, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "6120:12:7", + "referencedDeclaration": 988, + "src": "6194:12:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5216,12 +5247,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1087, - "name": "value", + "id": 1345, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1067, - "src": "6152:5:7", + "referencedDeclaration": 1325, + "src": "6226:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5237,32 +5268,32 @@ ], "expression": { "argumentTypes": null, - "id": 1085, + "id": 1343, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "6135:12:7", + "referencedDeclaration": 988, + "src": "6209:12:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1086, + "id": 1344, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 664, - "src": "6135:16:7", + "referencedDeclaration": 806, + "src": "6209:16:8", "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": 1088, + "id": 1346, "isConstant": false, "isLValue": false, "isPure": false, @@ -5270,26 +5301,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6135:23:7", + "src": "6209:24:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6120:38:7", + "src": "6194:39:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1090, + "id": 1348, "nodeType": "ExpressionStatement", - "src": "6120:38:7" + "src": "6194:39:8" }, { "expression": { "argumentTypes": null, - "id": 1100, + "id": 1358, "isConstant": false, "isLValue": false, "isPure": false, @@ -5298,26 +5329,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1091, + "id": 1349, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "6164:9:7", + "referencedDeclaration": 980, + "src": "6239:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1093, + "id": 1351, "indexExpression": { "argumentTypes": null, - "id": 1092, + "id": 1350, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1065, - "src": "6174:7:7", + "referencedDeclaration": 1323, + "src": "6249:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5328,7 +5359,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6164:18:7", + "src": "6239:18:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5341,12 +5372,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1098, - "name": "value", + "id": 1356, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1067, - "src": "6208:5:7", + "referencedDeclaration": 1325, + "src": "6283:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5364,26 +5395,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1094, + "id": 1352, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "6185:9:7", + "referencedDeclaration": 980, + "src": "6260:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1096, + "id": 1354, "indexExpression": { "argumentTypes": null, - "id": 1095, + "id": 1353, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1065, - "src": "6195:7:7", + "referencedDeclaration": 1323, + "src": "6270:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5394,27 +5425,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6185:18:7", + "src": "6260:18:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1097, + "id": 1355, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 664, - "src": "6185:22:7", + "referencedDeclaration": 806, + "src": "6260:22:8", "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": 1099, + "id": 1357, "isConstant": false, "isLValue": false, "isPure": false, @@ -5422,21 +5453,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6185:29:7", + "src": "6260:30:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6164:50:7", + "src": "6239:51:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1101, + "id": 1359, "nodeType": "ExpressionStatement", - "src": "6164:50:7" + "src": "6239:51:8" }, { "eventCall": { @@ -5444,12 +5475,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1103, + "id": 1361, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1065, - "src": "6234:7:7", + "referencedDeclaration": 1323, + "src": "6310:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5461,14 +5492,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1105, + "id": 1363, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6251:1:7", + "src": "6327:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5484,20 +5515,20 @@ "typeString": "int_const 0" } ], - "id": 1104, + "id": 1362, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6243:7:7", + "src": "6319:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1106, + "id": 1364, "isConstant": false, "isLValue": false, "isPure": true, @@ -5505,7 +5536,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6243:10:7", + "src": "6319:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5513,12 +5544,12 @@ }, { "argumentTypes": null, - "id": 1107, - "name": "value", + "id": 1365, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1067, - "src": "6255:5:7", + "referencedDeclaration": 1325, + "src": "6331:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5540,18 +5571,18 @@ "typeString": "uint256" } ], - "id": 1102, + "id": 1360, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1271, - "src": "6225:8:7", + "referencedDeclaration": 1542, + "src": "6301:8:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 1108, + "id": 1366, "isConstant": false, "isLValue": false, "isPure": false, @@ -5559,20 +5590,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6225:36:7", + "src": "6301:37:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1109, + "id": 1367, "nodeType": "EmitStatement", - "src": "6220:41:7" + "src": "6296:42:8" } ] }, - "documentation": "@dev Internal function that burns an amount of the token of a given\naccount.\n@param account The account whose tokens will be burnt.\n@param value The amount that will be burnt.", - "id": 1111, + "documentation": "@dev Internal function that burns an amount of the token of a given\naccount.\n@param account The account whose tokens will be burnt.\n@param amount The amount that will be burnt.", + "id": 1369, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5580,16 +5611,16 @@ "name": "_burn", "nodeType": "FunctionDefinition", "parameters": { - "id": 1068, + "id": 1326, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1065, + "id": 1323, "name": "account", "nodeType": "VariableDeclaration", - "scope": 1111, - "src": "6003:15:7", + "scope": 1369, + "src": "6075:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5597,10 +5628,10 @@ "typeString": "address" }, "typeName": { - "id": 1064, + "id": 1322, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6003:7:7", + "src": "6075:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5611,11 +5642,11 @@ }, { "constant": false, - "id": 1067, - "name": "value", + "id": 1325, + "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1111, - "src": "6020:13:7", + "scope": 1369, + "src": "6092:14:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5623,10 +5654,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1066, + "id": 1324, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6020:7:7", + "src": "6092:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5636,26 +5667,26 @@ "visibility": "internal" } ], - "src": "6002:32:7" + "src": "6074:33:8" }, "payable": false, "returnParameters": { - "id": 1069, + "id": 1327, "nodeType": "ParameterList", "parameters": [], - "src": "6044:0:7" + "src": "6117:0:8" }, - "scope": 1153, - "src": "5988:278:7", + "scope": 1415, + "src": "6060:283:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1151, + "id": 1409, "nodeType": "Block", - "src": "6632:330:7", + "src": "6711:333:8", "statements": [ { "expression": { @@ -5667,19 +5698,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1126, + "id": 1384, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1119, - "name": "value", + "id": 1377, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1115, - "src": "6646:5:7", + "referencedDeclaration": 1373, + "src": "6725:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5693,26 +5724,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1120, + "id": 1378, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "6655:8:7", + "referencedDeclaration": 986, + "src": "6735:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 1122, + "id": 1380, "indexExpression": { "argumentTypes": null, - "id": 1121, + "id": 1379, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "6664:7:7", + "referencedDeclaration": 1371, + "src": "6744:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5723,29 +5754,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6655:17:7", + "src": "6735:17:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1125, + "id": 1383, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1123, + "id": 1381, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "6673:3:7", + "referencedDeclaration": 1622, + "src": "6753:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1124, + "id": 1382, "isConstant": false, "isLValue": false, "isPure": false, @@ -5753,7 +5784,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6673:10:7", + "src": "6753:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5764,13 +5795,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6655:29:7", + "src": "6735:29:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6646:38:7", + "src": "6725:39:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5784,21 +5815,21 @@ "typeString": "bool" } ], - "id": 1118, + "id": 1376, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "6638:7:7", + "referencedDeclaration": 1625, + "src": "6717:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1127, + "id": 1385, "isConstant": false, "isLValue": false, "isPure": false, @@ -5806,20 +5837,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6638:47:7", + "src": "6717:48:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1128, + "id": 1386, "nodeType": "ExpressionStatement", - "src": "6638:47:7" + "src": "6717:48:8" }, { "expression": { "argumentTypes": null, - "id": 1144, + "id": 1402, "isConstant": false, "isLValue": false, "isPure": false, @@ -5830,26 +5861,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1129, + "id": 1387, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "6851:8:7", + "referencedDeclaration": 986, + "src": "6931:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 1133, + "id": 1391, "indexExpression": { "argumentTypes": null, - "id": 1130, + "id": 1388, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "6860:7:7", + "referencedDeclaration": 1371, + "src": "6940:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5860,29 +5891,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6851:17:7", + "src": "6931:17:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1134, + "id": 1392, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1131, + "id": 1389, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "6869:3:7", + "referencedDeclaration": 1622, + "src": "6949:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1132, + "id": 1390, "isConstant": false, "isLValue": false, "isPure": false, @@ -5890,7 +5921,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6869:10:7", + "src": "6949:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5901,7 +5932,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6851:29:7", + "src": "6931:29:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5914,12 +5945,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1142, - "name": "value", + "id": 1400, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1115, - "src": "6924:5:7", + "referencedDeclaration": 1373, + "src": "7004:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5939,26 +5970,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1135, + "id": 1393, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "6883:8:7", + "referencedDeclaration": 986, + "src": "6963:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 1137, + "id": 1395, "indexExpression": { "argumentTypes": null, - "id": 1136, + "id": 1394, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "6892:7:7", + "referencedDeclaration": 1371, + "src": "6972:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5969,29 +6000,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6883:17:7", + "src": "6963:17:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1140, + "id": 1398, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1138, + "id": 1396, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "6901:3:7", + "referencedDeclaration": 1622, + "src": "6981:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1139, + "id": 1397, "isConstant": false, "isLValue": false, "isPure": false, @@ -5999,7 +6030,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6901:10:7", + "src": "6981:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6010,27 +6041,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6883:29:7", + "src": "6963:29:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1141, + "id": 1399, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 664, - "src": "6883:33:7", + "referencedDeclaration": 806, + "src": "6963:33:8", "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": 1143, + "id": 1401, "isConstant": false, "isLValue": false, "isPure": false, @@ -6038,21 +6069,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6883:47:7", + "src": "6963:48:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6851:79:7", + "src": "6931:80:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1145, + "id": 1403, "nodeType": "ExpressionStatement", - "src": "6851:79:7" + "src": "6931:80:8" }, { "expression": { @@ -6060,12 +6091,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1147, + "id": 1405, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "6942:7:7", + "referencedDeclaration": 1371, + "src": "7023:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6073,12 +6104,12 @@ }, { "argumentTypes": null, - "id": 1148, - "name": "value", + "id": 1406, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1115, - "src": "6951:5:7", + "referencedDeclaration": 1373, + "src": "7032:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6096,18 +6127,18 @@ "typeString": "uint256" } ], - "id": 1146, + "id": 1404, "name": "_burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "6936:5:7", + "referencedDeclaration": 1369, + "src": "7017:5:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 1149, + "id": 1407, "isConstant": false, "isLValue": false, "isPure": false, @@ -6115,20 +6146,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6936:21:7", + "src": "7017:22:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1150, + "id": 1408, "nodeType": "ExpressionStatement", - "src": "6936:21:7" + "src": "7017:22:8" } ] }, - "documentation": "@dev Internal function that burns an amount of the token of a given\naccount, deducting from the sender's allowance for said account. Uses the\ninternal burn function.\n@param account The account whose tokens will be burnt.\n@param value The amount that will be burnt.", - "id": 1152, + "documentation": "@dev Internal function that burns an amount of the token of a given\naccount, deducting from the sender's allowance for said account. Uses the\ninternal burn function.\n@param account The account whose tokens will be burnt.\n@param amount The amount that will be burnt.", + "id": 1410, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6136,16 +6167,16 @@ "name": "_burnFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 1116, + "id": 1374, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1113, + "id": 1371, "name": "account", "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "6591:15:7", + "scope": 1410, + "src": "6669:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6153,10 +6184,10 @@ "typeString": "address" }, "typeName": { - "id": 1112, + "id": 1370, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6591:7:7", + "src": "6669:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6167,11 +6198,11 @@ }, { "constant": false, - "id": 1115, - "name": "value", + "id": 1373, + "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "6608:13:7", + "scope": 1410, + "src": "6686:14:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6179,10 +6210,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1114, + "id": 1372, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6608:7:7", + "src": "6686:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6192,40 +6223,93 @@ "visibility": "internal" } ], - "src": "6590:32:7" + "src": "6668:33:8" }, "payable": false, "returnParameters": { - "id": 1117, + "id": 1375, "nodeType": "ParameterList", "parameters": [], - "src": "6632:0:7" + "src": "6711:0:8" }, - "scope": 1153, - "src": "6572:390:7", + "scope": 1415, + "src": "6650:394:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" + }, + { + "constant": false, + "id": 1414, + "name": "______gap", + "nodeType": "VariableDeclaration", + "scope": 1415, + "src": "7048:29:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage", + "typeString": "uint256[50]" + }, + "typeName": { + "baseType": { + "id": 1411, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7048:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1413, + "length": { + "argumentTypes": null, + "hexValue": "3530", + "id": 1412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7056:2:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "50" + }, + "nodeType": "ArrayTypeName", + "src": "7048:11:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", + "typeString": "uint256[50]" + } + }, + "value": null, + "visibility": "private" } ], - "scope": 1154, - "src": "369:6595:7" + "scope": 1416, + "src": "416:6664:8" } ], - "src": "0:6965:7" + "src": "0:7081:8" }, "legacyAST": { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", "exportedSymbols": { "ERC20": [ - 1153 + 1415 ] }, - "id": 1154, + "id": 1416, "nodeType": "SourceUnit", "nodes": [ { - "id": 711, + "id": 966, "literals": [ "solidity", "^", @@ -6233,27 +6317,38 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:7" + "src": "0:24:8" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "absolutePath": "zos-lib/contracts/Initializable.sol", + "file": "zos-lib/contracts/Initializable.sol", + "id": 967, + "nodeType": "ImportDirective", + "scope": 1416, + "sourceUnit": 1608, + "src": "26:45:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/IERC20.sol", "file": "./IERC20.sol", - "id": 712, + "id": 968, "nodeType": "ImportDirective", - "scope": 1154, - "sourceUnit": 1281, - "src": "26:22:7", + "scope": 1416, + "sourceUnit": 1552, + "src": "72:22:8", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "absolutePath": "openzeppelin-eth/contracts/math/SafeMath.sol", "file": "../../math/SafeMath.sol", - "id": 713, + "id": 969, "nodeType": "ImportDirective", - "scope": 1154, - "sourceUnit": 710, - "src": "49:33:7", + "scope": 1416, + "sourceUnit": 852, + "src": "95:33:8", "symbolAliases": [], "unitAlias": "" }, @@ -6263,56 +6358,76 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 714, + "id": 970, + "name": "Initializable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1607, + "src": "434:13:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Initializable_$1607", + "typeString": "contract Initializable" + } + }, + "id": 971, + "nodeType": "InheritanceSpecifier", + "src": "434:13:8" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 972, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1280, - "src": "387:6:7", + "referencedDeclaration": 1551, + "src": "449:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1280", + "typeIdentifier": "t_contract$_IERC20_$1551", "typeString": "contract IERC20" } }, - "id": 715, + "id": 973, "nodeType": "InheritanceSpecifier", - "src": "387:6:7" + "src": "449:6:8" } ], "contractDependencies": [ - 1280 + 1551, + 1607 ], "contractKind": "contract", "documentation": "@title Standard ERC20 token\n * @dev Implementation of the basic standard token.\nhttps://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\nOriginally based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol", "fullyImplemented": true, - "id": 1153, + "id": 1415, "linearizedBaseContracts": [ - 1153, - 1280 + 1415, + 1551, + 1607 ], "name": "ERC20", "nodeType": "ContractDefinition", "nodes": [ { - "id": 718, + "id": 976, "libraryName": { "contractScope": null, - "id": 716, + "id": 974, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 709, - "src": "404:8:7", + "referencedDeclaration": 851, + "src": "466:8:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$709", + "typeIdentifier": "t_contract$_SafeMath_$851", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "398:27:7", + "src": "460:27:8", "typeName": { - "id": 717, + "id": 975, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "417:7:7", + "src": "479:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6321,11 +6436,11 @@ }, { "constant": false, - "id": 722, + "id": 980, "name": "_balances", "nodeType": "VariableDeclaration", - "scope": 1153, - "src": "429:46:7", + "scope": 1415, + "src": "491:46:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -6333,28 +6448,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 721, + "id": 979, "keyType": { - "id": 719, + "id": 977, "name": "address", "nodeType": "ElementaryTypeName", - "src": "438:7:7", + "src": "500:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "429:28:7", + "src": "491:28:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 720, + "id": 978, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "449:7:7", + "src": "511:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6366,11 +6481,11 @@ }, { "constant": false, - "id": 728, + "id": 986, "name": "_allowed", "nodeType": "VariableDeclaration", - "scope": 1153, - "src": "480:66:7", + "scope": 1415, + "src": "542:66:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -6378,46 +6493,46 @@ "typeString": "mapping(address => mapping(address => uint256))" }, "typeName": { - "id": 727, + "id": 985, "keyType": { - "id": 723, + "id": 981, "name": "address", "nodeType": "ElementaryTypeName", - "src": "489:7:7", + "src": "551:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "480:49:7", + "src": "542:49:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" }, "valueType": { - "id": 726, + "id": 984, "keyType": { - "id": 724, + "id": 982, "name": "address", "nodeType": "ElementaryTypeName", - "src": "509:7:7", + "src": "571:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "500:28:7", + "src": "562:28:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 725, + "id": 983, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "520:7:7", + "src": "582:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6430,11 +6545,11 @@ }, { "constant": false, - "id": 730, + "id": 988, "name": "_totalSupply", "nodeType": "VariableDeclaration", - "scope": 1153, - "src": "551:28:7", + "scope": 1415, + "src": "613:28:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -6442,10 +6557,10 @@ "typeString": "uint256" }, "typeName": { - "id": 729, + "id": 987, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "551:7:7", + "src": "613:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6456,33 +6571,33 @@ }, { "body": { - "id": 737, + "id": 995, "nodeType": "Block", - "src": "693:30:7", + "src": "755:30:8", "statements": [ { "expression": { "argumentTypes": null, - "id": 735, + "id": 993, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "706:12:7", + "referencedDeclaration": 988, + "src": "768:12:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 734, - "id": 736, + "functionReturnParameters": 992, + "id": 994, "nodeType": "Return", - "src": "699:19:7" + "src": "761:19:8" } ] }, "documentation": "@dev Total number of tokens in existence", - "id": 738, + "id": 996, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6490,23 +6605,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 731, + "id": 989, "nodeType": "ParameterList", "parameters": [], - "src": "660:2:7" + "src": "722:2:8" }, "payable": false, "returnParameters": { - "id": 734, + "id": 992, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 733, + "id": 991, "name": "", "nodeType": "VariableDeclaration", - "scope": 738, - "src": "684:7:7", + "scope": 996, + "src": "746:7:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6514,10 +6629,10 @@ "typeString": "uint256" }, "typeName": { - "id": 732, + "id": 990, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "684:7:7", + "src": "746:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6527,45 +6642,45 @@ "visibility": "internal" } ], - "src": "683:9:7" + "src": "745:9:8" }, - "scope": 1153, - "src": "640:83:7", + "scope": 1415, + "src": "702:83:8", "stateMutability": "view", - "superFunction": 1218, + "superFunction": 1489, "visibility": "public" }, { "body": { - "id": 749, + "id": 1007, "nodeType": "Block", - "src": "984:34:7", + "src": "1050:34:8", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 745, + "id": 1003, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "997:9:7", + "referencedDeclaration": 980, + "src": "1063:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 747, + "id": 1005, "indexExpression": { "argumentTypes": null, - "id": 746, + "id": 1004, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 740, - "src": "1007:5:7", + "referencedDeclaration": 998, + "src": "1073:5:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6576,21 +6691,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "997:16:7", + "src": "1063:16:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 744, - "id": 748, + "functionReturnParameters": 1002, + "id": 1006, "nodeType": "Return", - "src": "990:23:7" + "src": "1056:23:8" } ] }, - "documentation": "@dev Gets the balance of the specified address.\n@param owner The address to query the balance of.\n@return An uint256 representing the amount owned by the passed address.", - "id": 750, + "documentation": "@dev Gets the balance of the specified address.\n@param owner The address to query the the balance of.\n@return An uint256 representing the amount owned by the passed address.", + "id": 1008, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6598,16 +6713,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 741, + "id": 999, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 740, + "id": 998, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 750, - "src": "939:13:7", + "scope": 1008, + "src": "1005:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6615,10 +6730,10 @@ "typeString": "address" }, "typeName": { - "id": 739, + "id": 997, "name": "address", "nodeType": "ElementaryTypeName", - "src": "939:7:7", + "src": "1005:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6628,20 +6743,20 @@ "visibility": "internal" } ], - "src": "938:15:7" + "src": "1004:15:8" }, "payable": false, "returnParameters": { - "id": 744, + "id": 1002, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 743, + "id": 1001, "name": "", "nodeType": "VariableDeclaration", - "scope": 750, - "src": "975:7:7", + "scope": 1008, + "src": "1041:7:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6649,10 +6764,10 @@ "typeString": "uint256" }, "typeName": { - "id": 742, + "id": 1000, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "975:7:7", + "src": "1041:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6662,19 +6777,19 @@ "visibility": "internal" } ], - "src": "974:9:7" + "src": "1040:9:8" }, - "scope": 1153, - "src": "920:98:7", + "scope": 1415, + "src": "986:98:8", "stateMutability": "view", - "superFunction": 1225, + "superFunction": 1496, "visibility": "public" }, { "body": { - "id": 765, + "id": 1023, "nodeType": "Block", - "src": "1443:42:7", + "src": "1509:42:8", "statements": [ { "expression": { @@ -6683,26 +6798,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 759, + "id": 1017, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "1456:8:7", + "referencedDeclaration": 986, + "src": "1522:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 761, + "id": 1019, "indexExpression": { "argumentTypes": null, - "id": 760, + "id": 1018, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 752, - "src": "1465:5:7", + "referencedDeclaration": 1010, + "src": "1531:5:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6713,21 +6828,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1456:15:7", + "src": "1522:15:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 763, + "id": 1021, "indexExpression": { "argumentTypes": null, - "id": 762, + "id": 1020, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 754, - "src": "1472:7:7", + "referencedDeclaration": 1012, + "src": "1538:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6738,21 +6853,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1456:24:7", + "src": "1522:24:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 758, - "id": 764, + "functionReturnParameters": 1016, + "id": 1022, "nodeType": "Return", - "src": "1449:31:7" + "src": "1515:31:8" } ] }, "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\n@param owner address The address which owns the funds.\n@param spender address The address which will spend the funds.\n@return A uint256 specifying the amount of tokens still available for the spender.", - "id": 766, + "id": 1024, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6760,16 +6875,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 755, + "id": 1013, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 752, + "id": 1010, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 766, - "src": "1359:13:7", + "scope": 1024, + "src": "1425:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6777,10 +6892,10 @@ "typeString": "address" }, "typeName": { - "id": 751, + "id": 1009, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1359:7:7", + "src": "1425:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6791,11 +6906,11 @@ }, { "constant": false, - "id": 754, + "id": 1012, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 766, - "src": "1378:15:7", + "scope": 1024, + "src": "1444:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6803,10 +6918,10 @@ "typeString": "address" }, "typeName": { - "id": 753, + "id": 1011, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1378:7:7", + "src": "1444:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6816,20 +6931,20 @@ "visibility": "internal" } ], - "src": "1353:45:7" + "src": "1419:45:8" }, "payable": false, "returnParameters": { - "id": 758, + "id": 1016, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 757, + "id": 1015, "name": "", "nodeType": "VariableDeclaration", - "scope": 766, - "src": "1432:7:7", + "scope": 1024, + "src": "1498:7:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6837,10 +6952,10 @@ "typeString": "uint256" }, "typeName": { - "id": 756, + "id": 1014, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1432:7:7", + "src": "1498:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6850,19 +6965,19 @@ "visibility": "internal" } ], - "src": "1431:9:7" + "src": "1497:9:8" }, - "scope": 1153, - "src": "1335:150:7", + "scope": 1415, + "src": "1401:150:8", "stateMutability": "view", - "superFunction": 1234, + "superFunction": 1505, "visibility": "public" }, { "body": { - "id": 784, + "id": 1042, "nodeType": "Block", - "src": "1704:60:7", + "src": "1770:60:8", "statements": [ { "expression": { @@ -6872,18 +6987,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 776, + "id": 1034, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "1720:3:7", + "referencedDeclaration": 1622, + "src": "1786:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 777, + "id": 1035, "isConstant": false, "isLValue": false, "isPure": false, @@ -6891,7 +7006,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1720:10:7", + "src": "1786:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6899,12 +7014,12 @@ }, { "argumentTypes": null, - "id": 778, + "id": 1036, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 768, - "src": "1732:2:7", + "referencedDeclaration": 1026, + "src": "1798:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6912,12 +7027,12 @@ }, { "argumentTypes": null, - "id": 779, + "id": 1037, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "1736:5:7", + "referencedDeclaration": 1028, + "src": "1802:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6939,18 +7054,18 @@ "typeString": "uint256" } ], - "id": 775, + "id": 1033, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "1710:9:7", + "referencedDeclaration": 1281, + "src": "1776:9:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 780, + "id": 1038, "isConstant": false, "isLValue": false, "isPure": false, @@ -6958,28 +7073,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1710:32:7", + "src": "1776:32:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 781, + "id": 1039, "nodeType": "ExpressionStatement", - "src": "1710:32:7" + "src": "1776:32:8" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 782, + "id": 1040, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1755:4:7", + "src": "1821:4:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6987,15 +7102,15 @@ }, "value": "true" }, - "functionReturnParameters": 774, - "id": 783, + "functionReturnParameters": 1032, + "id": 1041, "nodeType": "Return", - "src": "1748:11:7" + "src": "1814:11:8" } ] }, "documentation": "@dev Transfer token for a specified address\n@param to The address to transfer to.\n@param value The amount to be transferred.", - "id": 785, + "id": 1043, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -7003,16 +7118,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 771, + "id": 1029, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 768, + "id": 1026, "name": "to", "nodeType": "VariableDeclaration", - "scope": 785, - "src": "1655:10:7", + "scope": 1043, + "src": "1721:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7020,10 +7135,10 @@ "typeString": "address" }, "typeName": { - "id": 767, + "id": 1025, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1655:7:7", + "src": "1721:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7034,11 +7149,11 @@ }, { "constant": false, - "id": 770, + "id": 1028, "name": "value", "nodeType": "VariableDeclaration", - "scope": 785, - "src": "1667:13:7", + "scope": 1043, + "src": "1733:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7046,10 +7161,10 @@ "typeString": "uint256" }, "typeName": { - "id": 769, + "id": 1027, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1667:7:7", + "src": "1733:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7059,20 +7174,20 @@ "visibility": "internal" } ], - "src": "1654:27:7" + "src": "1720:27:8" }, "payable": false, "returnParameters": { - "id": 774, + "id": 1032, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 773, + "id": 1031, "name": "", "nodeType": "VariableDeclaration", - "scope": 785, - "src": "1698:4:7", + "scope": 1043, + "src": "1764:4:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7080,10 +7195,10 @@ "typeString": "bool" }, "typeName": { - "id": 772, + "id": 1030, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1698:4:7", + "src": "1764:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7093,19 +7208,19 @@ "visibility": "internal" } ], - "src": "1697:6:7" + "src": "1763:6:8" }, - "scope": 1153, - "src": "1637:127:7", + "scope": 1415, + "src": "1703:127:8", "stateMutability": "nonpayable", - "superFunction": 1243, + "superFunction": 1514, "visibility": "public" }, { "body": { - "id": 820, + "id": 1078, "nodeType": "Block", - "src": "2451:149:7", + "src": "2517:149:8", "statements": [ { "expression": { @@ -7117,19 +7232,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 799, + "id": 1057, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 795, + "id": 1053, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 787, - "src": "2465:7:7", + "referencedDeclaration": 1045, + "src": "2531:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7143,14 +7258,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 797, + "id": 1055, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2484:1:7", + "src": "2550:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7166,20 +7281,20 @@ "typeString": "int_const 0" } ], - "id": 796, + "id": 1054, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2476:7:7", + "src": "2542:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 798, + "id": 1056, "isConstant": false, "isLValue": false, "isPure": true, @@ -7187,13 +7302,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2476:10:7", + "src": "2542:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2465:21:7", + "src": "2531:21:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7207,21 +7322,21 @@ "typeString": "bool" } ], - "id": 794, + "id": 1052, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "2457:7:7", + "referencedDeclaration": 1625, + "src": "2523:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 800, + "id": 1058, "isConstant": false, "isLValue": false, "isPure": false, @@ -7229,20 +7344,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2457:30:7", + "src": "2523:30:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 801, + "id": 1059, "nodeType": "ExpressionStatement", - "src": "2457:30:7" + "src": "2523:30:8" }, { "expression": { "argumentTypes": null, - "id": 809, + "id": 1067, "isConstant": false, "isLValue": false, "isPure": false, @@ -7253,34 +7368,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 802, + "id": 1060, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "2494:8:7", + "referencedDeclaration": 986, + "src": "2560:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 806, + "id": 1064, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 803, + "id": 1061, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "2503:3:7", + "referencedDeclaration": 1622, + "src": "2569:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 804, + "id": 1062, "isConstant": false, "isLValue": false, "isPure": false, @@ -7288,7 +7403,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2503:10:7", + "src": "2569:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7299,21 +7414,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2494:20:7", + "src": "2560:20:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 807, + "id": 1065, "indexExpression": { "argumentTypes": null, - "id": 805, + "id": 1063, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 787, - "src": "2515:7:7", + "referencedDeclaration": 1045, + "src": "2581:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7324,7 +7439,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2494:29:7", + "src": "2560:29:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7334,26 +7449,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 808, + "id": 1066, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 789, - "src": "2526:5:7", + "referencedDeclaration": 1047, + "src": "2592:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2494:37:7", + "src": "2560:37:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 810, + "id": 1068, "nodeType": "ExpressionStatement", - "src": "2494:37:7" + "src": "2560:37:8" }, { "eventCall": { @@ -7363,18 +7478,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 812, + "id": 1070, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "2551:3:7", + "referencedDeclaration": 1622, + "src": "2617:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 813, + "id": 1071, "isConstant": false, "isLValue": false, "isPure": false, @@ -7382,7 +7497,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2551:10:7", + "src": "2617:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7390,12 +7505,12 @@ }, { "argumentTypes": null, - "id": 814, + "id": 1072, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 787, - "src": "2563:7:7", + "referencedDeclaration": 1045, + "src": "2629:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7403,12 +7518,12 @@ }, { "argumentTypes": null, - "id": 815, + "id": 1073, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 789, - "src": "2572:5:7", + "referencedDeclaration": 1047, + "src": "2638:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7430,18 +7545,18 @@ "typeString": "uint256" } ], - "id": 811, + "id": 1069, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1279, - "src": "2542:8:7", + "referencedDeclaration": 1550, + "src": "2608:8:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 816, + "id": 1074, "isConstant": false, "isLValue": false, "isPure": false, @@ -7449,28 +7564,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2542:36:7", + "src": "2608:36:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 817, + "id": 1075, "nodeType": "EmitStatement", - "src": "2537:41:7" + "src": "2603:41:8" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 818, + "id": 1076, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2591:4:7", + "src": "2657:4:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7478,15 +7593,15 @@ }, "value": "true" }, - "functionReturnParameters": 793, - "id": 819, + "functionReturnParameters": 1051, + "id": 1077, "nodeType": "Return", - "src": "2584:11:7" + "src": "2650:11:8" } ] }, "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\nBeware that changing an allowance with this method brings the risk that someone may use both the old\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param spender The address which will spend the funds.\n@param value The amount of tokens to be spent.", - "id": 821, + "id": 1079, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -7494,16 +7609,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 790, + "id": 1048, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 787, + "id": 1045, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 821, - "src": "2397:15:7", + "scope": 1079, + "src": "2463:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7511,10 +7626,10 @@ "typeString": "address" }, "typeName": { - "id": 786, + "id": 1044, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2397:7:7", + "src": "2463:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7525,11 +7640,11 @@ }, { "constant": false, - "id": 789, + "id": 1047, "name": "value", "nodeType": "VariableDeclaration", - "scope": 821, - "src": "2414:13:7", + "scope": 1079, + "src": "2480:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7537,10 +7652,10 @@ "typeString": "uint256" }, "typeName": { - "id": 788, + "id": 1046, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2414:7:7", + "src": "2480:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7550,20 +7665,20 @@ "visibility": "internal" } ], - "src": "2396:32:7" + "src": "2462:32:8" }, "payable": false, "returnParameters": { - "id": 793, + "id": 1051, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 792, + "id": 1050, "name": "", "nodeType": "VariableDeclaration", - "scope": 821, - "src": "2445:4:7", + "scope": 1079, + "src": "2511:4:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7571,10 +7686,10 @@ "typeString": "bool" }, "typeName": { - "id": 791, + "id": 1049, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2445:4:7", + "src": "2511:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7584,19 +7699,19 @@ "visibility": "internal" } ], - "src": "2444:6:7" + "src": "2510:6:8" }, - "scope": 1153, - "src": "2380:220:7", + "scope": 1415, + "src": "2446:220:8", "stateMutability": "nonpayable", - "superFunction": 1252, + "superFunction": 1523, "visibility": "public" }, { "body": { - "id": 868, + "id": 1126, "nodeType": "Block", - "src": "2983:177:7", + "src": "3049:177:8", "statements": [ { "expression": { @@ -7608,19 +7723,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 840, + "id": 1098, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 833, + "id": 1091, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 827, - "src": "2997:5:7", + "referencedDeclaration": 1085, + "src": "3063:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7634,26 +7749,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 834, + "id": 1092, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "3006:8:7", + "referencedDeclaration": 986, + "src": "3072:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 836, + "id": 1094, "indexExpression": { "argumentTypes": null, - "id": 835, + "id": 1093, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 823, - "src": "3015:4:7", + "referencedDeclaration": 1081, + "src": "3081:4:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7664,29 +7779,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3006:14:7", + "src": "3072:14:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 839, + "id": 1097, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 837, + "id": 1095, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "3021:3:7", + "referencedDeclaration": 1622, + "src": "3087:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 838, + "id": 1096, "isConstant": false, "isLValue": false, "isPure": false, @@ -7694,7 +7809,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3021:10:7", + "src": "3087:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7705,13 +7820,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3006:26:7", + "src": "3072:26:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2997:35:7", + "src": "3063:35:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7725,21 +7840,21 @@ "typeString": "bool" } ], - "id": 832, + "id": 1090, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "2989:7:7", + "referencedDeclaration": 1625, + "src": "3055:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 841, + "id": 1099, "isConstant": false, "isLValue": false, "isPure": false, @@ -7747,20 +7862,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2989:44:7", + "src": "3055:44:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 842, + "id": 1100, "nodeType": "ExpressionStatement", - "src": "2989:44:7" + "src": "3055:44:8" }, { "expression": { "argumentTypes": null, - "id": 858, + "id": 1116, "isConstant": false, "isLValue": false, "isPure": false, @@ -7771,26 +7886,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 843, + "id": 1101, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "3040:8:7", + "referencedDeclaration": 986, + "src": "3106:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 847, + "id": 1105, "indexExpression": { "argumentTypes": null, - "id": 844, + "id": 1102, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 823, - "src": "3049:4:7", + "referencedDeclaration": 1081, + "src": "3115:4:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7801,29 +7916,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3040:14:7", + "src": "3106:14:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 848, + "id": 1106, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 845, + "id": 1103, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "3055:3:7", + "referencedDeclaration": 1622, + "src": "3121:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 846, + "id": 1104, "isConstant": false, "isLValue": false, "isPure": false, @@ -7831,7 +7946,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3055:10:7", + "src": "3121:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7842,7 +7957,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3040:26:7", + "src": "3106:26:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7855,12 +7970,12 @@ "arguments": [ { "argumentTypes": null, - "id": 856, + "id": 1114, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 827, - "src": "3100:5:7", + "referencedDeclaration": 1085, + "src": "3166:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7880,26 +7995,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 849, + "id": 1107, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "3069:8:7", + "referencedDeclaration": 986, + "src": "3135:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 851, + "id": 1109, "indexExpression": { "argumentTypes": null, - "id": 850, + "id": 1108, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 823, - "src": "3078:4:7", + "referencedDeclaration": 1081, + "src": "3144:4:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7910,29 +8025,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3069:14:7", + "src": "3135:14:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 854, + "id": 1112, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 852, + "id": 1110, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "3084:3:7", + "referencedDeclaration": 1622, + "src": "3150:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 853, + "id": 1111, "isConstant": false, "isLValue": false, "isPure": false, @@ -7940,7 +8055,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3084:10:7", + "src": "3150:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7951,27 +8066,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3069:26:7", + "src": "3135:26:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 855, + "id": 1113, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 664, - "src": "3069:30:7", + "referencedDeclaration": 806, + "src": "3135:30:8", "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": 857, + "id": 1115, "isConstant": false, "isLValue": false, "isPure": false, @@ -7979,21 +8094,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3069:37:7", + "src": "3135:37:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3040:66:7", + "src": "3106:66:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 859, + "id": 1117, "nodeType": "ExpressionStatement", - "src": "3040:66:7" + "src": "3106:66:8" }, { "expression": { @@ -8001,12 +8116,12 @@ "arguments": [ { "argumentTypes": null, - "id": 861, + "id": 1119, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 823, - "src": "3122:4:7", + "referencedDeclaration": 1081, + "src": "3188:4:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8014,12 +8129,12 @@ }, { "argumentTypes": null, - "id": 862, + "id": 1120, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 825, - "src": "3128:2:7", + "referencedDeclaration": 1083, + "src": "3194:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8027,12 +8142,12 @@ }, { "argumentTypes": null, - "id": 863, + "id": 1121, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 827, - "src": "3132:5:7", + "referencedDeclaration": 1085, + "src": "3198:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8054,18 +8169,18 @@ "typeString": "uint256" } ], - "id": 860, + "id": 1118, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "3112:9:7", + "referencedDeclaration": 1281, + "src": "3178:9:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 864, + "id": 1122, "isConstant": false, "isLValue": false, "isPure": false, @@ -8073,28 +8188,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3112:26:7", + "src": "3178:26:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 865, + "id": 1123, "nodeType": "ExpressionStatement", - "src": "3112:26:7" + "src": "3178:26:8" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 866, + "id": 1124, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3151:4:7", + "src": "3217:4:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -8102,15 +8217,15 @@ }, "value": "true" }, - "functionReturnParameters": 831, - "id": 867, + "functionReturnParameters": 1089, + "id": 1125, "nodeType": "Return", - "src": "3144:11:7" + "src": "3210:11:8" } ] }, "documentation": "@dev Transfer tokens from one address to another\n@param from address The address which you want to send tokens from\n@param to address The address which you want to transfer to\n@param value uint256 the amount of tokens to be transferred", - "id": 869, + "id": 1127, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -8118,16 +8233,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 828, + "id": 1086, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 823, + "id": 1081, "name": "from", "nodeType": "VariableDeclaration", - "scope": 869, - "src": "2899:12:7", + "scope": 1127, + "src": "2965:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8135,10 +8250,10 @@ "typeString": "address" }, "typeName": { - "id": 822, + "id": 1080, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2899:7:7", + "src": "2965:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8149,11 +8264,11 @@ }, { "constant": false, - "id": 825, + "id": 1083, "name": "to", "nodeType": "VariableDeclaration", - "scope": 869, - "src": "2917:10:7", + "scope": 1127, + "src": "2983:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8161,10 +8276,10 @@ "typeString": "address" }, "typeName": { - "id": 824, + "id": 1082, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2917:7:7", + "src": "2983:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8175,11 +8290,11 @@ }, { "constant": false, - "id": 827, + "id": 1085, "name": "value", "nodeType": "VariableDeclaration", - "scope": 869, - "src": "2933:13:7", + "scope": 1127, + "src": "2999:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8187,10 +8302,10 @@ "typeString": "uint256" }, "typeName": { - "id": 826, + "id": 1084, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2933:7:7", + "src": "2999:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8200,20 +8315,20 @@ "visibility": "internal" } ], - "src": "2893:57:7" + "src": "2959:57:8" }, "payable": false, "returnParameters": { - "id": 831, + "id": 1089, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 830, + "id": 1088, "name": "", "nodeType": "VariableDeclaration", - "scope": 869, - "src": "2975:4:7", + "scope": 1127, + "src": "3041:4:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8221,10 +8336,10 @@ "typeString": "bool" }, "typeName": { - "id": 829, + "id": 1087, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2975:4:7", + "src": "3041:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8234,19 +8349,19 @@ "visibility": "internal" } ], - "src": "2974:6:7" + "src": "3040:6:8" }, - "scope": 1153, - "src": "2872:288:7", + "scope": 1415, + "src": "2938:288:8", "stateMutability": "nonpayable", - "superFunction": 1263, + "superFunction": 1534, "visibility": "public" }, { "body": { - "id": 918, + "id": 1176, "nodeType": "Block", - "src": "3719:222:7", + "src": "3785:222:8", "statements": [ { "expression": { @@ -8258,19 +8373,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 883, + "id": 1141, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 879, + "id": 1137, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 871, - "src": "3733:7:7", + "referencedDeclaration": 1129, + "src": "3799:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8284,14 +8399,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 881, + "id": 1139, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3752:1:7", + "src": "3818:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8307,20 +8422,20 @@ "typeString": "int_const 0" } ], - "id": 880, + "id": 1138, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3744:7:7", + "src": "3810:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 882, + "id": 1140, "isConstant": false, "isLValue": false, "isPure": true, @@ -8328,13 +8443,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3744:10:7", + "src": "3810:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3733:21:7", + "src": "3799:21:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8348,21 +8463,21 @@ "typeString": "bool" } ], - "id": 878, + "id": 1136, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "3725:7:7", + "referencedDeclaration": 1625, + "src": "3791:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 884, + "id": 1142, "isConstant": false, "isLValue": false, "isPure": false, @@ -8370,20 +8485,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3725:30:7", + "src": "3791:30:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 885, + "id": 1143, "nodeType": "ExpressionStatement", - "src": "3725:30:7" + "src": "3791:30:8" }, { "expression": { "argumentTypes": null, - "id": 902, + "id": 1160, "isConstant": false, "isLValue": false, "isPure": false, @@ -8394,34 +8509,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 886, + "id": 1144, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "3762:8:7", + "referencedDeclaration": 986, + "src": "3828:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 890, + "id": 1148, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 887, + "id": 1145, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "3771:3:7", + "referencedDeclaration": 1622, + "src": "3837:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 888, + "id": 1146, "isConstant": false, "isLValue": false, "isPure": false, @@ -8429,7 +8544,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3771:10:7", + "src": "3837:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8440,21 +8555,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3762:20:7", + "src": "3828:20:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 891, + "id": 1149, "indexExpression": { "argumentTypes": null, - "id": 889, + "id": 1147, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 871, - "src": "3783:7:7", + "referencedDeclaration": 1129, + "src": "3849:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8465,7 +8580,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3762:29:7", + "src": "3828:29:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8481,12 +8596,12 @@ "arguments": [ { "argumentTypes": null, - "id": 899, + "id": 1157, "name": "addedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 873, - "src": "3836:10:7", + "referencedDeclaration": 1131, + "src": "3902:10:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8506,34 +8621,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 892, + "id": 1150, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "3802:8:7", + "referencedDeclaration": 986, + "src": "3868:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 895, + "id": 1153, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 893, + "id": 1151, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "3811:3:7", + "referencedDeclaration": 1622, + "src": "3877:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 894, + "id": 1152, "isConstant": false, "isLValue": false, "isPure": false, @@ -8541,7 +8656,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3811:10:7", + "src": "3877:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8552,21 +8667,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3802:20:7", + "src": "3868:20:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 897, + "id": 1155, "indexExpression": { "argumentTypes": null, - "id": 896, + "id": 1154, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 871, - "src": "3823:7:7", + "referencedDeclaration": 1129, + "src": "3889:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8577,27 +8692,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3802:29:7", + "src": "3868:29:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 898, + "id": 1156, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 688, - "src": "3802:33:7", + "referencedDeclaration": 830, + "src": "3868:33:8", "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": 900, + "id": 1158, "isConstant": false, "isLValue": false, "isPure": false, @@ -8605,35 +8720,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3802:45:7", + "src": "3868:45:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 901, + "id": 1159, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3794:54:7", + "src": "3860:54:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3762:86:7", + "src": "3828:86:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 903, + "id": 1161, "nodeType": "ExpressionStatement", - "src": "3762:86:7" + "src": "3828:86:8" }, { "eventCall": { @@ -8643,18 +8758,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 905, + "id": 1163, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "3868:3:7", + "referencedDeclaration": 1622, + "src": "3934:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 906, + "id": 1164, "isConstant": false, "isLValue": false, "isPure": false, @@ -8662,7 +8777,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3868:10:7", + "src": "3934:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8670,12 +8785,12 @@ }, { "argumentTypes": null, - "id": 907, + "id": 1165, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 871, - "src": "3880:7:7", + "referencedDeclaration": 1129, + "src": "3946:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8687,34 +8802,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 908, + "id": 1166, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "3889:8:7", + "referencedDeclaration": 986, + "src": "3955:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 911, + "id": 1169, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 909, + "id": 1167, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "3898:3:7", + "referencedDeclaration": 1622, + "src": "3964:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 910, + "id": 1168, "isConstant": false, "isLValue": false, "isPure": false, @@ -8722,7 +8837,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3898:10:7", + "src": "3964:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8733,21 +8848,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3889:20:7", + "src": "3955:20:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 913, + "id": 1171, "indexExpression": { "argumentTypes": null, - "id": 912, + "id": 1170, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 871, - "src": "3910:7:7", + "referencedDeclaration": 1129, + "src": "3976:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8758,7 +8873,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3889:29:7", + "src": "3955:29:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8780,18 +8895,18 @@ "typeString": "uint256" } ], - "id": 904, + "id": 1162, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1279, - "src": "3859:8:7", + "referencedDeclaration": 1550, + "src": "3925:8:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 914, + "id": 1172, "isConstant": false, "isLValue": false, "isPure": false, @@ -8799,28 +8914,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3859:60:7", + "src": "3925:60:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 915, + "id": 1173, "nodeType": "EmitStatement", - "src": "3854:65:7" + "src": "3920:65:8" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 916, + "id": 1174, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3932:4:7", + "src": "3998:4:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -8828,15 +8943,15 @@ }, "value": "true" }, - "functionReturnParameters": 877, - "id": 917, + "functionReturnParameters": 1135, + "id": 1175, "nodeType": "Return", - "src": "3925:11:7" + "src": "3991:11:8" } ] }, "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\napprove should be called when allowed_[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param spender The address which will spend the funds.\n@param addedValue The amount of tokens to increase the allowance by.", - "id": 919, + "id": 1177, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -8844,16 +8959,16 @@ "name": "increaseAllowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 874, + "id": 1132, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 871, + "id": 1129, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 919, - "src": "3643:15:7", + "scope": 1177, + "src": "3709:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8861,10 +8976,10 @@ "typeString": "address" }, "typeName": { - "id": 870, + "id": 1128, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3643:7:7", + "src": "3709:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8875,11 +8990,11 @@ }, { "constant": false, - "id": 873, + "id": 1131, "name": "addedValue", "nodeType": "VariableDeclaration", - "scope": 919, - "src": "3664:18:7", + "scope": 1177, + "src": "3730:18:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8887,10 +9002,10 @@ "typeString": "uint256" }, "typeName": { - "id": 872, + "id": 1130, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3664:7:7", + "src": "3730:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8900,20 +9015,20 @@ "visibility": "internal" } ], - "src": "3637:49:7" + "src": "3703:49:8" }, "payable": false, "returnParameters": { - "id": 877, + "id": 1135, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 876, + "id": 1134, "name": "", "nodeType": "VariableDeclaration", - "scope": 919, - "src": "3711:4:7", + "scope": 1177, + "src": "3777:4:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8921,10 +9036,10 @@ "typeString": "bool" }, "typeName": { - "id": 875, + "id": 1133, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3711:4:7", + "src": "3777:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8934,19 +9049,19 @@ "visibility": "internal" } ], - "src": "3710:6:7" + "src": "3776:6:8" }, - "scope": 1153, - "src": "3611:330:7", + "scope": 1415, + "src": "3677:330:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 968, + "id": 1226, "nodeType": "Block", - "src": "4510:227:7", + "src": "4576:227:8", "statements": [ { "expression": { @@ -8958,19 +9073,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 933, + "id": 1191, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 929, + "id": 1187, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "4524:7:7", + "referencedDeclaration": 1179, + "src": "4590:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8984,14 +9099,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 931, + "id": 1189, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4543:1:7", + "src": "4609:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9007,20 +9122,20 @@ "typeString": "int_const 0" } ], - "id": 930, + "id": 1188, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4535:7:7", + "src": "4601:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 932, + "id": 1190, "isConstant": false, "isLValue": false, "isPure": true, @@ -9028,13 +9143,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4535:10:7", + "src": "4601:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4524:21:7", + "src": "4590:21:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9048,21 +9163,21 @@ "typeString": "bool" } ], - "id": 928, + "id": 1186, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "4516:7:7", + "referencedDeclaration": 1625, + "src": "4582:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 934, + "id": 1192, "isConstant": false, "isLValue": false, "isPure": false, @@ -9070,20 +9185,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4516:30:7", + "src": "4582:30:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 935, + "id": 1193, "nodeType": "ExpressionStatement", - "src": "4516:30:7" + "src": "4582:30:8" }, { "expression": { "argumentTypes": null, - "id": 952, + "id": 1210, "isConstant": false, "isLValue": false, "isPure": false, @@ -9094,34 +9209,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 936, + "id": 1194, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "4553:8:7", + "referencedDeclaration": 986, + "src": "4619:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 940, + "id": 1198, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 937, + "id": 1195, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "4562:3:7", + "referencedDeclaration": 1622, + "src": "4628:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 938, + "id": 1196, "isConstant": false, "isLValue": false, "isPure": false, @@ -9129,7 +9244,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4562:10:7", + "src": "4628:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9140,21 +9255,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4553:20:7", + "src": "4619:20:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 941, + "id": 1199, "indexExpression": { "argumentTypes": null, - "id": 939, + "id": 1197, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "4574:7:7", + "referencedDeclaration": 1179, + "src": "4640:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9165,7 +9280,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4553:29:7", + "src": "4619:29:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9181,12 +9296,12 @@ "arguments": [ { "argumentTypes": null, - "id": 949, + "id": 1207, "name": "subtractedValue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 923, - "src": "4627:15:7", + "referencedDeclaration": 1181, + "src": "4693:15:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9206,34 +9321,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 942, + "id": 1200, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "4593:8:7", + "referencedDeclaration": 986, + "src": "4659:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 945, + "id": 1203, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 943, + "id": 1201, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "4602:3:7", + "referencedDeclaration": 1622, + "src": "4668:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 944, + "id": 1202, "isConstant": false, "isLValue": false, "isPure": false, @@ -9241,7 +9356,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4602:10:7", + "src": "4668:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9252,21 +9367,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4593:20:7", + "src": "4659:20:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 947, + "id": 1205, "indexExpression": { "argumentTypes": null, - "id": 946, + "id": 1204, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "4614:7:7", + "referencedDeclaration": 1179, + "src": "4680:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9277,27 +9392,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4593:29:7", + "src": "4659:29:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 948, + "id": 1206, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 664, - "src": "4593:33:7", + "referencedDeclaration": 806, + "src": "4659:33:8", "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": 950, + "id": 1208, "isConstant": false, "isLValue": false, "isPure": false, @@ -9305,35 +9420,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4593:50:7", + "src": "4659:50:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 951, + "id": 1209, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4585:59:7", + "src": "4651:59:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4553:91:7", + "src": "4619:91:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 953, + "id": 1211, "nodeType": "ExpressionStatement", - "src": "4553:91:7" + "src": "4619:91:8" }, { "eventCall": { @@ -9343,18 +9458,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 955, + "id": 1213, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "4664:3:7", + "referencedDeclaration": 1622, + "src": "4730:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 956, + "id": 1214, "isConstant": false, "isLValue": false, "isPure": false, @@ -9362,7 +9477,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4664:10:7", + "src": "4730:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9370,12 +9485,12 @@ }, { "argumentTypes": null, - "id": 957, + "id": 1215, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "4676:7:7", + "referencedDeclaration": 1179, + "src": "4742:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9387,34 +9502,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 958, + "id": 1216, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "4685:8:7", + "referencedDeclaration": 986, + "src": "4751:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 961, + "id": 1219, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 959, + "id": 1217, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "4694:3:7", + "referencedDeclaration": 1622, + "src": "4760:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 960, + "id": 1218, "isConstant": false, "isLValue": false, "isPure": false, @@ -9422,7 +9537,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4694:10:7", + "src": "4760:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9433,21 +9548,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4685:20:7", + "src": "4751:20:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 963, + "id": 1221, "indexExpression": { "argumentTypes": null, - "id": 962, + "id": 1220, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 921, - "src": "4706:7:7", + "referencedDeclaration": 1179, + "src": "4772:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9458,7 +9573,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4685:29:7", + "src": "4751:29:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9480,18 +9595,18 @@ "typeString": "uint256" } ], - "id": 954, + "id": 1212, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1279, - "src": "4655:8:7", + "referencedDeclaration": 1550, + "src": "4721:8:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 964, + "id": 1222, "isConstant": false, "isLValue": false, "isPure": false, @@ -9499,28 +9614,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4655:60:7", + "src": "4721:60:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 965, + "id": 1223, "nodeType": "EmitStatement", - "src": "4650:65:7" + "src": "4716:65:8" }, { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 966, + "id": 1224, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4728:4:7", + "src": "4794:4:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -9528,15 +9643,15 @@ }, "value": "true" }, - "functionReturnParameters": 927, - "id": 967, + "functionReturnParameters": 1185, + "id": 1225, "nodeType": "Return", - "src": "4721:11:7" + "src": "4787:11:8" } ] }, "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\napprove should be called when allowed_[_spender] == 0. To decrement\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param spender The address which will spend the funds.\n@param subtractedValue The amount of tokens to decrease the allowance by.", - "id": 969, + "id": 1227, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -9544,16 +9659,16 @@ "name": "decreaseAllowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 924, + "id": 1182, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 921, + "id": 1179, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 969, - "src": "4429:15:7", + "scope": 1227, + "src": "4495:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9561,10 +9676,10 @@ "typeString": "address" }, "typeName": { - "id": 920, + "id": 1178, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4429:7:7", + "src": "4495:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9575,11 +9690,11 @@ }, { "constant": false, - "id": 923, + "id": 1181, "name": "subtractedValue", "nodeType": "VariableDeclaration", - "scope": 969, - "src": "4450:23:7", + "scope": 1227, + "src": "4516:23:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9587,10 +9702,10 @@ "typeString": "uint256" }, "typeName": { - "id": 922, + "id": 1180, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4450:7:7", + "src": "4516:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9600,20 +9715,20 @@ "visibility": "internal" } ], - "src": "4423:54:7" + "src": "4489:54:8" }, "payable": false, "returnParameters": { - "id": 927, + "id": 1185, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 926, + "id": 1184, "name": "", "nodeType": "VariableDeclaration", - "scope": 969, - "src": "4502:4:7", + "scope": 1227, + "src": "4568:4:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9621,10 +9736,10 @@ "typeString": "bool" }, "typeName": { - "id": 925, + "id": 1183, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4502:4:7", + "src": "4568:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9634,19 +9749,19 @@ "visibility": "internal" } ], - "src": "4501:6:7" + "src": "4567:6:8" }, - "scope": 1153, - "src": "4397:340:7", + "scope": 1415, + "src": "4463:340:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1022, + "id": 1280, "nodeType": "Block", - "src": "5006:208:7", + "src": "5072:208:8", "statements": [ { "expression": { @@ -9658,19 +9773,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 983, + "id": 1241, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 979, + "id": 1237, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "5020:5:7", + "referencedDeclaration": 1233, + "src": "5086:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9682,26 +9797,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 980, + "id": 1238, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "5029:9:7", + "referencedDeclaration": 980, + "src": "5095:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 982, + "id": 1240, "indexExpression": { "argumentTypes": null, - "id": 981, + "id": 1239, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "5039:4:7", + "referencedDeclaration": 1229, + "src": "5105:4:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9712,13 +9827,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5029:15:7", + "src": "5095:15:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5020:24:7", + "src": "5086:24:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9732,21 +9847,21 @@ "typeString": "bool" } ], - "id": 978, + "id": 1236, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "5012:7:7", + "referencedDeclaration": 1625, + "src": "5078:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 984, + "id": 1242, "isConstant": false, "isLValue": false, "isPure": false, @@ -9754,15 +9869,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5012:33:7", + "src": "5078:33:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 985, + "id": 1243, "nodeType": "ExpressionStatement", - "src": "5012:33:7" + "src": "5078:33:8" }, { "expression": { @@ -9774,19 +9889,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 991, + "id": 1249, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 987, + "id": 1245, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 973, - "src": "5059:2:7", + "referencedDeclaration": 1231, + "src": "5125:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9800,14 +9915,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 989, + "id": 1247, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5073:1:7", + "src": "5139:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9823,20 +9938,20 @@ "typeString": "int_const 0" } ], - "id": 988, + "id": 1246, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5065:7:7", + "src": "5131:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 990, + "id": 1248, "isConstant": false, "isLValue": false, "isPure": true, @@ -9844,13 +9959,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5065:10:7", + "src": "5131:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5059:16:7", + "src": "5125:16:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9864,21 +9979,21 @@ "typeString": "bool" } ], - "id": 986, + "id": 1244, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "5051:7:7", + "referencedDeclaration": 1625, + "src": "5117:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 992, + "id": 1250, "isConstant": false, "isLValue": false, "isPure": false, @@ -9886,20 +10001,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5051:25:7", + "src": "5117:25:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 993, + "id": 1251, "nodeType": "ExpressionStatement", - "src": "5051:25:7" + "src": "5117:25:8" }, { "expression": { "argumentTypes": null, - "id": 1003, + "id": 1261, "isConstant": false, "isLValue": false, "isPure": false, @@ -9908,26 +10023,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 994, + "id": 1252, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "5083:9:7", + "referencedDeclaration": 980, + "src": "5149:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 996, + "id": 1254, "indexExpression": { "argumentTypes": null, - "id": 995, + "id": 1253, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "5093:4:7", + "referencedDeclaration": 1229, + "src": "5159:4:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9938,7 +10053,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5083:15:7", + "src": "5149:15:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9951,12 +10066,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1001, + "id": 1259, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "5121:5:7", + "referencedDeclaration": 1233, + "src": "5187:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9974,26 +10089,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 997, + "id": 1255, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "5101:9:7", + "referencedDeclaration": 980, + "src": "5167:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 999, + "id": 1257, "indexExpression": { "argumentTypes": null, - "id": 998, + "id": 1256, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "5111:4:7", + "referencedDeclaration": 1229, + "src": "5177:4:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10004,27 +10119,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5101:15:7", + "src": "5167:15:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1000, + "id": 1258, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 664, - "src": "5101:19:7", + "referencedDeclaration": 806, + "src": "5167:19:8", "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": 1002, + "id": 1260, "isConstant": false, "isLValue": false, "isPure": false, @@ -10032,26 +10147,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5101:26:7", + "src": "5167:26:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5083:44:7", + "src": "5149:44:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1004, + "id": 1262, "nodeType": "ExpressionStatement", - "src": "5083:44:7" + "src": "5149:44:8" }, { "expression": { "argumentTypes": null, - "id": 1014, + "id": 1272, "isConstant": false, "isLValue": false, "isPure": false, @@ -10060,26 +10175,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1005, + "id": 1263, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "5133:9:7", + "referencedDeclaration": 980, + "src": "5199:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1007, + "id": 1265, "indexExpression": { "argumentTypes": null, - "id": 1006, + "id": 1264, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 973, - "src": "5143:2:7", + "referencedDeclaration": 1231, + "src": "5209:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10090,7 +10205,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5133:13:7", + "src": "5199:13:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10103,12 +10218,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1012, + "id": 1270, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "5167:5:7", + "referencedDeclaration": 1233, + "src": "5233:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10126,26 +10241,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1008, + "id": 1266, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "5149:9:7", + "referencedDeclaration": 980, + "src": "5215:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1010, + "id": 1268, "indexExpression": { "argumentTypes": null, - "id": 1009, + "id": 1267, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 973, - "src": "5159:2:7", + "referencedDeclaration": 1231, + "src": "5225:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10156,27 +10271,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5149:13:7", + "src": "5215:13:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1011, + "id": 1269, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 688, - "src": "5149:17:7", + "referencedDeclaration": 830, + "src": "5215:17:8", "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": 1013, + "id": 1271, "isConstant": false, "isLValue": false, "isPure": false, @@ -10184,21 +10299,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5149:24:7", + "src": "5215:24:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5133:40:7", + "src": "5199:40:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1015, + "id": 1273, "nodeType": "ExpressionStatement", - "src": "5133:40:7" + "src": "5199:40:8" }, { "eventCall": { @@ -10206,12 +10321,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1017, + "id": 1275, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "5193:4:7", + "referencedDeclaration": 1229, + "src": "5259:4:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10219,12 +10334,12 @@ }, { "argumentTypes": null, - "id": 1018, + "id": 1276, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 973, - "src": "5199:2:7", + "referencedDeclaration": 1231, + "src": "5265:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10232,12 +10347,12 @@ }, { "argumentTypes": null, - "id": 1019, + "id": 1277, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, - "src": "5203:5:7", + "referencedDeclaration": 1233, + "src": "5269:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10259,18 +10374,18 @@ "typeString": "uint256" } ], - "id": 1016, + "id": 1274, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1271, - "src": "5184:8:7", + "referencedDeclaration": 1542, + "src": "5250:8:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 1020, + "id": 1278, "isConstant": false, "isLValue": false, "isPure": false, @@ -10278,20 +10393,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5184:25:7", + "src": "5250:25:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1021, + "id": 1279, "nodeType": "EmitStatement", - "src": "5179:30:7" + "src": "5245:30:8" } ] }, "documentation": "@dev Transfer token for a specified addresses\n@param from The address to transfer from.\n@param to The address to transfer to.\n@param value The amount to be transferred.", - "id": 1023, + "id": 1281, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -10299,16 +10414,16 @@ "name": "_transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 976, + "id": 1234, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 971, + "id": 1229, "name": "from", "nodeType": "VariableDeclaration", - "scope": 1023, - "src": "4956:12:7", + "scope": 1281, + "src": "5022:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10316,10 +10431,10 @@ "typeString": "address" }, "typeName": { - "id": 970, + "id": 1228, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4956:7:7", + "src": "5022:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10330,11 +10445,11 @@ }, { "constant": false, - "id": 973, + "id": 1231, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1023, - "src": "4970:10:7", + "scope": 1281, + "src": "5036:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10342,10 +10457,10 @@ "typeString": "address" }, "typeName": { - "id": 972, + "id": 1230, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4970:7:7", + "src": "5036:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10356,11 +10471,11 @@ }, { "constant": false, - "id": 975, + "id": 1233, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1023, - "src": "4982:13:7", + "scope": 1281, + "src": "5048:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10368,10 +10483,10 @@ "typeString": "uint256" }, "typeName": { - "id": 974, + "id": 1232, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4982:7:7", + "src": "5048:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10381,26 +10496,26 @@ "visibility": "internal" } ], - "src": "4955:41:7" + "src": "5021:41:8" }, "payable": false, "returnParameters": { - "id": 977, + "id": 1235, "nodeType": "ParameterList", "parameters": [], - "src": "5006:0:7" + "src": "5072:0:8" }, - "scope": 1153, - "src": "4937:277:7", + "scope": 1415, + "src": "5003:277:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1062, + "id": 1320, "nodeType": "Block", - "src": "5597:179:7", + "src": "5665:182:8", "statements": [ { "expression": { @@ -10412,19 +10527,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1033, + "id": 1291, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1031, + "id": 1289, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "5611:7:7", + "referencedDeclaration": 1283, + "src": "5679:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10435,14 +10550,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1032, + "id": 1290, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5622:1:7", + "src": "5690:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10450,7 +10565,7 @@ }, "value": "0" }, - "src": "5611:12:7", + "src": "5679:12:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10464,21 +10579,21 @@ "typeString": "bool" } ], - "id": 1030, + "id": 1288, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "5603:7:7", + "referencedDeclaration": 1625, + "src": "5671:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1034, + "id": 1292, "isConstant": false, "isLValue": false, "isPure": false, @@ -10486,32 +10601,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5603:21:7", + "src": "5671:21:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1035, + "id": 1293, "nodeType": "ExpressionStatement", - "src": "5603:21:7" + "src": "5671:21:8" }, { "expression": { "argumentTypes": null, - "id": 1041, + "id": 1299, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1036, + "id": 1294, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "5630:12:7", + "referencedDeclaration": 988, + "src": "5698:12:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10524,12 +10639,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1039, - "name": "value", + "id": 1297, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "5662:5:7", + "referencedDeclaration": 1285, + "src": "5730:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10545,32 +10660,32 @@ ], "expression": { "argumentTypes": null, - "id": 1037, + "id": 1295, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "5645:12:7", + "referencedDeclaration": 988, + "src": "5713:12:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1038, + "id": 1296, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 688, - "src": "5645:16:7", + "referencedDeclaration": 830, + "src": "5713:16:8", "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": 1040, + "id": 1298, "isConstant": false, "isLValue": false, "isPure": false, @@ -10578,26 +10693,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5645:23:7", + "src": "5713:24:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5630:38:7", + "src": "5698:39:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1042, + "id": 1300, "nodeType": "ExpressionStatement", - "src": "5630:38:7" + "src": "5698:39:8" }, { "expression": { "argumentTypes": null, - "id": 1052, + "id": 1310, "isConstant": false, "isLValue": false, "isPure": false, @@ -10606,26 +10721,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1043, + "id": 1301, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "5674:9:7", + "referencedDeclaration": 980, + "src": "5743:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1045, + "id": 1303, "indexExpression": { "argumentTypes": null, - "id": 1044, + "id": 1302, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "5684:7:7", + "referencedDeclaration": 1283, + "src": "5753:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10636,7 +10751,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5674:18:7", + "src": "5743:18:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10649,12 +10764,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1050, - "name": "value", + "id": 1308, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "5718:5:7", + "referencedDeclaration": 1285, + "src": "5787:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10672,26 +10787,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1046, + "id": 1304, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "5695:9:7", + "referencedDeclaration": 980, + "src": "5764:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1048, + "id": 1306, "indexExpression": { "argumentTypes": null, - "id": 1047, + "id": 1305, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "5705:7:7", + "referencedDeclaration": 1283, + "src": "5774:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10702,27 +10817,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5695:18:7", + "src": "5764:18:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1049, + "id": 1307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 688, - "src": "5695:22:7", + "referencedDeclaration": 830, + "src": "5764:22:8", "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": 1051, + "id": 1309, "isConstant": false, "isLValue": false, "isPure": false, @@ -10730,21 +10845,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5695:29:7", + "src": "5764:30:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5674:50:7", + "src": "5743:51:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1053, + "id": 1311, "nodeType": "ExpressionStatement", - "src": "5674:50:7" + "src": "5743:51:8" }, { "eventCall": { @@ -10756,14 +10871,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1056, + "id": 1314, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5752:1:7", + "src": "5822:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10779,20 +10894,20 @@ "typeString": "int_const 0" } ], - "id": 1055, + "id": 1313, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5744:7:7", + "src": "5814:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1057, + "id": 1315, "isConstant": false, "isLValue": false, "isPure": true, @@ -10800,7 +10915,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5744:10:7", + "src": "5814:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10808,12 +10923,12 @@ }, { "argumentTypes": null, - "id": 1058, + "id": 1316, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1025, - "src": "5756:7:7", + "referencedDeclaration": 1283, + "src": "5826:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10821,12 +10936,12 @@ }, { "argumentTypes": null, - "id": 1059, - "name": "value", + "id": 1317, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "5765:5:7", + "referencedDeclaration": 1285, + "src": "5835:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10848,18 +10963,18 @@ "typeString": "uint256" } ], - "id": 1054, + "id": 1312, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1271, - "src": "5735:8:7", + "referencedDeclaration": 1542, + "src": "5805:8:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 1060, + "id": 1318, "isConstant": false, "isLValue": false, "isPure": false, @@ -10867,20 +10982,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5735:36:7", + "src": "5805:37:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1061, + "id": 1319, "nodeType": "EmitStatement", - "src": "5730:41:7" + "src": "5800:42:8" } ] }, - "documentation": "@dev Internal function that mints an amount of the token and assigns it to\nan account. This encapsulates the modification of balances such that the\nproper events are emitted.\n@param account The account that will receive the created tokens.\n@param value The amount that will be created.", - "id": 1063, + "documentation": "@dev Internal function that mints an amount of the token and assigns it to\nan account. This encapsulates the modification of balances such that the\nproper events are emitted.\n@param account The account that will receive the created tokens.\n@param amount The amount that will be created.", + "id": 1321, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -10888,16 +11003,16 @@ "name": "_mint", "nodeType": "FunctionDefinition", "parameters": { - "id": 1028, + "id": 1286, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1025, + "id": 1283, "name": "account", "nodeType": "VariableDeclaration", - "scope": 1063, - "src": "5556:15:7", + "scope": 1321, + "src": "5623:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10905,10 +11020,10 @@ "typeString": "address" }, "typeName": { - "id": 1024, + "id": 1282, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5556:7:7", + "src": "5623:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10919,11 +11034,11 @@ }, { "constant": false, - "id": 1027, - "name": "value", + "id": 1285, + "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1063, - "src": "5573:13:7", + "scope": 1321, + "src": "5640:14:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10931,10 +11046,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1026, + "id": 1284, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5573:7:7", + "src": "5640:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10944,26 +11059,26 @@ "visibility": "internal" } ], - "src": "5555:32:7" + "src": "5622:33:8" }, "payable": false, "returnParameters": { - "id": 1029, + "id": 1287, "nodeType": "ParameterList", "parameters": [], - "src": "5597:0:7" + "src": "5665:0:8" }, - "scope": 1153, - "src": "5541:235:7", + "scope": 1415, + "src": "5608:239:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1110, + "id": 1368, "nodeType": "Block", - "src": "6044:222:7", + "src": "6117:226:8", "statements": [ { "expression": { @@ -10975,19 +11090,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1073, + "id": 1331, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1071, + "id": 1329, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1065, - "src": "6058:7:7", + "referencedDeclaration": 1323, + "src": "6131:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10998,14 +11113,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1072, + "id": 1330, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6069:1:7", + "src": "6142:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11013,7 +11128,7 @@ }, "value": "0" }, - "src": "6058:12:7", + "src": "6131:12:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11027,21 +11142,21 @@ "typeString": "bool" } ], - "id": 1070, + "id": 1328, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "6050:7:7", + "referencedDeclaration": 1625, + "src": "6123:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1074, + "id": 1332, "isConstant": false, "isLValue": false, "isPure": false, @@ -11049,15 +11164,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6050:21:7", + "src": "6123:21:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1075, + "id": 1333, "nodeType": "ExpressionStatement", - "src": "6050:21:7" + "src": "6123:21:8" }, { "expression": { @@ -11069,19 +11184,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1081, + "id": 1339, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1077, - "name": "value", + "id": 1335, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1067, - "src": "6085:5:7", + "referencedDeclaration": 1325, + "src": "6158:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11093,26 +11208,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1078, + "id": 1336, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "6094:9:7", + "referencedDeclaration": 980, + "src": "6168:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1080, + "id": 1338, "indexExpression": { "argumentTypes": null, - "id": 1079, + "id": 1337, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1065, - "src": "6104:7:7", + "referencedDeclaration": 1323, + "src": "6178:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11123,13 +11238,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6094:18:7", + "src": "6168:18:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6085:27:7", + "src": "6158:28:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11143,21 +11258,21 @@ "typeString": "bool" } ], - "id": 1076, + "id": 1334, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "6077:7:7", + "referencedDeclaration": 1625, + "src": "6150:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1082, + "id": 1340, "isConstant": false, "isLValue": false, "isPure": false, @@ -11165,32 +11280,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6077:36:7", + "src": "6150:37:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1083, + "id": 1341, "nodeType": "ExpressionStatement", - "src": "6077:36:7" + "src": "6150:37:8" }, { "expression": { "argumentTypes": null, - "id": 1089, + "id": 1347, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1084, + "id": 1342, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "6120:12:7", + "referencedDeclaration": 988, + "src": "6194:12:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11203,12 +11318,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1087, - "name": "value", + "id": 1345, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1067, - "src": "6152:5:7", + "referencedDeclaration": 1325, + "src": "6226:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11224,32 +11339,32 @@ ], "expression": { "argumentTypes": null, - "id": 1085, + "id": 1343, "name": "_totalSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "6135:12:7", + "referencedDeclaration": 988, + "src": "6209:12:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1086, + "id": 1344, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 664, - "src": "6135:16:7", + "referencedDeclaration": 806, + "src": "6209:16:8", "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": 1088, + "id": 1346, "isConstant": false, "isLValue": false, "isPure": false, @@ -11257,26 +11372,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6135:23:7", + "src": "6209:24:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6120:38:7", + "src": "6194:39:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1090, + "id": 1348, "nodeType": "ExpressionStatement", - "src": "6120:38:7" + "src": "6194:39:8" }, { "expression": { "argumentTypes": null, - "id": 1100, + "id": 1358, "isConstant": false, "isLValue": false, "isPure": false, @@ -11285,26 +11400,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1091, + "id": 1349, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "6164:9:7", + "referencedDeclaration": 980, + "src": "6239:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1093, + "id": 1351, "indexExpression": { "argumentTypes": null, - "id": 1092, + "id": 1350, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1065, - "src": "6174:7:7", + "referencedDeclaration": 1323, + "src": "6249:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11315,7 +11430,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6164:18:7", + "src": "6239:18:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11328,12 +11443,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1098, - "name": "value", + "id": 1356, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1067, - "src": "6208:5:7", + "referencedDeclaration": 1325, + "src": "6283:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11351,26 +11466,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1094, + "id": 1352, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "6185:9:7", + "referencedDeclaration": 980, + "src": "6260:9:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1096, + "id": 1354, "indexExpression": { "argumentTypes": null, - "id": 1095, + "id": 1353, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1065, - "src": "6195:7:7", + "referencedDeclaration": 1323, + "src": "6270:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11381,27 +11496,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6185:18:7", + "src": "6260:18:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1097, + "id": 1355, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 664, - "src": "6185:22:7", + "referencedDeclaration": 806, + "src": "6260:22:8", "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": 1099, + "id": 1357, "isConstant": false, "isLValue": false, "isPure": false, @@ -11409,21 +11524,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6185:29:7", + "src": "6260:30:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6164:50:7", + "src": "6239:51:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1101, + "id": 1359, "nodeType": "ExpressionStatement", - "src": "6164:50:7" + "src": "6239:51:8" }, { "eventCall": { @@ -11431,12 +11546,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1103, + "id": 1361, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1065, - "src": "6234:7:7", + "referencedDeclaration": 1323, + "src": "6310:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11448,14 +11563,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1105, + "id": 1363, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6251:1:7", + "src": "6327:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -11471,20 +11586,20 @@ "typeString": "int_const 0" } ], - "id": 1104, + "id": 1362, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6243:7:7", + "src": "6319:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1106, + "id": 1364, "isConstant": false, "isLValue": false, "isPure": true, @@ -11492,7 +11607,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6243:10:7", + "src": "6319:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11500,12 +11615,12 @@ }, { "argumentTypes": null, - "id": 1107, - "name": "value", + "id": 1365, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1067, - "src": "6255:5:7", + "referencedDeclaration": 1325, + "src": "6331:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11527,18 +11642,18 @@ "typeString": "uint256" } ], - "id": 1102, + "id": 1360, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1271, - "src": "6225:8:7", + "referencedDeclaration": 1542, + "src": "6301:8:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 1108, + "id": 1366, "isConstant": false, "isLValue": false, "isPure": false, @@ -11546,20 +11661,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6225:36:7", + "src": "6301:37:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1109, + "id": 1367, "nodeType": "EmitStatement", - "src": "6220:41:7" + "src": "6296:42:8" } ] }, - "documentation": "@dev Internal function that burns an amount of the token of a given\naccount.\n@param account The account whose tokens will be burnt.\n@param value The amount that will be burnt.", - "id": 1111, + "documentation": "@dev Internal function that burns an amount of the token of a given\naccount.\n@param account The account whose tokens will be burnt.\n@param amount The amount that will be burnt.", + "id": 1369, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -11567,16 +11682,16 @@ "name": "_burn", "nodeType": "FunctionDefinition", "parameters": { - "id": 1068, + "id": 1326, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1065, + "id": 1323, "name": "account", "nodeType": "VariableDeclaration", - "scope": 1111, - "src": "6003:15:7", + "scope": 1369, + "src": "6075:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11584,10 +11699,10 @@ "typeString": "address" }, "typeName": { - "id": 1064, + "id": 1322, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6003:7:7", + "src": "6075:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11598,11 +11713,11 @@ }, { "constant": false, - "id": 1067, - "name": "value", + "id": 1325, + "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1111, - "src": "6020:13:7", + "scope": 1369, + "src": "6092:14:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11610,10 +11725,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1066, + "id": 1324, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6020:7:7", + "src": "6092:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11623,26 +11738,26 @@ "visibility": "internal" } ], - "src": "6002:32:7" + "src": "6074:33:8" }, "payable": false, "returnParameters": { - "id": 1069, + "id": 1327, "nodeType": "ParameterList", "parameters": [], - "src": "6044:0:7" + "src": "6117:0:8" }, - "scope": 1153, - "src": "5988:278:7", + "scope": 1415, + "src": "6060:283:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1151, + "id": 1409, "nodeType": "Block", - "src": "6632:330:7", + "src": "6711:333:8", "statements": [ { "expression": { @@ -11654,19 +11769,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1126, + "id": 1384, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1119, - "name": "value", + "id": 1377, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1115, - "src": "6646:5:7", + "referencedDeclaration": 1373, + "src": "6725:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11680,26 +11795,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1120, + "id": 1378, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "6655:8:7", + "referencedDeclaration": 986, + "src": "6735:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 1122, + "id": 1380, "indexExpression": { "argumentTypes": null, - "id": 1121, + "id": 1379, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "6664:7:7", + "referencedDeclaration": 1371, + "src": "6744:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11710,29 +11825,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6655:17:7", + "src": "6735:17:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1125, + "id": 1383, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1123, + "id": 1381, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "6673:3:7", + "referencedDeclaration": 1622, + "src": "6753:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1124, + "id": 1382, "isConstant": false, "isLValue": false, "isPure": false, @@ -11740,7 +11855,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6673:10:7", + "src": "6753:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11751,13 +11866,13 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6655:29:7", + "src": "6735:29:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6646:38:7", + "src": "6725:39:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11771,21 +11886,21 @@ "typeString": "bool" } ], - "id": 1118, + "id": 1376, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "6638:7:7", + "referencedDeclaration": 1625, + "src": "6717:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1127, + "id": 1385, "isConstant": false, "isLValue": false, "isPure": false, @@ -11793,20 +11908,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6638:47:7", + "src": "6717:48:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1128, + "id": 1386, "nodeType": "ExpressionStatement", - "src": "6638:47:7" + "src": "6717:48:8" }, { "expression": { "argumentTypes": null, - "id": 1144, + "id": 1402, "isConstant": false, "isLValue": false, "isPure": false, @@ -11817,26 +11932,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1129, + "id": 1387, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "6851:8:7", + "referencedDeclaration": 986, + "src": "6931:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 1133, + "id": 1391, "indexExpression": { "argumentTypes": null, - "id": 1130, + "id": 1388, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "6860:7:7", + "referencedDeclaration": 1371, + "src": "6940:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11847,29 +11962,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6851:17:7", + "src": "6931:17:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1134, + "id": 1392, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1131, + "id": 1389, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "6869:3:7", + "referencedDeclaration": 1622, + "src": "6949:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1132, + "id": 1390, "isConstant": false, "isLValue": false, "isPure": false, @@ -11877,7 +11992,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6869:10:7", + "src": "6949:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11888,7 +12003,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6851:29:7", + "src": "6931:29:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11901,12 +12016,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1142, - "name": "value", + "id": 1400, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1115, - "src": "6924:5:7", + "referencedDeclaration": 1373, + "src": "7004:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11926,26 +12041,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1135, + "id": 1393, "name": "_allowed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 728, - "src": "6883:8:7", + "referencedDeclaration": 986, + "src": "6963:8:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(address => mapping(address => uint256))" } }, - "id": 1137, + "id": 1395, "indexExpression": { "argumentTypes": null, - "id": 1136, + "id": 1394, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "6892:7:7", + "referencedDeclaration": 1371, + "src": "6972:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11956,29 +12071,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6883:17:7", + "src": "6963:17:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 1140, + "id": 1398, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1138, + "id": 1396, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "6901:3:7", + "referencedDeclaration": 1622, + "src": "6981:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1139, + "id": 1397, "isConstant": false, "isLValue": false, "isPure": false, @@ -11986,7 +12101,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6901:10:7", + "src": "6981:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11997,27 +12112,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6883:29:7", + "src": "6963:29:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1141, + "id": 1399, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 664, - "src": "6883:33:7", + "referencedDeclaration": 806, + "src": "6963:33:8", "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": 1143, + "id": 1401, "isConstant": false, "isLValue": false, "isPure": false, @@ -12025,21 +12140,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6883:47:7", + "src": "6963:48:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6851:79:7", + "src": "6931:80:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1145, + "id": 1403, "nodeType": "ExpressionStatement", - "src": "6851:79:7" + "src": "6931:80:8" }, { "expression": { @@ -12047,12 +12162,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1147, + "id": 1405, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1113, - "src": "6942:7:7", + "referencedDeclaration": 1371, + "src": "7023:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12060,12 +12175,12 @@ }, { "argumentTypes": null, - "id": 1148, - "name": "value", + "id": 1406, + "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1115, - "src": "6951:5:7", + "referencedDeclaration": 1373, + "src": "7032:6:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12083,18 +12198,18 @@ "typeString": "uint256" } ], - "id": 1146, + "id": 1404, "name": "_burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "6936:5:7", + "referencedDeclaration": 1369, + "src": "7017:5:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 1149, + "id": 1407, "isConstant": false, "isLValue": false, "isPure": false, @@ -12102,20 +12217,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6936:21:7", + "src": "7017:22:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1150, + "id": 1408, "nodeType": "ExpressionStatement", - "src": "6936:21:7" + "src": "7017:22:8" } ] }, - "documentation": "@dev Internal function that burns an amount of the token of a given\naccount, deducting from the sender's allowance for said account. Uses the\ninternal burn function.\n@param account The account whose tokens will be burnt.\n@param value The amount that will be burnt.", - "id": 1152, + "documentation": "@dev Internal function that burns an amount of the token of a given\naccount, deducting from the sender's allowance for said account. Uses the\ninternal burn function.\n@param account The account whose tokens will be burnt.\n@param amount The amount that will be burnt.", + "id": 1410, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -12123,16 +12238,16 @@ "name": "_burnFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 1116, + "id": 1374, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1113, + "id": 1371, "name": "account", "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "6591:15:7", + "scope": 1410, + "src": "6669:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12140,10 +12255,10 @@ "typeString": "address" }, "typeName": { - "id": 1112, + "id": 1370, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6591:7:7", + "src": "6669:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12154,11 +12269,11 @@ }, { "constant": false, - "id": 1115, - "name": "value", + "id": 1373, + "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1152, - "src": "6608:13:7", + "scope": 1410, + "src": "6686:14:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12166,10 +12281,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1114, + "id": 1372, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6608:7:7", + "src": "6686:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12179,27 +12294,80 @@ "visibility": "internal" } ], - "src": "6590:32:7" + "src": "6668:33:8" }, "payable": false, "returnParameters": { - "id": 1117, + "id": 1375, "nodeType": "ParameterList", "parameters": [], - "src": "6632:0:7" + "src": "6711:0:8" }, - "scope": 1153, - "src": "6572:390:7", + "scope": 1415, + "src": "6650:394:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" + }, + { + "constant": false, + "id": 1414, + "name": "______gap", + "nodeType": "VariableDeclaration", + "scope": 1415, + "src": "7048:29:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage", + "typeString": "uint256[50]" + }, + "typeName": { + "baseType": { + "id": 1411, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7048:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1413, + "length": { + "argumentTypes": null, + "hexValue": "3530", + "id": 1412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7056:2:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "50" + }, + "nodeType": "ArrayTypeName", + "src": "7048:11:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", + "typeString": "uint256[50]" + } + }, + "value": null, + "visibility": "private" } ], - "scope": 1154, - "src": "369:6595:7" + "scope": 1416, + "src": "416:6664:8" } ], - "src": "0:6965:7" + "src": "0:7081:8" }, "compiler": { "name": "solc", @@ -12207,7 +12375,7 @@ }, "networks": {}, "schemaVersion": "3.0.0-beta.1", - "updatedAt": "2018-12-16T19:14:46.486Z", + "updatedAt": "2018-12-17T02:12:29.702Z", "devdoc": { "methods": { "allowance(address,address)": { @@ -12228,7 +12396,7 @@ "balanceOf(address)": { "details": "Gets the balance of the specified address.", "params": { - "owner": "The address to query the balance of." + "owner": "The address to query the the balance of." }, "return": "An uint256 representing the amount owned by the passed address." }, diff --git a/src/build/contracts/ERC20Detailed.json b/src/build/contracts/ERC20Detailed.json index 5c47996..f42bc85 100644 --- a/src/build/contracts/ERC20Detailed.json +++ b/src/build/contracts/ERC20Detailed.json @@ -130,25 +130,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [ - { - "name": "name", - "type": "string" - }, - { - "name": "symbol", - "type": "string" - }, - { - "name": "decimals", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, { "anonymous": false, "inputs": [ @@ -193,6 +174,28 @@ "name": "Approval", "type": "event" }, + { + "constant": false, + "inputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "symbol", + "type": "string" + }, + { + "name": "decimals", + "type": "uint8" + } + ], + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [], @@ -240,20 +243,20 @@ "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity ^0.4.24;\n\nimport \"./IERC20.sol\";\n\n/**\n * @title ERC20Detailed token\n * @dev The decimals are only for visualization purposes.\n * All the operations are done using the smallest and indivisible token unit,\n * just as on Ethereum all the operations are done in wei.\n */\ncontract ERC20Detailed is IERC20 {\n string private _name;\n string private _symbol;\n uint8 private _decimals;\n\n constructor(string name, string symbol, uint8 decimals) public {\n _name = name;\n _symbol = symbol;\n _decimals = decimals;\n }\n\n /**\n * @return the name of the token.\n */\n function name() public view returns(string) {\n return _name;\n }\n\n /**\n * @return the symbol of the token.\n */\n function symbol() public view returns(string) {\n return _symbol;\n }\n\n /**\n * @return the number of decimals of the token.\n */\n function decimals() public view returns(uint8) {\n return _decimals;\n }\n}\n", - "sourcePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "source": "pragma solidity ^0.4.24;\n\nimport \"zos-lib/contracts/Initializable.sol\";\nimport \"./IERC20.sol\";\n\n\n/**\n * @title ERC20Detailed token\n * @dev The decimals are only for visualization purposes.\n * All the operations are done using the smallest and indivisible token unit,\n * just as on Ethereum all the operations are done in wei.\n */\ncontract ERC20Detailed is Initializable, IERC20 {\n string private _name;\n string private _symbol;\n uint8 private _decimals;\n\n function initialize(string name, string symbol, uint8 decimals) public initializer {\n _name = name;\n _symbol = symbol;\n _decimals = decimals;\n }\n\n /**\n * @return the name of the token.\n */\n function name() public view returns(string) {\n return _name;\n }\n\n /**\n * @return the symbol of the token.\n */\n function symbol() public view returns(string) {\n return _symbol;\n }\n\n /**\n * @return the number of decimals of the token.\n */\n function decimals() public view returns(uint8) {\n return _decimals;\n }\n\n uint256[50] private ______gap;\n}\n", + "sourcePath": "openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol", "ast": { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol", "exportedSymbols": { "ERC20Detailed": [ - 1211 + 1482 ] }, - "id": 1212, + "id": 1483, "nodeType": "SourceUnit", "nodes": [ { - "id": 1155, + "id": 1417, "literals": [ "solidity", "^", @@ -261,16 +264,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:8" + "src": "0:24:9" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "absolutePath": "zos-lib/contracts/Initializable.sol", + "file": "zos-lib/contracts/Initializable.sol", + "id": 1418, + "nodeType": "ImportDirective", + "scope": 1483, + "sourceUnit": 1608, + "src": "26:45:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/IERC20.sol", "file": "./IERC20.sol", - "id": 1156, + "id": 1419, "nodeType": "ImportDirective", - "scope": 1212, - "sourceUnit": 1281, - "src": "26:22:8", + "scope": 1483, + "sourceUnit": 1552, + "src": "72:22:9", "symbolAliases": [], "unitAlias": "" }, @@ -280,42 +294,62 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1157, + "id": 1420, + "name": "Initializable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1607, + "src": "356:13:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Initializable_$1607", + "typeString": "contract Initializable" + } + }, + "id": 1421, + "nodeType": "InheritanceSpecifier", + "src": "356:13:9" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1422, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1280, - "src": "309:6:8", + "referencedDeclaration": 1551, + "src": "371:6:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1280", + "typeIdentifier": "t_contract$_IERC20_$1551", "typeString": "contract IERC20" } }, - "id": 1158, + "id": 1423, "nodeType": "InheritanceSpecifier", - "src": "309:6:8" + "src": "371:6:9" } ], "contractDependencies": [ - 1280 + 1551, + 1607 ], "contractKind": "contract", "documentation": "@title ERC20Detailed token\n@dev The decimals are only for visualization purposes.\nAll the operations are done using the smallest and indivisible token unit,\njust as on Ethereum all the operations are done in wei.", "fullyImplemented": false, - "id": 1211, + "id": 1482, "linearizedBaseContracts": [ - 1211, - 1280 + 1482, + 1551, + 1607 ], "name": "ERC20Detailed", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1160, + "id": 1425, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "320:20:8", + "scope": 1482, + "src": "382:20:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -323,10 +357,10 @@ "typeString": "string" }, "typeName": { - "id": 1159, + "id": 1424, "name": "string", "nodeType": "ElementaryTypeName", - "src": "320:6:8", + "src": "382:6:9", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -337,11 +371,11 @@ }, { "constant": false, - "id": 1162, + "id": 1427, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "344:22:8", + "scope": 1482, + "src": "406:22:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -349,10 +383,10 @@ "typeString": "string" }, "typeName": { - "id": 1161, + "id": 1426, "name": "string", "nodeType": "ElementaryTypeName", - "src": "344:6:8", + "src": "406:6:9", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -363,11 +397,11 @@ }, { "constant": false, - "id": 1164, + "id": 1429, "name": "_decimals", "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "370:23:8", + "scope": 1482, + "src": "432:23:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -375,10 +409,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1163, + "id": 1428, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "370:5:8", + "src": "432:5:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -389,26 +423,26 @@ }, { "body": { - "id": 1185, + "id": 1452, "nodeType": "Block", - "src": "461:71:8", + "src": "543:71:9", "statements": [ { "expression": { "argumentTypes": null, - "id": 1175, + "id": 1442, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1173, + "id": 1440, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1160, - "src": "467:5:8", + "referencedDeclaration": 1425, + "src": "549:5:9", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -418,43 +452,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1174, + "id": 1441, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1166, - "src": "475:4:8", + "referencedDeclaration": 1431, + "src": "557:4:9", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "467:12:8", + "src": "549:12:9", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1176, + "id": 1443, "nodeType": "ExpressionStatement", - "src": "467:12:8" + "src": "549:12:9" }, { "expression": { "argumentTypes": null, - "id": 1179, + "id": 1446, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1177, + "id": 1444, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1162, - "src": "485:7:8", + "referencedDeclaration": 1427, + "src": "567:7:9", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -464,43 +498,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1178, + "id": 1445, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1168, - "src": "495:6:8", + "referencedDeclaration": 1433, + "src": "577:6:9", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "485:16:8", + "src": "567:16:9", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1180, + "id": 1447, "nodeType": "ExpressionStatement", - "src": "485:16:8" + "src": "567:16:9" }, { "expression": { "argumentTypes": null, - "id": 1183, + "id": 1450, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1181, + "id": 1448, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "507:9:8", + "referencedDeclaration": 1429, + "src": "589:9:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -510,48 +544,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1182, + "id": 1449, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1170, - "src": "519:8:8", + "referencedDeclaration": 1435, + "src": "601:8:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "507:20:8", + "src": "589:20:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 1184, + "id": 1451, "nodeType": "ExpressionStatement", - "src": "507:20:8" + "src": "589:20:9" } ] }, "documentation": null, - "id": 1186, + "id": 1453, "implemented": true, - "isConstructor": true, + "isConstructor": false, "isDeclaredConst": false, - "modifiers": [], - "name": "", + "modifiers": [ + { + "arguments": null, + "id": 1438, + "modifierName": { + "argumentTypes": null, + "id": 1437, + "name": "initializer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1588, + "src": "531:11:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "531:11:9" + } + ], + "name": "initialize", "nodeType": "FunctionDefinition", "parameters": { - "id": 1171, + "id": 1436, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1166, + "id": 1431, "name": "name", "nodeType": "VariableDeclaration", - "scope": 1186, - "src": "410:11:8", + "scope": 1453, + "src": "480:11:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -559,10 +613,10 @@ "typeString": "string" }, "typeName": { - "id": 1165, + "id": 1430, "name": "string", "nodeType": "ElementaryTypeName", - "src": "410:6:8", + "src": "480:6:9", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -573,11 +627,11 @@ }, { "constant": false, - "id": 1168, + "id": 1433, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 1186, - "src": "423:13:8", + "scope": 1453, + "src": "493:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -585,10 +639,10 @@ "typeString": "string" }, "typeName": { - "id": 1167, + "id": 1432, "name": "string", "nodeType": "ElementaryTypeName", - "src": "423:6:8", + "src": "493:6:9", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -599,11 +653,11 @@ }, { "constant": false, - "id": 1170, + "id": 1435, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 1186, - "src": "438:14:8", + "scope": 1453, + "src": "508:14:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -611,10 +665,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1169, + "id": 1434, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "438:5:8", + "src": "508:5:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -624,50 +678,50 @@ "visibility": "internal" } ], - "src": "409:44:8" + "src": "479:44:9" }, "payable": false, "returnParameters": { - "id": 1172, + "id": 1439, "nodeType": "ParameterList", "parameters": [], - "src": "461:0:8" + "src": "543:0:9" }, - "scope": 1211, - "src": "398:134:8", + "scope": 1482, + "src": "460:154:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1193, + "id": 1460, "nodeType": "Block", - "src": "628:23:8", + "src": "710:23:9", "statements": [ { "expression": { "argumentTypes": null, - "id": 1191, + "id": 1458, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1160, - "src": "641:5:8", + "referencedDeclaration": 1425, + "src": "723:5:9", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "functionReturnParameters": 1190, - "id": 1192, + "functionReturnParameters": 1457, + "id": 1459, "nodeType": "Return", - "src": "634:12:8" + "src": "716:12:9" } ] }, "documentation": "@return the name of the token.", - "id": 1194, + "id": 1461, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -675,23 +729,23 @@ "name": "name", "nodeType": "FunctionDefinition", "parameters": { - "id": 1187, + "id": 1454, "nodeType": "ParameterList", "parameters": [], - "src": "597:2:8" + "src": "679:2:9" }, "payable": false, "returnParameters": { - "id": 1190, + "id": 1457, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1189, + "id": 1456, "name": "", "nodeType": "VariableDeclaration", - "scope": 1194, - "src": "620:6:8", + "scope": 1461, + "src": "702:6:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -699,10 +753,10 @@ "typeString": "string" }, "typeName": { - "id": 1188, + "id": 1455, "name": "string", "nodeType": "ElementaryTypeName", - "src": "620:6:8", + "src": "702:6:9", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -712,43 +766,43 @@ "visibility": "internal" } ], - "src": "619:8:8" + "src": "701:8:9" }, - "scope": 1211, - "src": "584:67:8", + "scope": 1482, + "src": "666:67:9", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1201, + "id": 1468, "nodeType": "Block", - "src": "751:25:8", + "src": "833:25:9", "statements": [ { "expression": { "argumentTypes": null, - "id": 1199, + "id": 1466, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1162, - "src": "764:7:8", + "referencedDeclaration": 1427, + "src": "846:7:9", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "functionReturnParameters": 1198, - "id": 1200, + "functionReturnParameters": 1465, + "id": 1467, "nodeType": "Return", - "src": "757:14:8" + "src": "839:14:9" } ] }, "documentation": "@return the symbol of the token.", - "id": 1202, + "id": 1469, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -756,23 +810,23 @@ "name": "symbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 1195, + "id": 1462, "nodeType": "ParameterList", "parameters": [], - "src": "720:2:8" + "src": "802:2:9" }, "payable": false, "returnParameters": { - "id": 1198, + "id": 1465, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1197, + "id": 1464, "name": "", "nodeType": "VariableDeclaration", - "scope": 1202, - "src": "743:6:8", + "scope": 1469, + "src": "825:6:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -780,10 +834,10 @@ "typeString": "string" }, "typeName": { - "id": 1196, + "id": 1463, "name": "string", "nodeType": "ElementaryTypeName", - "src": "743:6:8", + "src": "825:6:9", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -793,43 +847,43 @@ "visibility": "internal" } ], - "src": "742:8:8" + "src": "824:8:9" }, - "scope": 1211, - "src": "705:71:8", + "scope": 1482, + "src": "787:71:9", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1209, + "id": 1476, "nodeType": "Block", - "src": "889:27:8", + "src": "971:27:9", "statements": [ { "expression": { "argumentTypes": null, - "id": 1207, + "id": 1474, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "902:9:8", + "referencedDeclaration": 1429, + "src": "984:9:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "functionReturnParameters": 1206, - "id": 1208, + "functionReturnParameters": 1473, + "id": 1475, "nodeType": "Return", - "src": "895:16:8" + "src": "977:16:9" } ] }, "documentation": "@return the number of decimals of the token.", - "id": 1210, + "id": 1477, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -837,23 +891,23 @@ "name": "decimals", "nodeType": "FunctionDefinition", "parameters": { - "id": 1203, + "id": 1470, "nodeType": "ParameterList", "parameters": [], - "src": "859:2:8" + "src": "941:2:9" }, "payable": false, "returnParameters": { - "id": 1206, + "id": 1473, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1205, + "id": 1472, "name": "", "nodeType": "VariableDeclaration", - "scope": 1210, - "src": "882:5:8", + "scope": 1477, + "src": "964:5:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -861,10 +915,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1204, + "id": 1471, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "882:5:8", + "src": "964:5:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -874,33 +928,86 @@ "visibility": "internal" } ], - "src": "881:7:8" + "src": "963:7:9" }, - "scope": 1211, - "src": "842:74:8", + "scope": 1482, + "src": "924:74:9", "stateMutability": "view", "superFunction": null, "visibility": "public" + }, + { + "constant": false, + "id": 1481, + "name": "______gap", + "nodeType": "VariableDeclaration", + "scope": 1482, + "src": "1002:29:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage", + "typeString": "uint256[50]" + }, + "typeName": { + "baseType": { + "id": 1478, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1002:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1480, + "length": { + "argumentTypes": null, + "hexValue": "3530", + "id": 1479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1010:2:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "50" + }, + "nodeType": "ArrayTypeName", + "src": "1002:11:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", + "typeString": "uint256[50]" + } + }, + "value": null, + "visibility": "private" } ], - "scope": 1212, - "src": "283:635:8" + "scope": 1483, + "src": "330:704:9" } ], - "src": "0:919:8" + "src": "0:1035:9" }, "legacyAST": { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol", "exportedSymbols": { "ERC20Detailed": [ - 1211 + 1482 ] }, - "id": 1212, + "id": 1483, "nodeType": "SourceUnit", "nodes": [ { - "id": 1155, + "id": 1417, "literals": [ "solidity", "^", @@ -908,16 +1015,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:8" + "src": "0:24:9" + }, + { + "absolutePath": "zos-lib/contracts/Initializable.sol", + "file": "zos-lib/contracts/Initializable.sol", + "id": 1418, + "nodeType": "ImportDirective", + "scope": 1483, + "sourceUnit": 1608, + "src": "26:45:9", + "symbolAliases": [], + "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/IERC20.sol", "file": "./IERC20.sol", - "id": 1156, + "id": 1419, "nodeType": "ImportDirective", - "scope": 1212, - "sourceUnit": 1281, - "src": "26:22:8", + "scope": 1483, + "sourceUnit": 1552, + "src": "72:22:9", "symbolAliases": [], "unitAlias": "" }, @@ -927,42 +1045,62 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1157, + "id": 1420, + "name": "Initializable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1607, + "src": "356:13:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Initializable_$1607", + "typeString": "contract Initializable" + } + }, + "id": 1421, + "nodeType": "InheritanceSpecifier", + "src": "356:13:9" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1422, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1280, - "src": "309:6:8", + "referencedDeclaration": 1551, + "src": "371:6:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1280", + "typeIdentifier": "t_contract$_IERC20_$1551", "typeString": "contract IERC20" } }, - "id": 1158, + "id": 1423, "nodeType": "InheritanceSpecifier", - "src": "309:6:8" + "src": "371:6:9" } ], "contractDependencies": [ - 1280 + 1551, + 1607 ], "contractKind": "contract", "documentation": "@title ERC20Detailed token\n@dev The decimals are only for visualization purposes.\nAll the operations are done using the smallest and indivisible token unit,\njust as on Ethereum all the operations are done in wei.", "fullyImplemented": false, - "id": 1211, + "id": 1482, "linearizedBaseContracts": [ - 1211, - 1280 + 1482, + 1551, + 1607 ], "name": "ERC20Detailed", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1160, + "id": 1425, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "320:20:8", + "scope": 1482, + "src": "382:20:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -970,10 +1108,10 @@ "typeString": "string" }, "typeName": { - "id": 1159, + "id": 1424, "name": "string", "nodeType": "ElementaryTypeName", - "src": "320:6:8", + "src": "382:6:9", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -984,11 +1122,11 @@ }, { "constant": false, - "id": 1162, + "id": 1427, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "344:22:8", + "scope": 1482, + "src": "406:22:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -996,10 +1134,10 @@ "typeString": "string" }, "typeName": { - "id": 1161, + "id": 1426, "name": "string", "nodeType": "ElementaryTypeName", - "src": "344:6:8", + "src": "406:6:9", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1010,11 +1148,11 @@ }, { "constant": false, - "id": 1164, + "id": 1429, "name": "_decimals", "nodeType": "VariableDeclaration", - "scope": 1211, - "src": "370:23:8", + "scope": 1482, + "src": "432:23:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1022,10 +1160,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1163, + "id": 1428, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "370:5:8", + "src": "432:5:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1036,26 +1174,26 @@ }, { "body": { - "id": 1185, + "id": 1452, "nodeType": "Block", - "src": "461:71:8", + "src": "543:71:9", "statements": [ { "expression": { "argumentTypes": null, - "id": 1175, + "id": 1442, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1173, + "id": 1440, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1160, - "src": "467:5:8", + "referencedDeclaration": 1425, + "src": "549:5:9", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -1065,43 +1203,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1174, + "id": 1441, "name": "name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1166, - "src": "475:4:8", + "referencedDeclaration": 1431, + "src": "557:4:9", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "467:12:8", + "src": "549:12:9", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1176, + "id": 1443, "nodeType": "ExpressionStatement", - "src": "467:12:8" + "src": "549:12:9" }, { "expression": { "argumentTypes": null, - "id": 1179, + "id": 1446, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1177, + "id": 1444, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1162, - "src": "485:7:8", + "referencedDeclaration": 1427, + "src": "567:7:9", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" @@ -1111,43 +1249,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1178, + "id": 1445, "name": "symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1168, - "src": "495:6:8", + "referencedDeclaration": 1433, + "src": "577:6:9", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "src": "485:16:8", + "src": "567:16:9", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "id": 1180, + "id": 1447, "nodeType": "ExpressionStatement", - "src": "485:16:8" + "src": "567:16:9" }, { "expression": { "argumentTypes": null, - "id": 1183, + "id": 1450, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1181, + "id": 1448, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "507:9:8", + "referencedDeclaration": 1429, + "src": "589:9:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1157,48 +1295,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1182, + "id": 1449, "name": "decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1170, - "src": "519:8:8", + "referencedDeclaration": 1435, + "src": "601:8:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "507:20:8", + "src": "589:20:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 1184, + "id": 1451, "nodeType": "ExpressionStatement", - "src": "507:20:8" + "src": "589:20:9" } ] }, "documentation": null, - "id": 1186, + "id": 1453, "implemented": true, - "isConstructor": true, + "isConstructor": false, "isDeclaredConst": false, - "modifiers": [], - "name": "", + "modifiers": [ + { + "arguments": null, + "id": 1438, + "modifierName": { + "argumentTypes": null, + "id": 1437, + "name": "initializer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1588, + "src": "531:11:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "531:11:9" + } + ], + "name": "initialize", "nodeType": "FunctionDefinition", "parameters": { - "id": 1171, + "id": 1436, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1166, + "id": 1431, "name": "name", "nodeType": "VariableDeclaration", - "scope": 1186, - "src": "410:11:8", + "scope": 1453, + "src": "480:11:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1206,10 +1364,10 @@ "typeString": "string" }, "typeName": { - "id": 1165, + "id": 1430, "name": "string", "nodeType": "ElementaryTypeName", - "src": "410:6:8", + "src": "480:6:9", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1220,11 +1378,11 @@ }, { "constant": false, - "id": 1168, + "id": 1433, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 1186, - "src": "423:13:8", + "scope": 1453, + "src": "493:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1232,10 +1390,10 @@ "typeString": "string" }, "typeName": { - "id": 1167, + "id": 1432, "name": "string", "nodeType": "ElementaryTypeName", - "src": "423:6:8", + "src": "493:6:9", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1246,11 +1404,11 @@ }, { "constant": false, - "id": 1170, + "id": 1435, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 1186, - "src": "438:14:8", + "scope": 1453, + "src": "508:14:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1258,10 +1416,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1169, + "id": 1434, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "438:5:8", + "src": "508:5:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1271,50 +1429,50 @@ "visibility": "internal" } ], - "src": "409:44:8" + "src": "479:44:9" }, "payable": false, "returnParameters": { - "id": 1172, + "id": 1439, "nodeType": "ParameterList", "parameters": [], - "src": "461:0:8" + "src": "543:0:9" }, - "scope": 1211, - "src": "398:134:8", + "scope": 1482, + "src": "460:154:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1193, + "id": 1460, "nodeType": "Block", - "src": "628:23:8", + "src": "710:23:9", "statements": [ { "expression": { "argumentTypes": null, - "id": 1191, + "id": 1458, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1160, - "src": "641:5:8", + "referencedDeclaration": 1425, + "src": "723:5:9", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "functionReturnParameters": 1190, - "id": 1192, + "functionReturnParameters": 1457, + "id": 1459, "nodeType": "Return", - "src": "634:12:8" + "src": "716:12:9" } ] }, "documentation": "@return the name of the token.", - "id": 1194, + "id": 1461, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1322,23 +1480,23 @@ "name": "name", "nodeType": "FunctionDefinition", "parameters": { - "id": 1187, + "id": 1454, "nodeType": "ParameterList", "parameters": [], - "src": "597:2:8" + "src": "679:2:9" }, "payable": false, "returnParameters": { - "id": 1190, + "id": 1457, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1189, + "id": 1456, "name": "", "nodeType": "VariableDeclaration", - "scope": 1194, - "src": "620:6:8", + "scope": 1461, + "src": "702:6:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1346,10 +1504,10 @@ "typeString": "string" }, "typeName": { - "id": 1188, + "id": 1455, "name": "string", "nodeType": "ElementaryTypeName", - "src": "620:6:8", + "src": "702:6:9", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1359,43 +1517,43 @@ "visibility": "internal" } ], - "src": "619:8:8" + "src": "701:8:9" }, - "scope": 1211, - "src": "584:67:8", + "scope": 1482, + "src": "666:67:9", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1201, + "id": 1468, "nodeType": "Block", - "src": "751:25:8", + "src": "833:25:9", "statements": [ { "expression": { "argumentTypes": null, - "id": 1199, + "id": 1466, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1162, - "src": "764:7:8", + "referencedDeclaration": 1427, + "src": "846:7:9", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, - "functionReturnParameters": 1198, - "id": 1200, + "functionReturnParameters": 1465, + "id": 1467, "nodeType": "Return", - "src": "757:14:8" + "src": "839:14:9" } ] }, "documentation": "@return the symbol of the token.", - "id": 1202, + "id": 1469, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1403,23 +1561,23 @@ "name": "symbol", "nodeType": "FunctionDefinition", "parameters": { - "id": 1195, + "id": 1462, "nodeType": "ParameterList", "parameters": [], - "src": "720:2:8" + "src": "802:2:9" }, "payable": false, "returnParameters": { - "id": 1198, + "id": 1465, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1197, + "id": 1464, "name": "", "nodeType": "VariableDeclaration", - "scope": 1202, - "src": "743:6:8", + "scope": 1469, + "src": "825:6:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1427,10 +1585,10 @@ "typeString": "string" }, "typeName": { - "id": 1196, + "id": 1463, "name": "string", "nodeType": "ElementaryTypeName", - "src": "743:6:8", + "src": "825:6:9", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1440,43 +1598,43 @@ "visibility": "internal" } ], - "src": "742:8:8" + "src": "824:8:9" }, - "scope": 1211, - "src": "705:71:8", + "scope": 1482, + "src": "787:71:9", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1209, + "id": 1476, "nodeType": "Block", - "src": "889:27:8", + "src": "971:27:9", "statements": [ { "expression": { "argumentTypes": null, - "id": 1207, + "id": 1474, "name": "_decimals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "902:9:8", + "referencedDeclaration": 1429, + "src": "984:9:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "functionReturnParameters": 1206, - "id": 1208, + "functionReturnParameters": 1473, + "id": 1475, "nodeType": "Return", - "src": "895:16:8" + "src": "977:16:9" } ] }, "documentation": "@return the number of decimals of the token.", - "id": 1210, + "id": 1477, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1484,23 +1642,23 @@ "name": "decimals", "nodeType": "FunctionDefinition", "parameters": { - "id": 1203, + "id": 1470, "nodeType": "ParameterList", "parameters": [], - "src": "859:2:8" + "src": "941:2:9" }, "payable": false, "returnParameters": { - "id": 1206, + "id": 1473, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1205, + "id": 1472, "name": "", "nodeType": "VariableDeclaration", - "scope": 1210, - "src": "882:5:8", + "scope": 1477, + "src": "964:5:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1508,10 +1666,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1204, + "id": 1471, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "882:5:8", + "src": "964:5:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1521,20 +1679,73 @@ "visibility": "internal" } ], - "src": "881:7:8" + "src": "963:7:9" }, - "scope": 1211, - "src": "842:74:8", + "scope": 1482, + "src": "924:74:9", "stateMutability": "view", "superFunction": null, "visibility": "public" + }, + { + "constant": false, + "id": 1481, + "name": "______gap", + "nodeType": "VariableDeclaration", + "scope": 1482, + "src": "1002:29:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage", + "typeString": "uint256[50]" + }, + "typeName": { + "baseType": { + "id": 1478, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1002:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1480, + "length": { + "argumentTypes": null, + "hexValue": "3530", + "id": 1479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1010:2:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "50" + }, + "nodeType": "ArrayTypeName", + "src": "1002:11:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", + "typeString": "uint256[50]" + } + }, + "value": null, + "visibility": "private" } ], - "scope": 1212, - "src": "283:635:8" + "scope": 1483, + "src": "330:704:9" } ], - "src": "0:919:8" + "src": "0:1035:9" }, "compiler": { "name": "solc", @@ -1542,7 +1753,7 @@ }, "networks": {}, "schemaVersion": "3.0.0-beta.1", - "updatedAt": "2018-12-16T19:14:46.488Z", + "updatedAt": "2018-12-17T02:12:29.703Z", "devdoc": { "methods": { "decimals()": { diff --git a/src/build/contracts/EthPolynomialCurvedToken.json b/src/build/contracts/EthPolynomialCurvedToken.json deleted file mode 100644 index 7bbff7f..0000000 --- a/src/build/contracts/EthPolynomialCurvedToken.json +++ /dev/null @@ -1,3930 +0,0 @@ -{ - "contractName": "EthPolynomialCurvedToken", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "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": true, - "inputs": [], - "name": "decimals", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "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": "numTokens", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "exponent", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "inverseSlope", - "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": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "poolBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "numTokens", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "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" - }, - { - "inputs": [ - { - "name": "name", - "type": "string" - }, - { - "name": "symbol", - "type": "string" - }, - { - "name": "decimals", - "type": "uint8" - }, - { - "name": "_exponent", - "type": "uint256" - }, - { - "name": "_inverseSlope", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "totalCost", - "type": "uint256" - } - ], - "name": "Minted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "reward", - "type": "uint256" - } - ], - "name": "Burned", - "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" - }, - { - "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": true, - "inputs": [ - { - "name": "numTokens", - "type": "uint256" - } - ], - "name": "priceToMint", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "numTokens", - "type": "uint256" - } - ], - "name": "rewardForBurn", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b5060405162001c5c38038062001c5c833981018060405281019080805182019291906020018051820192919060200180519060200190929190805190602001909291908051906020019092919050505084848482828282600090805190602001906200007f929190620000d3565b50816001908051906020019062000098929190620000d3565b5080600260006101000a81548160ff021916908360ff1602179055505050505050508160078190555080600881905550505050505062000182565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200011657805160ff191683800117855562000147565b8280016001018555821562000147579182015b828111156200014657825182559160200191906001019062000129565b5b5090506200015691906200015a565b5090565b6200017f91905b808211156200017b57600081600090555060010162000161565b5090565b90565b611aca80620001926000396000f3006080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610101578063095ea7b31461019157806318160ddd146101f657806323b872dd14610221578063313ce567146102a657806339509351146102d757806342966c681461033c57806352f6ee58146103695780636400be1d1461039457806370a08231146103bf57806395d89b411461041657806396365d44146104a6578063a0712d68146104d1578063a457c2d7146104f1578063a9059cbb14610556578063b9d36743146105bb578063c544682b146105fc578063dd62ed3e1461063d575b600080fd5b34801561010d57600080fd5b506101166106b4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561015657808201518184015260208101905061013b565b50505050905090810190601f1680156101835780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561019d57600080fd5b506101dc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610756565b604051808215151515815260200191505060405180910390f35b34801561020257600080fd5b5061020b610883565b6040518082815260200191505060405180910390f35b34801561022d57600080fd5b5061028c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061088d565b604051808215151515815260200191505060405180910390f35b3480156102b257600080fd5b506102bb610a3f565b604051808260ff1660ff16815260200191505060405180910390f35b3480156102e357600080fd5b50610322600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a56565b604051808215151515815260200191505060405180910390f35b34801561034857600080fd5b5061036760048036038101908080359060200190929190505050610c8d565b005b34801561037557600080fd5b5061037e610e66565b6040518082815260200191505060405180910390f35b3480156103a057600080fd5b506103a9610e6c565b6040518082815260200191505060405180910390f35b3480156103cb57600080fd5b50610400600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e72565b6040518082815260200191505060405180910390f35b34801561042257600080fd5b5061042b610ebb565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561046b578082015181840152602081019050610450565b50505050905090810190601f1680156104985780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104b257600080fd5b506104bb610f5d565b6040518082815260200191505060405180910390f35b6104ef60048036038101908080359060200190929190505050610f63565b005b3480156104fd57600080fd5b5061053c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611175565b604051808215151515815260200191505060405180910390f35b34801561056257600080fd5b506105a1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113ac565b604051808215151515815260200191505060405180910390f35b3480156105c757600080fd5b506105e6600480360381019080803590602001909291905050506113c3565b6040518082815260200191505060405180910390f35b34801561060857600080fd5b5061062760048036038101908080359060200190929190505050611402565b6040518082815260200191505060405180910390f35b34801561064957600080fd5b5061069e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611441565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561074c5780601f106107215761010080835404028352916020019161074c565b820191906000526020600020905b81548152906001019060200180831161072f57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561079357600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561091a57600080fd5b6109a982600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114c890919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a348484846114e9565b600190509392505050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610a9357600080fd5b610b2282600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461170790919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008082111515610d2c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d757374206275726e20616e20616d6f756e742067726561746572207468616e81526020017f207a65726f2e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81610d3633610e72565b10151515610dac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d757374206861766520656e6f75676820746f6b656e7320746f206275726e2e81525060200191505060405180910390fd5b610db582611402565b9050610dc13383611728565b610dd6816006546114c890919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610e22573d6000803e3d6000fd5b507fcec1bae6e024d929f2929f3478ce70f55f9c636c8ef7b5073a61d7c3a432451b8282604051808381526020018281526020019250505060405180910390a15050565b60075481565b60085481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f535780601f10610f2857610100808354040283529160200191610f53565b820191906000526020600020905b815481529060010190602001808311610f3657829003601f168201915b5050505050905090565b60065481565b60008082111515611002576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4d75737420707572636861736520616e20616d6f756e7420677265617465722081526020017f7468616e207a65726f2e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61100b826113c3565b90508034101515156110ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6110b533836118b6565b6110ca8160065461170790919063ffffffff16565b60068190555080341115611132573373ffffffffffffffffffffffffffffffffffffffff166108fc61110583346114c890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611130573d6000803e3d6000fd5b505b7f8a9dcf4e150b1153011b29fec302d5be0c13e84fa8f56ab78587f778a32a90dd8282604051808381526020018281526020019250505060405180910390a15050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156111b257600080fd5b61124182600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114c890919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60006113b93384846114e9565b6001905092915050565b60006113fb6006546113ed6113e8856113da610883565b61170790919063ffffffff16565b6119f6565b6114c890919063ffffffff16565b9050919050565b600061143a61142961142484611416610883565b6114c890919063ffffffff16565b6119f6565b6006546114c890919063ffffffff16565b9050919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000808383111515156114da57600080fd5b82840390508091505092915050565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561153757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561157357600080fd5b6115c581600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114c890919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061165a81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461170790919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080828401905083811015151561171e57600080fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff161415151561174e57600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561179c57600080fd5b6117b1816005546114c890919063ffffffff16565b60058190555061180981600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114c890919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008273ffffffffffffffffffffffffffffffffffffffff16141515156118dc57600080fd5b6118f18160055461170790919063ffffffff16565b60058190555061194981600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461170790919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000806000611a11600160075461170790919063ffffffff16565b9150601282611a1e610a3f565b60ff1602600a0a039050611a6b670de0b6b3a7640000611a5d600854611a4f86878a0a611a7490919063ffffffff16565b611a7490919063ffffffff16565b611a7490919063ffffffff16565b92505050919050565b600080600083111515611a8657600080fd5b8284811515611a9157fe5b04905080915050929150505600a165627a7a72305820c272abe29c72b1597c45f9b71edc9958c686ed01a234b059f02f5e23027eaf810029", - "deployedBytecode": "0x6080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610101578063095ea7b31461019157806318160ddd146101f657806323b872dd14610221578063313ce567146102a657806339509351146102d757806342966c681461033c57806352f6ee58146103695780636400be1d1461039457806370a08231146103bf57806395d89b411461041657806396365d44146104a6578063a0712d68146104d1578063a457c2d7146104f1578063a9059cbb14610556578063b9d36743146105bb578063c544682b146105fc578063dd62ed3e1461063d575b600080fd5b34801561010d57600080fd5b506101166106b4565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561015657808201518184015260208101905061013b565b50505050905090810190601f1680156101835780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561019d57600080fd5b506101dc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610756565b604051808215151515815260200191505060405180910390f35b34801561020257600080fd5b5061020b610883565b6040518082815260200191505060405180910390f35b34801561022d57600080fd5b5061028c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061088d565b604051808215151515815260200191505060405180910390f35b3480156102b257600080fd5b506102bb610a3f565b604051808260ff1660ff16815260200191505060405180910390f35b3480156102e357600080fd5b50610322600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a56565b604051808215151515815260200191505060405180910390f35b34801561034857600080fd5b5061036760048036038101908080359060200190929190505050610c8d565b005b34801561037557600080fd5b5061037e610e66565b6040518082815260200191505060405180910390f35b3480156103a057600080fd5b506103a9610e6c565b6040518082815260200191505060405180910390f35b3480156103cb57600080fd5b50610400600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e72565b6040518082815260200191505060405180910390f35b34801561042257600080fd5b5061042b610ebb565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561046b578082015181840152602081019050610450565b50505050905090810190601f1680156104985780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156104b257600080fd5b506104bb610f5d565b6040518082815260200191505060405180910390f35b6104ef60048036038101908080359060200190929190505050610f63565b005b3480156104fd57600080fd5b5061053c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611175565b604051808215151515815260200191505060405180910390f35b34801561056257600080fd5b506105a1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113ac565b604051808215151515815260200191505060405180910390f35b3480156105c757600080fd5b506105e6600480360381019080803590602001909291905050506113c3565b6040518082815260200191505060405180910390f35b34801561060857600080fd5b5061062760048036038101908080359060200190929190505050611402565b6040518082815260200191505060405180910390f35b34801561064957600080fd5b5061069e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611441565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561074c5780601f106107215761010080835404028352916020019161074c565b820191906000526020600020905b81548152906001019060200180831161072f57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561079357600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561091a57600080fd5b6109a982600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114c890919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a348484846114e9565b600190509392505050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610a9357600080fd5b610b2282600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461170790919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008082111515610d2c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d757374206275726e20616e20616d6f756e742067726561746572207468616e81526020017f207a65726f2e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81610d3633610e72565b10151515610dac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d757374206861766520656e6f75676820746f6b656e7320746f206275726e2e81525060200191505060405180910390fd5b610db582611402565b9050610dc13383611728565b610dd6816006546114c890919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610e22573d6000803e3d6000fd5b507fcec1bae6e024d929f2929f3478ce70f55f9c636c8ef7b5073a61d7c3a432451b8282604051808381526020018281526020019250505060405180910390a15050565b60075481565b60085481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f535780601f10610f2857610100808354040283529160200191610f53565b820191906000526020600020905b815481529060010190602001808311610f3657829003601f168201915b5050505050905090565b60065481565b60008082111515611002576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4d75737420707572636861736520616e20616d6f756e7420677265617465722081526020017f7468616e207a65726f2e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61100b826113c3565b90508034101515156110ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6110b533836118b6565b6110ca8160065461170790919063ffffffff16565b60068190555080341115611132573373ffffffffffffffffffffffffffffffffffffffff166108fc61110583346114c890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611130573d6000803e3d6000fd5b505b7f8a9dcf4e150b1153011b29fec302d5be0c13e84fa8f56ab78587f778a32a90dd8282604051808381526020018281526020019250505060405180910390a15050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156111b257600080fd5b61124182600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114c890919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60006113b93384846114e9565b6001905092915050565b60006113fb6006546113ed6113e8856113da610883565b61170790919063ffffffff16565b6119f6565b6114c890919063ffffffff16565b9050919050565b600061143a61142961142484611416610883565b6114c890919063ffffffff16565b6119f6565b6006546114c890919063ffffffff16565b9050919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000808383111515156114da57600080fd5b82840390508091505092915050565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561153757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561157357600080fd5b6115c581600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114c890919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061165a81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461170790919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080828401905083811015151561171e57600080fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff161415151561174e57600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561179c57600080fd5b6117b1816005546114c890919063ffffffff16565b60058190555061180981600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114c890919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008273ffffffffffffffffffffffffffffffffffffffff16141515156118dc57600080fd5b6118f18160055461170790919063ffffffff16565b60058190555061194981600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461170790919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000806000611a11600160075461170790919063ffffffff16565b9150601282611a1e610a3f565b60ff1602600a0a039050611a6b670de0b6b3a7640000611a5d600854611a4f86878a0a611a7490919063ffffffff16565b611a7490919063ffffffff16565b611a7490919063ffffffff16565b92505050919050565b600080600083111515611a8657600080fd5b8284811515611a9157fe5b04905080915050929150505600a165627a7a72305820c272abe29c72b1597c45f9b71edc9958c686ed01a234b059f02f5e23027eaf810029", - "sourceMap": "64:1445:5:-;;;485:287;8:9:-1;5:2;;;30:1;27;20:12;5:2;485:287:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;653:4;659:6;667:8;557:4:4;563:6;571:8;475:4:8;467:5;:12;;;;;;;;;;;;:::i;:::-;;495:6;485:7;:16;;;;;;;;;;;;:::i;:::-;;519:8;507:9;;:20;;;;;;;;;;;;;;;;;;398:134;;;455:147:4;;;718:9:5;707:8;:20;;;;752:13;737:12;:28;;;;485:287;;;;;64:1445;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "64:1445:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;584:67:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;584:67:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;584:67:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2380:220:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2380:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;640:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;640:83:7;;;;;;;;;;;;;;;;;;;;;;;2872:288;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2872:288:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;842:74:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;842:74:8;;;;;;;;;;;;;;;;;;;;;;;;;;;3611:330:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3611:330:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1307:445:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1307:445:4;;;;;;;;;;;;;;;;;;;;;;;;;;130:23:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;130:23:5;;;;;;;;;;;;;;;;;;;;;;;159:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;159:27:5;;;;;;;;;;;;;;;;;;;;;;;920:98:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;920:98:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;705:71:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;705:71:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;705:71:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;318:26:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;318:26:4;;;;;;;;;;;;;;;;;;;;;;;762:539;;;;;;;;;;;;;;;;;;;;;;;;;;4397:340:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4397:340:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1637:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1637:127:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1193:153:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1193:153:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1352:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1352:155:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1335:150:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1335:150:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;584:67:8;620:6;641:5;634:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;584:67;:::o;2380:220:7:-;2445:4;2484:1;2465:21;;:7;:21;;;;2457:30;;;;;;;;2526:5;2494:8;:20;2503:10;2494:20;;;;;;;;;;;;;;;:29;2515:7;2494:29;;;;;;;;;;;;;;;:37;;;;2563:7;2542:36;;2551:10;2542:36;;;2572:5;2542:36;;;;;;;;;;;;;;;;;;2591:4;2584:11;;2380:220;;;;:::o;640:83::-;684:7;706:12;;699:19;;640:83;:::o;2872:288::-;2975:4;3006:8;:14;3015:4;3006:14;;;;;;;;;;;;;;;:26;3021:10;3006:26;;;;;;;;;;;;;;;;2997:5;:35;;2989:44;;;;;;;;3069:37;3100:5;3069:8;:14;3078:4;3069:14;;;;;;;;;;;;;;;:26;3084:10;3069:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;3040:8;:14;3049:4;3040:14;;;;;;;;;;;;;;;:26;3055:10;3040:26;;;;;;;;;;;;;;;:66;;;;3112:26;3122:4;3128:2;3132:5;3112:9;:26::i;:::-;3151:4;3144:11;;2872:288;;;;;:::o;842:74:8:-;882:5;902:9;;;;;;;;;;;895:16;;842:74;:::o;3611:330:7:-;3711:4;3752:1;3733:21;;:7;:21;;;;3725:30;;;;;;;;3802:45;3836:10;3802:8;:20;3811:10;3802:20;;;;;;;;;;;;;;;:29;3823:7;3802:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;3762:8;:20;3771:10;3762:20;;;;;;;;;;;;;;;:29;3783:7;3762:29;;;;;;;;;;;;;;;:86;;;;3880:7;3859:60;;3868:10;3859:60;;;3889:8;:20;3898:10;3889:20;;;;;;;;;;;;;;;:29;3910:7;3889:29;;;;;;;;;;;;;;;;3859:60;;;;;;;;;;;;;;;;;;3932:4;3925:11;;3611:330;;;;:::o;1307:445:4:-;1521:19;1377:1;1365:9;:13;1357:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1464:9;1439:21;1449:10;1439:9;:21::i;:::-;:34;;1431:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1543:24;1557:9;1543:13;:24::i;:::-;1521:46;;1577:28;1583:10;1595:9;1577:5;:28::i;:::-;1629;1645:11;1629;;:15;;:28;;;;:::i;:::-;1615:11;:42;;;;1667:10;:19;;:32;1687:11;1667:32;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1667:32:4;1715:30;1722:9;1733:11;1715:30;;;;;;;;;;;;;;;;;;;;;;;;1307:445;;:::o;130:23:5:-;;;;:::o;159:27::-;;;;:::o;920:98:7:-;975:7;997:9;:16;1007:5;997:16;;;;;;;;;;;;;;;;990:23;;920:98;;;:::o;705:71:8:-;743:6;764:7;757:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;705:71;:::o;318:26:4:-;;;;:::o;762:539::-;899:22;840:1;828:9;:13;820:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;924:22;936:9;924:11;:22::i;:::-;899:47;;977:14;964:9;:27;;956:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1046:28;1052:10;1064:9;1046:5;:28::i;:::-;1098:31;1114:14;1098:11;;:15;;:31;;;;:::i;:::-;1084:11;:45;;;;1155:14;1143:9;:26;1139:107;;;1185:10;:19;;:50;1205:29;1219:14;1205:9;:13;;:29;;;;:::i;:::-;1185:50;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1185:50:4;1139:107;1261:33;1268:9;1279:14;1261:33;;;;;;;;;;;;;;;;;;;;;;;;762:539;;:::o;4397:340:7:-;4502:4;4543:1;4524:21;;:7;:21;;;;4516:30;;;;;;;;4593:50;4627:15;4593:8;:20;4602:10;4593:20;;;;;;;;;;;;;;;:29;4614:7;4593:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;4553:8;:20;4562:10;4553:20;;;;;;;;;;;;;;;:29;4574:7;4553:29;;;;;;;;;;;;;;;:91;;;;4676:7;4655:60;;4664:10;4655:60;;;4685:8;:20;4694:10;4685:20;;;;;;;;;;;;;;;:29;4706:7;4685:29;;;;;;;;;;;;;;;;4655:60;;;;;;;;;;;;;;;;;;4728:4;4721:11;;4397:340;;;;:::o;1637:127::-;1698:4;1710:32;1720:10;1732:2;1736:5;1710:9;:32::i;:::-;1755:4;1748:11;;1637:127;;;;:::o;1193:153:5:-;1253:7;1279:60;1327:11;;1279:43;1293:28;1311:9;1293:13;:11;:13::i;:::-;:17;;:28;;;;:::i;:::-;1279:13;:43::i;:::-;:47;;:60;;;;:::i;:::-;1272:67;;1193:153;;;:::o;1352:155::-;1414:7;1440:60;1456:43;1470:28;1488:9;1470:13;:11;:13::i;:::-;:17;;:28;;;;:::i;:::-;1456:13;:43::i;:::-;1440:11;;:15;;:60;;;;:::i;:::-;1433:67;;1352:155;;;:::o;1335:150:7:-;1432:7;1456:8;:15;1465:5;1456:15;;;;;;;;;;;;;;;:24;1472:7;1456:24;;;;;;;;;;;;;;;;1449:31;;1335:150;;;;:::o;1078:131:6:-;1136:7;1172:9;1164:1;1159;:6;;1151:15;;;;;;;;1188:1;1184;:5;1172:17;;1203:1;1196:8;;1078:131;;;;;:::o;4937:277:7:-;5029:9;:15;5039:4;5029:15;;;;;;;;;;;;;;;;5020:5;:24;;5012:33;;;;;;;;5073:1;5059:16;;:2;:16;;;;5051:25;;;;;;;;5101:26;5121:5;5101:9;:15;5111:4;5101:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;5083:9;:15;5093:4;5083:15;;;;;;;;;;;;;;;:44;;;;5149:24;5167:5;5149:9;:13;5159:2;5149:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;5133:9;:13;5143:2;5133:13;;;;;;;;;;;;;;;:40;;;;5199:2;5184:25;;5193:4;5184:25;;;5203:5;5184:25;;;;;;;;;;;;;;;;;;4937:277;;;:::o;1272:131:6:-;1330:7;1345:9;1361:1;1357;:5;1345:17;;1381:1;1376;:6;;1368:15;;;;;;;;1397:1;1390:8;;1272:131;;;;;:::o;5988:278:7:-;6069:1;6058:7;:12;;;;6050:21;;;;;;;;6094:9;:18;6104:7;6094:18;;;;;;;;;;;;;;;;6085:5;:27;;6077:36;;;;;;;;6135:23;6152:5;6135:12;;:16;;:23;;;;:::i;:::-;6120:12;:38;;;;6185:29;6208:5;6185:9;:18;6195:7;6185:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;6164:9;:18;6174:7;6164:18;;;;;;;;;;;;;;;:50;;;;6251:1;6225:36;;6234:7;6225:36;;;6255:5;6225:36;;;;;;;;;;;;;;;;;;5988:278;;:::o;5541:235::-;5622:1;5611:7;:12;;;;5603:21;;;;;;;;5645:23;5662:5;5645:12;;:16;;:23;;;;:::i;:::-;5630:12;:38;;;;5695:29;5718:5;5695:9;:18;5705:7;5695:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;5674:9;:18;5684:7;5674:18;;;;;;;;;;;;;;;:50;;;;5756:7;5735:36;;5752:1;5735:36;;;5765:5;5735:36;;;;;;;;;;;;;;;;;;5541:235;;:::o;880:307:5:-;932:7;951:12;991;966:15;979:1;966:8;;:12;;:15;;;;:::i;:::-;951:30;;1052:2;1043:4;1021:10;:8;:10::i;:::-;1013:19;;:35;1006:2;:43;:48;991:63;;1127:53;1171:8;1127:39;1153:12;;1127:21;1143:4;1133;1128:1;:9;1127:15;;:21;;;;:::i;:::-;:25;;:39;;;;:::i;:::-;:43;;:53;;;;:::i;:::-;1108:72;;880:307;;;;;:::o;695:270:6:-;753:7;846:9;780:1;776;:5;768:14;;;;;;;;862:1;858;:5;;;;;;;;846:17;;959:1;952:8;;695:270;;;;;:::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"./EthBondingCurveToken.sol\";\n\ncontract EthPolynomialCurvedToken is EthBondingCurvedToken {\n\n uint256 public exponent;\n uint256 public inverseSlope;\n\n /// @dev constructor Initializes the bonding curve\n /// @param name The name of the token\n /// @param decimals The number of decimals to use\n /// @param symbol The symbol of the token\n /// @param _exponent The exponent of the curve\n constructor(\n string name,\n string symbol,\n uint8 decimals,\n uint256 _exponent,\n uint256 _inverseSlope\n ) EthBondingCurvedToken(name, symbol, decimals) \n public\n {\n exponent = _exponent;\n inverseSlope = _inverseSlope;\n }\n\n /// @dev Calculate the integral from 0 to t\n /// @param t The number to integrate to\n function curveIntegral(uint256 t) internal returns (uint256) {\n uint256 nexp = exponent.add(1);\n uint256 norm = 10 ** (uint256(decimals()) * uint256(nexp)) - 18;\n // Calculate integral of t^exponent\n return\n (t ** nexp).div(nexp).div(inverseSlope).div(10 ** 18);\n }\n\n function priceToMint(uint256 numTokens) public view returns(uint256) {\n return curveIntegral(totalSupply().add(numTokens)).sub(poolBalance);\n }\n\n function rewardForBurn(uint256 numTokens) public view returns(uint256) {\n return poolBalance.sub(curveIntegral(totalSupply().sub(numTokens)));\n }\n}\n", - "sourcePath": "@convergent/arc/contracts/EthPolynomialCurvedToken.sol", - "ast": { - "absolutePath": "@convergent/arc/contracts/EthPolynomialCurvedToken.sol", - "exportedSymbols": { - "EthPolynomialCurvedToken": [ - 581 - ] - }, - "id": 582, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 461, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:5" - }, - { - "absolutePath": "@convergent/arc/contracts/EthBondingCurveToken.sol", - "file": "./EthBondingCurveToken.sol", - "id": 462, - "nodeType": "ImportDirective", - "scope": 582, - "sourceUnit": 460, - "src": "26:36:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 463, - "name": "EthBondingCurvedToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 459, - "src": "101:21:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_EthBondingCurvedToken_$459", - "typeString": "contract EthBondingCurvedToken" - } - }, - "id": 464, - "nodeType": "InheritanceSpecifier", - "src": "101:21:5" - } - ], - "contractDependencies": [ - 459, - 1153, - 1211, - 1280 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 581, - "linearizedBaseContracts": [ - 581, - 459, - 1153, - 1211, - 1280 - ], - "name": "EthPolynomialCurvedToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 466, - "name": "exponent", - "nodeType": "VariableDeclaration", - "scope": 581, - "src": "130:23:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 465, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "130:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 468, - "name": "inverseSlope", - "nodeType": "VariableDeclaration", - "scope": 581, - "src": "159:27:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 467, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "159:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 494, - "nodeType": "Block", - "src": "697:75:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 486, - "name": "exponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 466, - "src": "707:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 487, - "name": "_exponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "718:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "707:20:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 489, - "nodeType": "ExpressionStatement", - "src": "707:20:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 490, - "name": "inverseSlope", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 468, - "src": "737:12:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 491, - "name": "_inverseSlope", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "752:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "737:28:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 493, - "nodeType": "ExpressionStatement", - "src": "737:28:5" - } - ] - }, - "documentation": "@dev constructor Initializes the bonding curve\n @param name The name of the token\n @param decimals The number of decimals to use\n @param symbol The symbol of the token\n @param _exponent The exponent of the curve", - "id": 495, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 481, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 470, - "src": "653:4:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 482, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 472, - "src": "659:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 483, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "667:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 484, - "modifierName": { - "argumentTypes": null, - "id": 480, - "name": "EthBondingCurvedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 459, - "src": "631:21:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_EthBondingCurvedToken_$459_$", - "typeString": "type(contract EthBondingCurvedToken)" - } - }, - "nodeType": "ModifierInvocation", - "src": "631:45:5" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 479, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 470, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 495, - "src": "506:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 469, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "506:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 472, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 495, - "src": "527:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 471, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "527:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 474, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 495, - "src": "550:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 473, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "550:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 476, - "name": "_exponent", - "nodeType": "VariableDeclaration", - "scope": 495, - "src": "574:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 475, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "574:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 478, - "name": "_inverseSlope", - "nodeType": "VariableDeclaration", - "scope": 495, - "src": "601:21:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 477, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "601:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "496:132:5" - }, - "payable": false, - "returnParameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [], - "src": "697:0:5" - }, - "scope": 581, - "src": "485:287:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 541, - "nodeType": "Block", - "src": "941:246:5", - "statements": [ - { - "assignments": [ - 503 - ], - "declarations": [ - { - "constant": false, - "id": 503, - "name": "nexp", - "nodeType": "VariableDeclaration", - "scope": 542, - "src": "951:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 502, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "951:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 508, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 506, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "979:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "id": 504, - "name": "exponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 466, - "src": "966:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 688, - "src": "966:12:5", - "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": 507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "966:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "951:30:5" - }, - { - "assignments": [ - 510 - ], - "declarations": [ - { - "constant": false, - "id": 510, - "name": "norm", - "nodeType": "VariableDeclaration", - "scope": 542, - "src": "991:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 509, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "991:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 524, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1006:2:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 513, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1210, - "src": "1021:8:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint8_$", - "typeString": "function () view returns (uint8)" - } - }, - "id": 514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1021:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1013:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1013:19:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 517, - "name": "nexp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 503, - "src": "1043:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1035:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1035:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1013:35:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 520, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1012:37:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1006:43:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3138", - "id": 522, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1052:2:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "1006:48:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "991:63:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 536, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1171:2:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3138", - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1177:2:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "1171:8:5", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 533, - "name": "inverseSlope", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 468, - "src": "1153:12:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 530, - "name": "nexp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 503, - "src": "1143:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 525, - "name": "t", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 497, - "src": "1128:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "id": 526, - "name": "nexp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 503, - "src": "1133:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1128:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 528, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1127:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 529, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 640, - "src": "1127:15:5", - "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": 531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1127:21:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 640, - "src": "1127:25:5", - "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": 534, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1127:39:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 640, - "src": "1127:43:5", - "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": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1127:53:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 501, - "id": 540, - "nodeType": "Return", - "src": "1108:72:5" - } - ] - }, - "documentation": "@dev Calculate the integral from 0 to t\n @param t The number to integrate to", - "id": 542, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "curveIntegral", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 498, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 497, - "name": "t", - "nodeType": "VariableDeclaration", - "scope": 542, - "src": "903:9:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 496, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "903:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "902:11:5" - }, - "payable": false, - "returnParameters": { - "id": 501, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 500, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 542, - "src": "932:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 499, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "932:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "931:9:5" - }, - "scope": 581, - "src": "880:307:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 560, - "nodeType": "Block", - "src": "1262:84:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 557, - "name": "poolBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 299, - "src": "1327:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 553, - "name": "numTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 544, - "src": "1311:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 550, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 738, - "src": "1293:11:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1293:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 688, - "src": "1293:17:5", - "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": 554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1293:28:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 549, - "name": "curveIntegral", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 542, - "src": "1279:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1279:43:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 664, - "src": "1279:47:5", - "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": 558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1279:60:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 548, - "id": 559, - "nodeType": "Return", - "src": "1272:67:5" - } - ] - }, - "documentation": null, - "id": 561, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "priceToMint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 545, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 544, - "name": "numTokens", - "nodeType": "VariableDeclaration", - "scope": 561, - "src": "1214:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 543, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1214:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1213:19:5" - }, - "payable": false, - "returnParameters": { - "id": 548, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 547, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 561, - "src": "1253:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 546, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1253:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1252:9:5" - }, - "scope": 581, - "src": "1193:153:5", - "stateMutability": "view", - "superFunction": 333, - "visibility": "public" - }, - { - "body": { - "id": 579, - "nodeType": "Block", - "src": "1423:84:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 574, - "name": "numTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 563, - "src": "1488:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 571, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 738, - "src": "1470:11:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1470:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 664, - "src": "1470:17:5", - "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": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1470:28:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 570, - "name": "curveIntegral", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 542, - "src": "1456:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1456:43:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 568, - "name": "poolBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 299, - "src": "1440:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 664, - "src": "1440:15:5", - "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": 577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1440:60:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 567, - "id": 578, - "nodeType": "Return", - "src": "1433:67:5" - } - ] - }, - "documentation": null, - "id": 580, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "rewardForBurn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 564, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 563, - "name": "numTokens", - "nodeType": "VariableDeclaration", - "scope": 580, - "src": "1375:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 562, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1375:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1374:19:5" - }, - "payable": false, - "returnParameters": { - "id": 567, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 566, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 580, - "src": "1414:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 565, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1414:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1413:9:5" - }, - "scope": 581, - "src": "1352:155:5", - "stateMutability": "view", - "superFunction": 340, - "visibility": "public" - } - ], - "scope": 582, - "src": "64:1445:5" - } - ], - "src": "0:1510:5" - }, - "legacyAST": { - "absolutePath": "@convergent/arc/contracts/EthPolynomialCurvedToken.sol", - "exportedSymbols": { - "EthPolynomialCurvedToken": [ - 581 - ] - }, - "id": 582, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 461, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:5" - }, - { - "absolutePath": "@convergent/arc/contracts/EthBondingCurveToken.sol", - "file": "./EthBondingCurveToken.sol", - "id": 462, - "nodeType": "ImportDirective", - "scope": 582, - "sourceUnit": 460, - "src": "26:36:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 463, - "name": "EthBondingCurvedToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 459, - "src": "101:21:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_EthBondingCurvedToken_$459", - "typeString": "contract EthBondingCurvedToken" - } - }, - "id": 464, - "nodeType": "InheritanceSpecifier", - "src": "101:21:5" - } - ], - "contractDependencies": [ - 459, - 1153, - 1211, - 1280 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 581, - "linearizedBaseContracts": [ - 581, - 459, - 1153, - 1211, - 1280 - ], - "name": "EthPolynomialCurvedToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 466, - "name": "exponent", - "nodeType": "VariableDeclaration", - "scope": 581, - "src": "130:23:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 465, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "130:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 468, - "name": "inverseSlope", - "nodeType": "VariableDeclaration", - "scope": 581, - "src": "159:27:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 467, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "159:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 494, - "nodeType": "Block", - "src": "697:75:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 486, - "name": "exponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 466, - "src": "707:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 487, - "name": "_exponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 476, - "src": "718:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "707:20:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 489, - "nodeType": "ExpressionStatement", - "src": "707:20:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 490, - "name": "inverseSlope", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 468, - "src": "737:12:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 491, - "name": "_inverseSlope", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "752:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "737:28:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 493, - "nodeType": "ExpressionStatement", - "src": "737:28:5" - } - ] - }, - "documentation": "@dev constructor Initializes the bonding curve\n @param name The name of the token\n @param decimals The number of decimals to use\n @param symbol The symbol of the token\n @param _exponent The exponent of the curve", - "id": 495, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 481, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 470, - "src": "653:4:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 482, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 472, - "src": "659:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 483, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "667:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 484, - "modifierName": { - "argumentTypes": null, - "id": 480, - "name": "EthBondingCurvedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 459, - "src": "631:21:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_EthBondingCurvedToken_$459_$", - "typeString": "type(contract EthBondingCurvedToken)" - } - }, - "nodeType": "ModifierInvocation", - "src": "631:45:5" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 479, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 470, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 495, - "src": "506:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 469, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "506:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 472, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 495, - "src": "527:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 471, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "527:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 474, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 495, - "src": "550:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 473, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "550:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 476, - "name": "_exponent", - "nodeType": "VariableDeclaration", - "scope": 495, - "src": "574:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 475, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "574:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 478, - "name": "_inverseSlope", - "nodeType": "VariableDeclaration", - "scope": 495, - "src": "601:21:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 477, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "601:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "496:132:5" - }, - "payable": false, - "returnParameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [], - "src": "697:0:5" - }, - "scope": 581, - "src": "485:287:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 541, - "nodeType": "Block", - "src": "941:246:5", - "statements": [ - { - "assignments": [ - 503 - ], - "declarations": [ - { - "constant": false, - "id": 503, - "name": "nexp", - "nodeType": "VariableDeclaration", - "scope": 542, - "src": "951:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 502, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "951:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 508, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 506, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "979:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "id": 504, - "name": "exponent", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 466, - "src": "966:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 688, - "src": "966:12:5", - "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": 507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "966:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "951:30:5" - }, - { - "assignments": [ - 510 - ], - "declarations": [ - { - "constant": false, - "id": 510, - "name": "norm", - "nodeType": "VariableDeclaration", - "scope": 542, - "src": "991:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 509, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "991:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 524, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1006:2:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 513, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1210, - "src": "1021:8:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint8_$", - "typeString": "function () view returns (uint8)" - } - }, - "id": 514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1021:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 512, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1013:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1013:19:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 517, - "name": "nexp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 503, - "src": "1043:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1035:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1035:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1013:35:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 520, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1012:37:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1006:43:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3138", - "id": 522, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1052:2:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "1006:48:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "991:63:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 536, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1171:2:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3138", - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1177:2:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "1171:8:5", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 533, - "name": "inverseSlope", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 468, - "src": "1153:12:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 530, - "name": "nexp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 503, - "src": "1143:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 525, - "name": "t", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 497, - "src": "1128:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "id": 526, - "name": "nexp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 503, - "src": "1133:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1128:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 528, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1127:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 529, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 640, - "src": "1127:15:5", - "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": 531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1127:21:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 640, - "src": "1127:25:5", - "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": 534, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1127:39:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 640, - "src": "1127:43:5", - "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": 539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1127:53:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 501, - "id": 540, - "nodeType": "Return", - "src": "1108:72:5" - } - ] - }, - "documentation": "@dev Calculate the integral from 0 to t\n @param t The number to integrate to", - "id": 542, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "curveIntegral", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 498, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 497, - "name": "t", - "nodeType": "VariableDeclaration", - "scope": 542, - "src": "903:9:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 496, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "903:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "902:11:5" - }, - "payable": false, - "returnParameters": { - "id": 501, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 500, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 542, - "src": "932:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 499, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "932:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "931:9:5" - }, - "scope": 581, - "src": "880:307:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 560, - "nodeType": "Block", - "src": "1262:84:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 557, - "name": "poolBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 299, - "src": "1327:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 553, - "name": "numTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 544, - "src": "1311:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 550, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 738, - "src": "1293:11:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1293:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 688, - "src": "1293:17:5", - "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": 554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1293:28:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 549, - "name": "curveIntegral", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 542, - "src": "1279:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1279:43:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 664, - "src": "1279:47:5", - "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": 558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1279:60:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 548, - "id": 559, - "nodeType": "Return", - "src": "1272:67:5" - } - ] - }, - "documentation": null, - "id": 561, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "priceToMint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 545, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 544, - "name": "numTokens", - "nodeType": "VariableDeclaration", - "scope": 561, - "src": "1214:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 543, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1214:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1213:19:5" - }, - "payable": false, - "returnParameters": { - "id": 548, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 547, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 561, - "src": "1253:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 546, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1253:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1252:9:5" - }, - "scope": 581, - "src": "1193:153:5", - "stateMutability": "view", - "superFunction": 333, - "visibility": "public" - }, - { - "body": { - "id": 579, - "nodeType": "Block", - "src": "1423:84:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 574, - "name": "numTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 563, - "src": "1488:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 571, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 738, - "src": "1470:11:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1470:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 664, - "src": "1470:17:5", - "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": 575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1470:28:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 570, - "name": "curveIntegral", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 542, - "src": "1456:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1456:43:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 568, - "name": "poolBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 299, - "src": "1440:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 664, - "src": "1440:15:5", - "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": 577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1440:60:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 567, - "id": 578, - "nodeType": "Return", - "src": "1433:67:5" - } - ] - }, - "documentation": null, - "id": 580, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "rewardForBurn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 564, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 563, - "name": "numTokens", - "nodeType": "VariableDeclaration", - "scope": 580, - "src": "1375:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 562, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1375:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1374:19:5" - }, - "payable": false, - "returnParameters": { - "id": 567, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 566, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 580, - "src": "1414:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 565, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1414:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1413:9:5" - }, - "scope": 581, - "src": "1352:155:5", - "stateMutability": "view", - "superFunction": 340, - "visibility": "public" - } - ], - "scope": 582, - "src": "64:1445:5" - } - ], - "src": "0:1510:5" - }, - "compiler": { - "name": "solc", - "version": "0.4.25+commit.59dbf8f1.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.0-beta.1", - "updatedAt": "2018-12-16T19:14:46.484Z", - "devdoc": { - "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." - }, - "decimals()": { - "return": "the number of decimals of the token." - }, - "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", - "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", - "params": { - "addedValue": "The amount of tokens to increase the allowance by.", - "spender": "The address which will spend the funds." - } - }, - "name()": { - "return": "the name of the token." - }, - "symbol()": { - "return": "the symbol of the token." - }, - "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", - "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" - } - } - } - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/build/contracts/Factory.json b/src/build/contracts/Factory.json index 1890dcf..9986f25 100644 --- a/src/build/contracts/Factory.json +++ b/src/build/contracts/Factory.json @@ -71,14 +71,14 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b506102a8806100206000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f4f33161461005c578063b7de9dae146100b7578063c1ad191a14610124575b600080fd5b34801561006857600080fd5b5061009d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610190565b604051808215151515815260200191505060405180910390f35b3480156100c357600080fd5b506100e2600480360381019080803590602001909291905050506101b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013057600080fd5b506101396101ee565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561017c578082015181840152602081019050610161565b505050509050019250505060405180910390f35b60006020528060005260406000206000915054906101000a900460ff1681565b6001818154811015156101bf57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600180548060200260200160405190810160405280929190818152602001828054801561027257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610228575b50505050509050905600a165627a7a7230582006ef90965d30e9519d651178d251409c2703817f4bfb6862df785770939302e70029", - "deployedBytecode": "0x608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f4f33161461005c578063b7de9dae146100b7578063c1ad191a14610124575b600080fd5b34801561006857600080fd5b5061009d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610190565b604051808215151515815260200191505060405180910390f35b3480156100c357600080fd5b506100e2600480360381019080803590602001909291905050506101b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013057600080fd5b506101396101ee565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561017c578082015181840152602081019050610161565b505050509050019250505060405180910390f35b60006020528060005260406000206000915054906101000a900460ff1681565b6001818154811015156101bf57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600180548060200260200160405190810160405280929190818152602001828054801561027257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610228575b50505050509050905600a165627a7a7230582006ef90965d30e9519d651178d251409c2703817f4bfb6862df785770939302e70029", + "bytecode": "0x608060405234801561001057600080fd5b506102a8806100206000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f4f33161461005c578063b7de9dae146100b7578063c1ad191a14610124575b600080fd5b34801561006857600080fd5b5061009d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610190565b604051808215151515815260200191505060405180910390f35b3480156100c357600080fd5b506100e2600480360381019080803590602001909291905050506101b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013057600080fd5b506101396101ee565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561017c578082015181840152602081019050610161565b505050509050019250505060405180910390f35b60006020528060005260406000206000915054906101000a900460ff1681565b6001818154811015156101bf57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600180548060200260200160405190810160405280929190818152602001828054801561027257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610228575b50505050509050905600a165627a7a723058203ebb24f9b8ac07ee1a3b0945b136bca8f93c7456d9bddeadf55b56f9ab0d83ff0029", + "deployedBytecode": "0x608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f4f33161461005c578063b7de9dae146100b7578063c1ad191a14610124575b600080fd5b34801561006857600080fd5b5061009d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610190565b604051808215151515815260200191505060405180910390f35b3480156100c357600080fd5b506100e2600480360381019080803590602001909291905050506101b0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013057600080fd5b506101396101ee565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561017c578082015181840152602081019050610161565b505050509050019250505060405180910390f35b60006020528060005260406000206000915054906101000a900460ff1681565b6001818154811015156101bf57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600180548060200260200160405190810160405280929190818152602001828054801561027257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610228575b50505050509050905600a165627a7a723058203ebb24f9b8ac07ee1a3b0945b136bca8f93c7456d9bddeadf55b56f9ab0d83ff0029", "sourceMap": "26:817:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26:817:0;;;;;;;", "deployedSourceMap": "26:817:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;184:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;184:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;237:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;237:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;350:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;350:99:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;350:99:0;;;;;;;;;;;;;;;;;184:47;;;;;;;;;;;;;;;;;;;;;;:::o;237:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;350:99::-;401:9;428:14;421:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;350:99;:::o", "source": "pragma solidity ^0.4.24;\n\ncontract Factory {\n\n /*\n * Events\n */\n event ContractInstantiation(address sender, address instantiation);\n\n /*\n * Storage\n */\n mapping(address => bool) public isInstantiation;\n address[] public instantiations;\n\n /*\n * Public functions\n */\n // Get list of instantiations:\n\n function getInstantiations () public view returns (address[]){\n return instantiations;\n }\n /*\n * Internal functions\n */\n /// @dev Registers contract in factory registry.\n /// @param instantiation Address of contract instantiation.\n function register(address instantiation)\n internal\n {\n isInstantiation[instantiation] = true;\n instantiations.push(instantiation);\n emit ContractInstantiation(msg.sender, instantiation);\n }\n\n \n}\n", - "sourcePath": "/home/achill/Arena_Master/Arena/contracts/Factory.sol", + "sourcePath": "/home/volt/workspaces/convergentcx/Arena/contracts/Factory.sol", "ast": { - "absolutePath": "/home/achill/Arena_Master/Arena/contracts/Factory.sol", + "absolutePath": "/home/volt/workspaces/convergentcx/Arena/contracts/Factory.sol", "exportedSymbols": { "Factory": [ 48 @@ -518,7 +518,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, + "referencedDeclaration": 1622, "src": "802:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -657,7 +657,7 @@ "src": "0:844:0" }, "legacyAST": { - "absolutePath": "/home/achill/Arena_Master/Arena/contracts/Factory.sol", + "absolutePath": "/home/volt/workspaces/convergentcx/Arena/contracts/Factory.sol", "exportedSymbols": { "Factory": [ 48 @@ -1097,7 +1097,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, + "referencedDeclaration": 1622, "src": "802:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -1241,7 +1241,7 @@ }, "networks": {}, "schemaVersion": "3.0.0-beta.1", - "updatedAt": "2018-12-16T19:14:46.479Z", + "updatedAt": "2018-12-17T02:12:29.697Z", "devdoc": { "methods": {} }, diff --git a/src/build/contracts/IERC20.json b/src/build/contracts/IERC20.json index ad03ca1..5379d81 100644 --- a/src/build/contracts/IERC20.json +++ b/src/build/contracts/IERC20.json @@ -179,20 +179,20 @@ "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity ^0.4.24;\n\n/**\n * @title ERC20 interface\n * @dev see https://github.com/ethereum/EIPs/issues/20\n */\ninterface IERC20 {\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address who) external view returns (uint256);\n\n function allowance(address owner, address spender)\n external view returns (uint256);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function approve(address spender, uint256 value)\n external returns (bool);\n\n function transferFrom(address from, address to, uint256 value)\n external returns (bool);\n\n event Transfer(\n address indexed from,\n address indexed to,\n uint256 value\n );\n\n event Approval(\n address indexed owner,\n address indexed spender,\n uint256 value\n );\n}\n", - "sourcePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "source": "pragma solidity ^0.4.24;\n\n\n/**\n * @title ERC20 interface\n * @dev see https://github.com/ethereum/EIPs/issues/20\n */\ninterface IERC20 {\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address who) external view returns (uint256);\n\n function allowance(address owner, address spender)\n external view returns (uint256);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function approve(address spender, uint256 value)\n external returns (bool);\n\n function transferFrom(address from, address to, uint256 value)\n external returns (bool);\n\n event Transfer(\n address indexed from,\n address indexed to,\n uint256 value\n );\n\n event Approval(\n address indexed owner,\n address indexed spender,\n uint256 value\n );\n}\n", + "sourcePath": "openzeppelin-eth/contracts/token/ERC20/IERC20.sol", "ast": { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/IERC20.sol", "exportedSymbols": { "IERC20": [ - 1280 + 1551 ] }, - "id": 1281, + "id": 1552, "nodeType": "SourceUnit", "nodes": [ { - "id": 1213, + "id": 1484, "literals": [ "solidity", "^", @@ -200,7 +200,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:9" + "src": "0:24:10" }, { "baseContracts": [], @@ -208,9 +208,9 @@ "contractKind": "interface", "documentation": "@title ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/20", "fullyImplemented": false, - "id": 1280, + "id": 1551, "linearizedBaseContracts": [ - 1280 + 1551 ], "name": "IERC20", "nodeType": "ContractDefinition", @@ -218,7 +218,7 @@ { "body": null, "documentation": null, - "id": 1218, + "id": 1489, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -226,23 +226,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 1214, + "id": 1485, "nodeType": "ParameterList", "parameters": [], - "src": "156:2:9" + "src": "157:2:10" }, "payable": false, "returnParameters": { - "id": 1217, + "id": 1488, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1216, + "id": 1487, "name": "", "nodeType": "VariableDeclaration", - "scope": 1218, - "src": "182:7:9", + "scope": 1489, + "src": "183:7:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -250,10 +250,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1215, + "id": 1486, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "182:7:9", + "src": "183:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -263,10 +263,10 @@ "visibility": "internal" } ], - "src": "181:9:9" + "src": "182:9:10" }, - "scope": 1280, - "src": "136:55:9", + "scope": 1551, + "src": "137:55:10", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -274,7 +274,7 @@ { "body": null, "documentation": null, - "id": 1225, + "id": 1496, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -282,16 +282,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 1221, + "id": 1492, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1220, + "id": 1491, "name": "who", "nodeType": "VariableDeclaration", - "scope": 1225, - "src": "214:11:9", + "scope": 1496, + "src": "215:11:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -299,10 +299,10 @@ "typeString": "address" }, "typeName": { - "id": 1219, + "id": 1490, "name": "address", "nodeType": "ElementaryTypeName", - "src": "214:7:9", + "src": "215:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -312,20 +312,20 @@ "visibility": "internal" } ], - "src": "213:13:9" + "src": "214:13:10" }, "payable": false, "returnParameters": { - "id": 1224, + "id": 1495, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1223, + "id": 1494, "name": "", "nodeType": "VariableDeclaration", - "scope": 1225, - "src": "250:7:9", + "scope": 1496, + "src": "251:7:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -333,10 +333,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1222, + "id": 1493, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "250:7:9", + "src": "251:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -346,10 +346,10 @@ "visibility": "internal" } ], - "src": "249:9:9" + "src": "250:9:10" }, - "scope": 1280, - "src": "195:64:9", + "scope": 1551, + "src": "196:64:10", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -357,7 +357,7 @@ { "body": null, "documentation": null, - "id": 1234, + "id": 1505, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -365,16 +365,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 1230, + "id": 1501, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1227, + "id": 1498, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1234, - "src": "282:13:9", + "scope": 1505, + "src": "283:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -382,10 +382,10 @@ "typeString": "address" }, "typeName": { - "id": 1226, + "id": 1497, "name": "address", "nodeType": "ElementaryTypeName", - "src": "282:7:9", + "src": "283:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -396,11 +396,11 @@ }, { "constant": false, - "id": 1229, + "id": 1500, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1234, - "src": "297:15:9", + "scope": 1505, + "src": "298:15:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -408,10 +408,10 @@ "typeString": "address" }, "typeName": { - "id": 1228, + "id": 1499, "name": "address", "nodeType": "ElementaryTypeName", - "src": "297:7:9", + "src": "298:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -421,20 +421,20 @@ "visibility": "internal" } ], - "src": "281:32:9" + "src": "282:32:10" }, "payable": false, "returnParameters": { - "id": 1233, + "id": 1504, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1232, + "id": 1503, "name": "", "nodeType": "VariableDeclaration", - "scope": 1234, - "src": "341:7:9", + "scope": 1505, + "src": "342:7:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -442,10 +442,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1231, + "id": 1502, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "341:7:9", + "src": "342:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -455,10 +455,10 @@ "visibility": "internal" } ], - "src": "340:9:9" + "src": "341:9:10" }, - "scope": 1280, - "src": "263:87:9", + "scope": 1551, + "src": "264:87:10", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -466,7 +466,7 @@ { "body": null, "documentation": null, - "id": 1243, + "id": 1514, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -474,16 +474,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 1239, + "id": 1510, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1236, + "id": 1507, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "372:10:9", + "scope": 1514, + "src": "373:10:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -491,10 +491,10 @@ "typeString": "address" }, "typeName": { - "id": 1235, + "id": 1506, "name": "address", "nodeType": "ElementaryTypeName", - "src": "372:7:9", + "src": "373:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -505,11 +505,11 @@ }, { "constant": false, - "id": 1238, + "id": 1509, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "384:13:9", + "scope": 1514, + "src": "385:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -517,10 +517,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1237, + "id": 1508, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "384:7:9", + "src": "385:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -530,20 +530,20 @@ "visibility": "internal" } ], - "src": "371:27:9" + "src": "372:27:10" }, "payable": false, "returnParameters": { - "id": 1242, + "id": 1513, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1241, + "id": 1512, "name": "", "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "417:4:9", + "scope": 1514, + "src": "418:4:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -551,10 +551,10 @@ "typeString": "bool" }, "typeName": { - "id": 1240, + "id": 1511, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "417:4:9", + "src": "418:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -564,10 +564,10 @@ "visibility": "internal" } ], - "src": "416:6:9" + "src": "417:6:10" }, - "scope": 1280, - "src": "354:69:9", + "scope": 1551, + "src": "355:69:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -575,7 +575,7 @@ { "body": null, "documentation": null, - "id": 1252, + "id": 1523, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -583,16 +583,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 1248, + "id": 1519, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1245, + "id": 1516, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "444:15:9", + "scope": 1523, + "src": "445:15:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -600,10 +600,10 @@ "typeString": "address" }, "typeName": { - "id": 1244, + "id": 1515, "name": "address", "nodeType": "ElementaryTypeName", - "src": "444:7:9", + "src": "445:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -614,11 +614,11 @@ }, { "constant": false, - "id": 1247, + "id": 1518, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "461:13:9", + "scope": 1523, + "src": "462:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -626,10 +626,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1246, + "id": 1517, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "461:7:9", + "src": "462:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -639,20 +639,20 @@ "visibility": "internal" } ], - "src": "443:32:9" + "src": "444:32:10" }, "payable": false, "returnParameters": { - "id": 1251, + "id": 1522, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1250, + "id": 1521, "name": "", "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "498:4:9", + "scope": 1523, + "src": "499:4:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -660,10 +660,10 @@ "typeString": "bool" }, "typeName": { - "id": 1249, + "id": 1520, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "498:4:9", + "src": "499:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -673,10 +673,10 @@ "visibility": "internal" } ], - "src": "497:6:9" + "src": "498:6:10" }, - "scope": 1280, - "src": "427:77:9", + "scope": 1551, + "src": "428:77:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -684,7 +684,7 @@ { "body": null, "documentation": null, - "id": 1263, + "id": 1534, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -692,16 +692,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 1259, + "id": 1530, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1254, + "id": 1525, "name": "from", "nodeType": "VariableDeclaration", - "scope": 1263, - "src": "530:12:9", + "scope": 1534, + "src": "531:12:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -709,10 +709,10 @@ "typeString": "address" }, "typeName": { - "id": 1253, + "id": 1524, "name": "address", "nodeType": "ElementaryTypeName", - "src": "530:7:9", + "src": "531:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -723,11 +723,11 @@ }, { "constant": false, - "id": 1256, + "id": 1527, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1263, - "src": "544:10:9", + "scope": 1534, + "src": "545:10:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -735,10 +735,10 @@ "typeString": "address" }, "typeName": { - "id": 1255, + "id": 1526, "name": "address", "nodeType": "ElementaryTypeName", - "src": "544:7:9", + "src": "545:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -749,11 +749,11 @@ }, { "constant": false, - "id": 1258, + "id": 1529, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1263, - "src": "556:13:9", + "scope": 1534, + "src": "557:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -761,10 +761,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1257, + "id": 1528, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "556:7:9", + "src": "557:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -774,20 +774,20 @@ "visibility": "internal" } ], - "src": "529:41:9" + "src": "530:41:10" }, "payable": false, "returnParameters": { - "id": 1262, + "id": 1533, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1261, + "id": 1532, "name": "", "nodeType": "VariableDeclaration", - "scope": 1263, - "src": "593:4:9", + "scope": 1534, + "src": "594:4:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -795,10 +795,10 @@ "typeString": "bool" }, "typeName": { - "id": 1260, + "id": 1531, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "593:4:9", + "src": "594:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -808,10 +808,10 @@ "visibility": "internal" } ], - "src": "592:6:9" + "src": "593:6:10" }, - "scope": 1280, - "src": "508:91:9", + "scope": 1551, + "src": "509:91:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -819,21 +819,21 @@ { "anonymous": false, "documentation": null, - "id": 1271, + "id": 1542, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 1270, + "id": 1541, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1265, + "id": 1536, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 1271, - "src": "623:20:9", + "scope": 1542, + "src": "624:20:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -841,10 +841,10 @@ "typeString": "address" }, "typeName": { - "id": 1264, + "id": 1535, "name": "address", "nodeType": "ElementaryTypeName", - "src": "623:7:9", + "src": "624:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -855,12 +855,12 @@ }, { "constant": false, - "id": 1267, + "id": 1538, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1271, - "src": "649:18:9", + "scope": 1542, + "src": "650:18:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -868,10 +868,10 @@ "typeString": "address" }, "typeName": { - "id": 1266, + "id": 1537, "name": "address", "nodeType": "ElementaryTypeName", - "src": "649:7:9", + "src": "650:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -882,12 +882,12 @@ }, { "constant": false, - "id": 1269, + "id": 1540, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1271, - "src": "673:13:9", + "scope": 1542, + "src": "674:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -895,10 +895,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1268, + "id": 1539, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "673:7:9", + "src": "674:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -908,28 +908,28 @@ "visibility": "internal" } ], - "src": "617:73:9" + "src": "618:73:10" }, - "src": "603:88:9" + "src": "604:88:10" }, { "anonymous": false, "documentation": null, - "id": 1279, + "id": 1550, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 1278, + "id": 1549, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1273, + "id": 1544, "indexed": true, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1279, - "src": "715:21:9", + "scope": 1550, + "src": "716:21:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -937,10 +937,10 @@ "typeString": "address" }, "typeName": { - "id": 1272, + "id": 1543, "name": "address", "nodeType": "ElementaryTypeName", - "src": "715:7:9", + "src": "716:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -951,12 +951,12 @@ }, { "constant": false, - "id": 1275, + "id": 1546, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1279, - "src": "742:23:9", + "scope": 1550, + "src": "743:23:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -964,10 +964,10 @@ "typeString": "address" }, "typeName": { - "id": 1274, + "id": 1545, "name": "address", "nodeType": "ElementaryTypeName", - "src": "742:7:9", + "src": "743:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -978,12 +978,12 @@ }, { "constant": false, - "id": 1277, + "id": 1548, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1279, - "src": "771:13:9", + "scope": 1550, + "src": "772:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -991,10 +991,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1276, + "id": 1547, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "771:7:9", + "src": "772:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1004,29 +1004,29 @@ "visibility": "internal" } ], - "src": "709:79:9" + "src": "710:79:10" }, - "src": "695:94:9" + "src": "696:94:10" } ], - "scope": 1281, - "src": "115:676:9" + "scope": 1552, + "src": "116:676:10" } ], - "src": "0:792:9" + "src": "0:793:10" }, "legacyAST": { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/IERC20.sol", "exportedSymbols": { "IERC20": [ - 1280 + 1551 ] }, - "id": 1281, + "id": 1552, "nodeType": "SourceUnit", "nodes": [ { - "id": 1213, + "id": 1484, "literals": [ "solidity", "^", @@ -1034,7 +1034,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:9" + "src": "0:24:10" }, { "baseContracts": [], @@ -1042,9 +1042,9 @@ "contractKind": "interface", "documentation": "@title ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/20", "fullyImplemented": false, - "id": 1280, + "id": 1551, "linearizedBaseContracts": [ - 1280 + 1551 ], "name": "IERC20", "nodeType": "ContractDefinition", @@ -1052,7 +1052,7 @@ { "body": null, "documentation": null, - "id": 1218, + "id": 1489, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1060,23 +1060,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 1214, + "id": 1485, "nodeType": "ParameterList", "parameters": [], - "src": "156:2:9" + "src": "157:2:10" }, "payable": false, "returnParameters": { - "id": 1217, + "id": 1488, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1216, + "id": 1487, "name": "", "nodeType": "VariableDeclaration", - "scope": 1218, - "src": "182:7:9", + "scope": 1489, + "src": "183:7:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1084,10 +1084,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1215, + "id": 1486, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "182:7:9", + "src": "183:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1097,10 +1097,10 @@ "visibility": "internal" } ], - "src": "181:9:9" + "src": "182:9:10" }, - "scope": 1280, - "src": "136:55:9", + "scope": 1551, + "src": "137:55:10", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -1108,7 +1108,7 @@ { "body": null, "documentation": null, - "id": 1225, + "id": 1496, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1116,16 +1116,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 1221, + "id": 1492, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1220, + "id": 1491, "name": "who", "nodeType": "VariableDeclaration", - "scope": 1225, - "src": "214:11:9", + "scope": 1496, + "src": "215:11:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1133,10 +1133,10 @@ "typeString": "address" }, "typeName": { - "id": 1219, + "id": 1490, "name": "address", "nodeType": "ElementaryTypeName", - "src": "214:7:9", + "src": "215:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1146,20 +1146,20 @@ "visibility": "internal" } ], - "src": "213:13:9" + "src": "214:13:10" }, "payable": false, "returnParameters": { - "id": 1224, + "id": 1495, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1223, + "id": 1494, "name": "", "nodeType": "VariableDeclaration", - "scope": 1225, - "src": "250:7:9", + "scope": 1496, + "src": "251:7:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1167,10 +1167,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1222, + "id": 1493, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "250:7:9", + "src": "251:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1180,10 +1180,10 @@ "visibility": "internal" } ], - "src": "249:9:9" + "src": "250:9:10" }, - "scope": 1280, - "src": "195:64:9", + "scope": 1551, + "src": "196:64:10", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -1191,7 +1191,7 @@ { "body": null, "documentation": null, - "id": 1234, + "id": 1505, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -1199,16 +1199,16 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 1230, + "id": 1501, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1227, + "id": 1498, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1234, - "src": "282:13:9", + "scope": 1505, + "src": "283:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1216,10 +1216,10 @@ "typeString": "address" }, "typeName": { - "id": 1226, + "id": 1497, "name": "address", "nodeType": "ElementaryTypeName", - "src": "282:7:9", + "src": "283:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1230,11 +1230,11 @@ }, { "constant": false, - "id": 1229, + "id": 1500, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1234, - "src": "297:15:9", + "scope": 1505, + "src": "298:15:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1242,10 +1242,10 @@ "typeString": "address" }, "typeName": { - "id": 1228, + "id": 1499, "name": "address", "nodeType": "ElementaryTypeName", - "src": "297:7:9", + "src": "298:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1255,20 +1255,20 @@ "visibility": "internal" } ], - "src": "281:32:9" + "src": "282:32:10" }, "payable": false, "returnParameters": { - "id": 1233, + "id": 1504, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1232, + "id": 1503, "name": "", "nodeType": "VariableDeclaration", - "scope": 1234, - "src": "341:7:9", + "scope": 1505, + "src": "342:7:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1276,10 +1276,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1231, + "id": 1502, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "341:7:9", + "src": "342:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1289,10 +1289,10 @@ "visibility": "internal" } ], - "src": "340:9:9" + "src": "341:9:10" }, - "scope": 1280, - "src": "263:87:9", + "scope": 1551, + "src": "264:87:10", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -1300,7 +1300,7 @@ { "body": null, "documentation": null, - "id": 1243, + "id": 1514, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1308,16 +1308,16 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 1239, + "id": 1510, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1236, + "id": 1507, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "372:10:9", + "scope": 1514, + "src": "373:10:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1325,10 +1325,10 @@ "typeString": "address" }, "typeName": { - "id": 1235, + "id": 1506, "name": "address", "nodeType": "ElementaryTypeName", - "src": "372:7:9", + "src": "373:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1339,11 +1339,11 @@ }, { "constant": false, - "id": 1238, + "id": 1509, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "384:13:9", + "scope": 1514, + "src": "385:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1351,10 +1351,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1237, + "id": 1508, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "384:7:9", + "src": "385:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1364,20 +1364,20 @@ "visibility": "internal" } ], - "src": "371:27:9" + "src": "372:27:10" }, "payable": false, "returnParameters": { - "id": 1242, + "id": 1513, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1241, + "id": 1512, "name": "", "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "417:4:9", + "scope": 1514, + "src": "418:4:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1385,10 +1385,10 @@ "typeString": "bool" }, "typeName": { - "id": 1240, + "id": 1511, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "417:4:9", + "src": "418:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1398,10 +1398,10 @@ "visibility": "internal" } ], - "src": "416:6:9" + "src": "417:6:10" }, - "scope": 1280, - "src": "354:69:9", + "scope": 1551, + "src": "355:69:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -1409,7 +1409,7 @@ { "body": null, "documentation": null, - "id": 1252, + "id": 1523, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1417,16 +1417,16 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 1248, + "id": 1519, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1245, + "id": 1516, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "444:15:9", + "scope": 1523, + "src": "445:15:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1434,10 +1434,10 @@ "typeString": "address" }, "typeName": { - "id": 1244, + "id": 1515, "name": "address", "nodeType": "ElementaryTypeName", - "src": "444:7:9", + "src": "445:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1448,11 +1448,11 @@ }, { "constant": false, - "id": 1247, + "id": 1518, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "461:13:9", + "scope": 1523, + "src": "462:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1460,10 +1460,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1246, + "id": 1517, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "461:7:9", + "src": "462:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1473,20 +1473,20 @@ "visibility": "internal" } ], - "src": "443:32:9" + "src": "444:32:10" }, "payable": false, "returnParameters": { - "id": 1251, + "id": 1522, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1250, + "id": 1521, "name": "", "nodeType": "VariableDeclaration", - "scope": 1252, - "src": "498:4:9", + "scope": 1523, + "src": "499:4:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1494,10 +1494,10 @@ "typeString": "bool" }, "typeName": { - "id": 1249, + "id": 1520, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "498:4:9", + "src": "499:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1507,10 +1507,10 @@ "visibility": "internal" } ], - "src": "497:6:9" + "src": "498:6:10" }, - "scope": 1280, - "src": "427:77:9", + "scope": 1551, + "src": "428:77:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -1518,7 +1518,7 @@ { "body": null, "documentation": null, - "id": 1263, + "id": 1534, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -1526,16 +1526,16 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 1259, + "id": 1530, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1254, + "id": 1525, "name": "from", "nodeType": "VariableDeclaration", - "scope": 1263, - "src": "530:12:9", + "scope": 1534, + "src": "531:12:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1543,10 +1543,10 @@ "typeString": "address" }, "typeName": { - "id": 1253, + "id": 1524, "name": "address", "nodeType": "ElementaryTypeName", - "src": "530:7:9", + "src": "531:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1557,11 +1557,11 @@ }, { "constant": false, - "id": 1256, + "id": 1527, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1263, - "src": "544:10:9", + "scope": 1534, + "src": "545:10:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1569,10 +1569,10 @@ "typeString": "address" }, "typeName": { - "id": 1255, + "id": 1526, "name": "address", "nodeType": "ElementaryTypeName", - "src": "544:7:9", + "src": "545:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1583,11 +1583,11 @@ }, { "constant": false, - "id": 1258, + "id": 1529, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1263, - "src": "556:13:9", + "scope": 1534, + "src": "557:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1595,10 +1595,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1257, + "id": 1528, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "556:7:9", + "src": "557:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1608,20 +1608,20 @@ "visibility": "internal" } ], - "src": "529:41:9" + "src": "530:41:10" }, "payable": false, "returnParameters": { - "id": 1262, + "id": 1533, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1261, + "id": 1532, "name": "", "nodeType": "VariableDeclaration", - "scope": 1263, - "src": "593:4:9", + "scope": 1534, + "src": "594:4:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1629,10 +1629,10 @@ "typeString": "bool" }, "typeName": { - "id": 1260, + "id": 1531, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "593:4:9", + "src": "594:4:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1642,10 +1642,10 @@ "visibility": "internal" } ], - "src": "592:6:9" + "src": "593:6:10" }, - "scope": 1280, - "src": "508:91:9", + "scope": 1551, + "src": "509:91:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" @@ -1653,21 +1653,21 @@ { "anonymous": false, "documentation": null, - "id": 1271, + "id": 1542, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 1270, + "id": 1541, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1265, + "id": 1536, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 1271, - "src": "623:20:9", + "scope": 1542, + "src": "624:20:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1675,10 +1675,10 @@ "typeString": "address" }, "typeName": { - "id": 1264, + "id": 1535, "name": "address", "nodeType": "ElementaryTypeName", - "src": "623:7:9", + "src": "624:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1689,12 +1689,12 @@ }, { "constant": false, - "id": 1267, + "id": 1538, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1271, - "src": "649:18:9", + "scope": 1542, + "src": "650:18:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1702,10 +1702,10 @@ "typeString": "address" }, "typeName": { - "id": 1266, + "id": 1537, "name": "address", "nodeType": "ElementaryTypeName", - "src": "649:7:9", + "src": "650:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1716,12 +1716,12 @@ }, { "constant": false, - "id": 1269, + "id": 1540, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1271, - "src": "673:13:9", + "scope": 1542, + "src": "674:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1729,10 +1729,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1268, + "id": 1539, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "673:7:9", + "src": "674:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1742,28 +1742,28 @@ "visibility": "internal" } ], - "src": "617:73:9" + "src": "618:73:10" }, - "src": "603:88:9" + "src": "604:88:10" }, { "anonymous": false, "documentation": null, - "id": 1279, + "id": 1550, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 1278, + "id": 1549, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1273, + "id": 1544, "indexed": true, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1279, - "src": "715:21:9", + "scope": 1550, + "src": "716:21:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1771,10 +1771,10 @@ "typeString": "address" }, "typeName": { - "id": 1272, + "id": 1543, "name": "address", "nodeType": "ElementaryTypeName", - "src": "715:7:9", + "src": "716:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1785,12 +1785,12 @@ }, { "constant": false, - "id": 1275, + "id": 1546, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1279, - "src": "742:23:9", + "scope": 1550, + "src": "743:23:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1798,10 +1798,10 @@ "typeString": "address" }, "typeName": { - "id": 1274, + "id": 1545, "name": "address", "nodeType": "ElementaryTypeName", - "src": "742:7:9", + "src": "743:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1812,12 +1812,12 @@ }, { "constant": false, - "id": 1277, + "id": 1548, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1279, - "src": "771:13:9", + "scope": 1550, + "src": "772:13:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1825,10 +1825,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1276, + "id": 1547, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "771:7:9", + "src": "772:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1838,16 +1838,16 @@ "visibility": "internal" } ], - "src": "709:79:9" + "src": "710:79:10" }, - "src": "695:94:9" + "src": "696:94:10" } ], - "scope": 1281, - "src": "115:676:9" + "scope": 1552, + "src": "116:676:10" } ], - "src": "0:792:9" + "src": "0:793:10" }, "compiler": { "name": "solc", @@ -1855,7 +1855,7 @@ }, "networks": {}, "schemaVersion": "3.0.0-beta.1", - "updatedAt": "2018-12-16T19:14:46.488Z", + "updatedAt": "2018-12-17T02:12:29.704Z", "devdoc": { "methods": {}, "title": "ERC20 interface" diff --git a/src/build/contracts/Initializable.json b/src/build/contracts/Initializable.json new file mode 100644 index 0000000..b887af2 --- /dev/null +++ b/src/build/contracts/Initializable.json @@ -0,0 +1,1454 @@ +{ + "contractName": "Initializable", + "abi": [], + "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820fbf418a25348cd6943d4714035c109459fccacc1193da2d3cd2f0c5f5fe986500029", + "deployedBytecode": "0x6080604052600080fd00a165627a7a72305820fbf418a25348cd6943d4714035c109459fccacc1193da2d3cd2f0c5f5fe986500029", + "sourceMap": "649:1266:11:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;649:1266:11;;;;;;;", + "deployedSourceMap": "649:1266:11:-;;;;;", + "source": "pragma solidity ^0.4.24;\n\n\n/**\n * @title Initializable\n *\n * @dev Helper contract to support initializer functions. To use it, replace\n * the constructor with a function that has the `initializer` modifier.\n * WARNING: Unlike constructors, initializer functions must be manually\n * invoked. This applies both to deploying an Initializable contract, as well\n * as extending an Initializable contract via inheritance.\n * WARNING: When used with inheritance, manual care must be taken to not invoke\n * a parent initializer twice, or ensure that all initializers are idempotent,\n * because this is not dealt with automatically as with constructors.\n */\ncontract Initializable {\n\n /**\n * @dev Indicates that the contract has been initialized.\n */\n bool private initialized;\n\n /**\n * @dev Indicates that the contract is in the process of being initialized.\n */\n bool private initializing;\n\n /**\n * @dev Modifier to use in the initializer function of a contract.\n */\n modifier initializer() {\n require(initializing || isConstructor() || !initialized, \"Contract instance has already been initialized\");\n\n bool wasInitializing = initializing;\n initializing = true;\n initialized = true;\n\n _;\n\n initializing = wasInitializing;\n }\n\n /// @dev Returns true if and only if the function is running in the constructor\n function isConstructor() private view returns (bool) {\n // extcodesize checks the size of the code stored in an address, and\n // address returns the current address. Since the code is still not\n // deployed when running a constructor, any checks on its code size will\n // yield zero, making it an effective way to detect if a contract is\n // under construction or not.\n uint256 cs;\n assembly { cs := extcodesize(address) }\n return cs == 0;\n }\n\n // Reserved storage space to allow for layout changes in the future.\n uint256[50] private ______gap;\n}\n", + "sourcePath": "zos-lib/contracts/Initializable.sol", + "ast": { + "absolutePath": "zos-lib/contracts/Initializable.sol", + "exportedSymbols": { + "Initializable": [ + 1607 + ] + }, + "id": 1608, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1553, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:11" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title Initializable\n * @dev Helper contract to support initializer functions. To use it, replace\nthe constructor with a function that has the `initializer` modifier.\nWARNING: Unlike constructors, initializer functions must be manually\ninvoked. This applies both to deploying an Initializable contract, as well\nas extending an Initializable contract via inheritance.\nWARNING: When used with inheritance, manual care must be taken to not invoke\na parent initializer twice, or ensure that all initializers are idempotent,\nbecause this is not dealt with automatically as with constructors.", + "fullyImplemented": true, + "id": 1607, + "linearizedBaseContracts": [ + 1607 + ], + "name": "Initializable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 1555, + "name": "initialized", + "nodeType": "VariableDeclaration", + "scope": 1607, + "src": "749:24:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1554, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "749:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 1557, + "name": "initializing", + "nodeType": "VariableDeclaration", + "scope": 1607, + "src": "868:25:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1556, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "868:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 1587, + "nodeType": "Block", + "src": "1002:253:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1566, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1560, + "name": "initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1557, + "src": "1016:12:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1561, + "name": "isConstructor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1602, + "src": "1032:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 1562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1032:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1016:31:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "id": 1565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1051:12:11", + "subExpression": { + "argumentTypes": null, + "id": 1564, + "name": "initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1555, + "src": "1052:11:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1016:47:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564", + "id": 1567, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1065:48:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9fbba6c4dcac9134893b633b9564f36435b3f927c1d5fa152c5c14b20cecb1a4", + "typeString": "literal_string \"Contract instance has already been initialized\"" + }, + "value": "Contract instance has already been initialized" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9fbba6c4dcac9134893b633b9564f36435b3f927c1d5fa152c5c14b20cecb1a4", + "typeString": "literal_string \"Contract instance has already been initialized\"" + } + ], + "id": 1559, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1625, + 1626 + ], + "referencedDeclaration": 1626, + "src": "1008:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1008:106:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1569, + "nodeType": "ExpressionStatement", + "src": "1008:106:11" + }, + { + "assignments": [ + 1571 + ], + "declarations": [ + { + "constant": false, + "id": 1571, + "name": "wasInitializing", + "nodeType": "VariableDeclaration", + "scope": 1588, + "src": "1121:20:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1570, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1121:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1573, + "initialValue": { + "argumentTypes": null, + "id": 1572, + "name": "initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1557, + "src": "1144:12:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1121:35:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1574, + "name": "initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1557, + "src": "1162:12:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1177:4:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1162:19:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1577, + "nodeType": "ExpressionStatement", + "src": "1162:19:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 1580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1578, + "name": "initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1555, + "src": "1187:11:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1201:4:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1187:18:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1581, + "nodeType": "ExpressionStatement", + "src": "1187:18:11" + }, + { + "id": 1582, + "nodeType": "PlaceholderStatement", + "src": "1212:1:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 1585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1583, + "name": "initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1557, + "src": "1220:12:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1584, + "name": "wasInitializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1571, + "src": "1235:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1220:30:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1586, + "nodeType": "ExpressionStatement", + "src": "1220:30:11" + } + ] + }, + "documentation": "@dev Modifier to use in the initializer function of a contract.", + "id": 1588, + "name": "initializer", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 1558, + "nodeType": "ParameterList", + "parameters": [], + "src": "999:2:11" + }, + "src": "979:276:11", + "visibility": "internal" + }, + { + "body": { + "id": 1601, + "nodeType": "Block", + "src": "1394:414:11", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 1594, + "name": "cs", + "nodeType": "VariableDeclaration", + "scope": 1602, + "src": "1729:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1729:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1595, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "1729:10:11" + }, + { + "externalReferences": [ + { + "cs": { + "declaration": 1594, + "isOffset": false, + "isSlot": false, + "src": "1756:2:11", + "valueSize": 1 + } + } + ], + "id": 1596, + "nodeType": "InlineAssembly", + "operations": "{\n cs := extcodesize(address())\n}", + "src": "1745:50:11" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1597, + "name": "cs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1594, + "src": "1796:2:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1598, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1802:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1796:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1592, + "id": 1600, + "nodeType": "Return", + "src": "1789:14:11" + } + ] + }, + "documentation": "@dev Returns true if and only if the function is running in the constructor", + "id": 1602, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isConstructor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1589, + "nodeType": "ParameterList", + "parameters": [], + "src": "1363:2:11" + }, + "payable": false, + "returnParameters": { + "id": 1592, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1591, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1602, + "src": "1388:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1590, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1388:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1387:6:11" + }, + "scope": 1607, + "src": "1341:467:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "private" + }, + { + "constant": false, + "id": 1606, + "name": "______gap", + "nodeType": "VariableDeclaration", + "scope": 1607, + "src": "1883:29:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage", + "typeString": "uint256[50]" + }, + "typeName": { + "baseType": { + "id": 1603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1883:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1605, + "length": { + "argumentTypes": null, + "hexValue": "3530", + "id": 1604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1891:2:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "50" + }, + "nodeType": "ArrayTypeName", + "src": "1883:11:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", + "typeString": "uint256[50]" + } + }, + "value": null, + "visibility": "private" + } + ], + "scope": 1608, + "src": "649:1266:11" + } + ], + "src": "0:1916:11" + }, + "legacyAST": { + "absolutePath": "zos-lib/contracts/Initializable.sol", + "exportedSymbols": { + "Initializable": [ + 1607 + ] + }, + "id": 1608, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1553, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:11" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title Initializable\n * @dev Helper contract to support initializer functions. To use it, replace\nthe constructor with a function that has the `initializer` modifier.\nWARNING: Unlike constructors, initializer functions must be manually\ninvoked. This applies both to deploying an Initializable contract, as well\nas extending an Initializable contract via inheritance.\nWARNING: When used with inheritance, manual care must be taken to not invoke\na parent initializer twice, or ensure that all initializers are idempotent,\nbecause this is not dealt with automatically as with constructors.", + "fullyImplemented": true, + "id": 1607, + "linearizedBaseContracts": [ + 1607 + ], + "name": "Initializable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 1555, + "name": "initialized", + "nodeType": "VariableDeclaration", + "scope": 1607, + "src": "749:24:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1554, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "749:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 1557, + "name": "initializing", + "nodeType": "VariableDeclaration", + "scope": 1607, + "src": "868:25:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1556, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "868:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 1587, + "nodeType": "Block", + "src": "1002:253:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1566, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1560, + "name": "initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1557, + "src": "1016:12:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1561, + "name": "isConstructor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1602, + "src": "1032:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 1562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1032:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1016:31:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "id": 1565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1051:12:11", + "subExpression": { + "argumentTypes": null, + "id": 1564, + "name": "initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1555, + "src": "1052:11:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1016:47:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564", + "id": 1567, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1065:48:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9fbba6c4dcac9134893b633b9564f36435b3f927c1d5fa152c5c14b20cecb1a4", + "typeString": "literal_string \"Contract instance has already been initialized\"" + }, + "value": "Contract instance has already been initialized" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9fbba6c4dcac9134893b633b9564f36435b3f927c1d5fa152c5c14b20cecb1a4", + "typeString": "literal_string \"Contract instance has already been initialized\"" + } + ], + "id": 1559, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1625, + 1626 + ], + "referencedDeclaration": 1626, + "src": "1008:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1008:106:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1569, + "nodeType": "ExpressionStatement", + "src": "1008:106:11" + }, + { + "assignments": [ + 1571 + ], + "declarations": [ + { + "constant": false, + "id": 1571, + "name": "wasInitializing", + "nodeType": "VariableDeclaration", + "scope": 1588, + "src": "1121:20:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1570, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1121:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1573, + "initialValue": { + "argumentTypes": null, + "id": 1572, + "name": "initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1557, + "src": "1144:12:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1121:35:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1574, + "name": "initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1557, + "src": "1162:12:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1177:4:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1162:19:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1577, + "nodeType": "ExpressionStatement", + "src": "1162:19:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 1580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1578, + "name": "initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1555, + "src": "1187:11:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1201:4:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1187:18:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1581, + "nodeType": "ExpressionStatement", + "src": "1187:18:11" + }, + { + "id": 1582, + "nodeType": "PlaceholderStatement", + "src": "1212:1:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 1585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1583, + "name": "initializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1557, + "src": "1220:12:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1584, + "name": "wasInitializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1571, + "src": "1235:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1220:30:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1586, + "nodeType": "ExpressionStatement", + "src": "1220:30:11" + } + ] + }, + "documentation": "@dev Modifier to use in the initializer function of a contract.", + "id": 1588, + "name": "initializer", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 1558, + "nodeType": "ParameterList", + "parameters": [], + "src": "999:2:11" + }, + "src": "979:276:11", + "visibility": "internal" + }, + { + "body": { + "id": 1601, + "nodeType": "Block", + "src": "1394:414:11", + "statements": [ + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 1594, + "name": "cs", + "nodeType": "VariableDeclaration", + "scope": 1602, + "src": "1729:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1729:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1595, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "1729:10:11" + }, + { + "externalReferences": [ + { + "cs": { + "declaration": 1594, + "isOffset": false, + "isSlot": false, + "src": "1756:2:11", + "valueSize": 1 + } + } + ], + "id": 1596, + "nodeType": "InlineAssembly", + "operations": "{\n cs := extcodesize(address())\n}", + "src": "1745:50:11" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1597, + "name": "cs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1594, + "src": "1796:2:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1598, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1802:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1796:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1592, + "id": 1600, + "nodeType": "Return", + "src": "1789:14:11" + } + ] + }, + "documentation": "@dev Returns true if and only if the function is running in the constructor", + "id": 1602, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isConstructor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1589, + "nodeType": "ParameterList", + "parameters": [], + "src": "1363:2:11" + }, + "payable": false, + "returnParameters": { + "id": 1592, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1591, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1602, + "src": "1388:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1590, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1388:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1387:6:11" + }, + "scope": 1607, + "src": "1341:467:11", + "stateMutability": "view", + "superFunction": null, + "visibility": "private" + }, + { + "constant": false, + "id": 1606, + "name": "______gap", + "nodeType": "VariableDeclaration", + "scope": 1607, + "src": "1883:29:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage", + "typeString": "uint256[50]" + }, + "typeName": { + "baseType": { + "id": 1603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1883:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1605, + "length": { + "argumentTypes": null, + "hexValue": "3530", + "id": 1604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1891:2:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "50" + }, + "nodeType": "ArrayTypeName", + "src": "1883:11:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", + "typeString": "uint256[50]" + } + }, + "value": null, + "visibility": "private" + } + ], + "scope": 1608, + "src": "649:1266:11" + } + ], + "src": "0:1916:11" + }, + "compiler": { + "name": "solc", + "version": "0.4.25+commit.59dbf8f1.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.0-beta.1", + "updatedAt": "2018-12-17T02:12:29.703Z", + "devdoc": { + "methods": {}, + "title": "Initializable" + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/build/contracts/Migrations.json b/src/build/contracts/Migrations.json index d5045fc..76d6cf5 100644 --- a/src/build/contracts/Migrations.json +++ b/src/build/contracts/Migrations.json @@ -69,14 +69,14 @@ "signature": "0x0900f010" } ], - "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102f8806100606000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a723058203cd7608a08934d7b82dec02c949d776e6cac54ae7ee0575de2da16a7535e17710029", - "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a723058203cd7608a08934d7b82dec02c949d776e6cac54ae7ee0575de2da16a7535e17710029", + "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102f8806100606000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820acfe5623b98331269088fba0cdeb83fa454ec0255b0b0281695d8c418e09373b0029", + "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820acfe5623b98331269088fba0cdeb83fa454ec0255b0b0281695d8c418e09373b0029", "sourceMap": "26:520:1:-;;;192:56;8:9:-1;5:2;;;30:1;27;20:12;5:2;192:56:1;231:10;223:5;;:18;;;;;;;;;;;;;;;;;;26:520;;;;;;", "deployedSourceMap": "26:520:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;369:175;;8:9:-1;5:2;;;30:1;27;20:12;5:2;369:175:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;78:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;78:36:1;;;;;;;;;;;;;;;;;;;;;;;52:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;52:20:1;;;;;;;;;;;;;;;;;;;;;;;;;;;254:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;254:109:1;;;;;;;;;;;;;;;;;;;;;;;;;;369:175;435:19;171:5;;;;;;;;;;;157:19;;:10;:19;;;153:26;;;468:11;435:45;;490:8;:21;;;512:24;;490:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;490:47:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;490:47:1;;;;153:26;369:175;;:::o;78:36::-;;;;:::o;52:20::-;;;;;;;;;;;;;:::o;254:109::-;171:5;;;;;;;;;;;157:19;;:10;:19;;;153:26;;;347:9;320:24;:36;;;;153:26;254:109;:::o", "source": "pragma solidity ^0.4.21;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n constructor() public {\n owner = msg.sender;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n\n function upgrade(address new_address) public restricted {\n Migrations upgraded = Migrations(new_address);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n", - "sourcePath": "/home/achill/Arena_Master/Arena/contracts/Migrations.sol", + "sourcePath": "/home/volt/workspaces/convergentcx/Arena/contracts/Migrations.sol", "ast": { - "absolutePath": "/home/achill/Arena_Master/Arena/contracts/Migrations.sol", + "absolutePath": "/home/volt/workspaces/convergentcx/Arena/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ 105 @@ -187,7 +187,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, + "referencedDeclaration": 1622, "src": "157:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -291,7 +291,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, + "referencedDeclaration": 1622, "src": "231:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -726,7 +726,7 @@ "src": "0:547:1" }, "legacyAST": { - "absolutePath": "/home/achill/Arena_Master/Arena/contracts/Migrations.sol", + "absolutePath": "/home/volt/workspaces/convergentcx/Arena/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ 105 @@ -837,7 +837,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, + "referencedDeclaration": 1622, "src": "157:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -941,7 +941,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, + "referencedDeclaration": 1622, "src": "231:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -1380,15 +1380,21 @@ "version": "0.4.25+commit.59dbf8f1.Emscripten.clang" }, "networks": { - "1544898413424": { + "1545012223694": { "events": {}, "links": {}, - "address": "0xb04b7b4e13443189768Eb560c3a274198df35f09", - "transactionHash": "0xb497310dff3d408b61ce4fd48d661d09ea97d92d3b6484113ed7a7379b5324a8" + "address": "0xF6592d3bCBBDC47F895da537F0E9cB95d4Ad08e5", + "transactionHash": "0x2f5db14162834fc2983cd921eb95d60e049a7f28893485c1d4e666eafcac8533" + }, + "1545014466140": { + "events": {}, + "links": {}, + "address": "0x031dc2c0d18B19098D8aaa0C27A943Bcd8C8AFad", + "transactionHash": "0xd59b44c6882d002b97d941832fa326bfd8a4b54b1434b61414bcd6b4f11600f6" } }, "schemaVersion": "3.0.0-beta.1", - "updatedAt": "2018-12-16T19:14:52.065Z", + "updatedAt": "2018-12-17T02:42:21.226Z", "devdoc": { "methods": {} }, diff --git a/src/build/contracts/Ownable.json b/src/build/contracts/Ownable.json new file mode 100644 index 0000000..015c525 --- /dev/null +++ b/src/build/contracts/Ownable.json @@ -0,0 +1,2836 @@ +{ + "contractName": "Ownable", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + } + ], + "name": "OwnershipRenounced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "sender", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b506105a2806100206000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063715018a6146100725780638da5cb5b146100895780638f32d59b146100e0578063c4d66de81461010f578063f2fde38b14610152575b600080fd5b34801561007e57600080fd5b50610087610195565b005b34801561009557600080fd5b5061009e610251565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100ec57600080fd5b506100f561027b565b604051808215151515815260200191505060405180910390f35b34801561011b57600080fd5b50610150600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506102d3565b005b34801561015e57600080fd5b50610193600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061044a565b005b61019d61027b565b15156101a857600080fd5b603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b60008060019054906101000a900460ff16806102f357506102f2610469565b5b8061030a57506000809054906101000a900460ff16155b15156103a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548160ff0219169083151502179055505050565b61045261027b565b151561045d57600080fd5b6104668161047a565b50565b600080303b90506000811491505090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156104b657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058202dc7b1b9b126ce44e4f7853442c5197244ea3c42ffa680ca5b4787ac7507ffdc0029", + "deployedBytecode": "0x60806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063715018a6146100725780638da5cb5b146100895780638f32d59b146100e0578063c4d66de81461010f578063f2fde38b14610152575b600080fd5b34801561007e57600080fd5b50610087610195565b005b34801561009557600080fd5b5061009e610251565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100ec57600080fd5b506100f561027b565b604051808215151515815260200191505060405180910390f35b34801561011b57600080fd5b50610150600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506102d3565b005b34801561015e57600080fd5b50610193600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061044a565b005b61019d61027b565b15156101a857600080fd5b603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b60008060019054906101000a900460ff16806102f357506102f2610469565b5b8061030a57506000809054906101000a900460ff16155b15156103a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548160ff0219169083151502179055505050565b61045261027b565b151561045d57600080fd5b6104668161047a565b50565b600080303b90506000811491505090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156104b657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058202dc7b1b9b126ce44e4f7853442c5197244ea3c42ffa680ca5b4787ac7507ffdc0029", + "sourceMap": "263:1826:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;263:1826:7;;;;;;;", + "deployedSourceMap": "263:1826:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1375:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1375:113:7;;;;;;741:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;741:70:7;;;;;;;;;;;;;;;;;;;;;;;;;;;1028:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1028:83:7;;;;;;;;;;;;;;;;;;;;;;;;;;;605:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;605:81:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;1649:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1649:101:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;1375:113;926:9;:7;:9::i;:::-;918:18;;;;;;;;1451:6;;;;;;;;;;;1432:26;;;;;;;;;;;;1481:1;1464:6;;:19;;;;;;;;;;;;;;;;;;1375:113::o;741:70::-;778:7;800:6;;;;;;;;;;;793:13;;741:70;:::o;1028:83::-;1067:4;1100:6;;;;;;;;;;;1086:20;;:10;:20;;;1079:27;;1028:83;:::o;605:81::-;1121:20:11;1016:12;;;;;;;;;;;:31;;;;1032:15;:13;:15::i;:::-;1016:31;:47;;;;1052:11;;;;;;;;;;;1051:12;1016:47;1008:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1144:12;;;;;;;;;;;1121:35;;1177:4;1162:12;;:19;;;;;;;;;;;;;;;;;;1201:4;1187:11;;:18;;;;;;;;;;;;;;;;;;675:6:7;666;;:15;;;;;;;;;;;;;;;;;;1235::11;1220:12;;:30;;;;;;;;;;;;;;;;;;605:81:7;;:::o;1649:101::-;926:9;:7;:9::i;:::-;918:18;;;;;;;;1717:28;1736:8;1717:18;:28::i;:::-;1649:101;:::o;1341:467:11:-;1388:4;1729:10;1774:7;1762:20;1756:26;;1802:1;1796:2;:7;1789:14;;1341:467;;:::o;1884:169:7:-;1973:1;1953:22;;:8;:22;;;;1945:31;;;;;;;;2016:8;1987:38;;2008:6;;;;;;;;;;;1987:38;;;;;;;;;;;;2040:8;2031:6;;:17;;;;;;;;;;;;;;;;;;1884:169;:::o", + "source": "pragma solidity ^0.4.24;\n\nimport \"zos-lib/contracts/Initializable.sol\";\n\n/**\n * @title Ownable\n * @dev The Ownable contract has an owner address, and provides basic authorization control\n * functions, this simplifies the implementation of \"user permissions\".\n */\ncontract Ownable is Initializable {\n address private _owner;\n\n\n event OwnershipRenounced(address indexed previousOwner);\n event OwnershipTransferred(\n address indexed previousOwner,\n address indexed newOwner\n );\n\n\n /**\n * @dev The Ownable constructor sets the original `owner` of the contract to the sender\n * account.\n */\n function initialize(address sender) public initializer {\n _owner = sender;\n }\n\n /**\n * @return the address of the owner.\n */\n function owner() public view returns(address) {\n return _owner;\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n require(isOwner());\n _;\n }\n\n /**\n * @return true if `msg.sender` is the owner of the contract.\n */\n function isOwner() public view returns(bool) {\n return msg.sender == _owner;\n }\n\n /**\n * @dev Allows the current owner to relinquish control of the contract.\n * @notice Renouncing to ownership will leave the contract without an owner.\n * It will not be possible to call the functions with the `onlyOwner`\n * modifier anymore.\n */\n function renounceOwnership() public onlyOwner {\n emit OwnershipRenounced(_owner);\n _owner = address(0);\n }\n\n /**\n * @dev Allows the current owner to transfer control of the contract to a newOwner.\n * @param newOwner The address to transfer ownership to.\n */\n function transferOwnership(address newOwner) public onlyOwner {\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers control of the contract to a newOwner.\n * @param newOwner The address to transfer ownership to.\n */\n function _transferOwnership(address newOwner) internal {\n require(newOwner != address(0));\n emit OwnershipTransferred(_owner, newOwner);\n _owner = newOwner;\n }\n\n uint256[50] private ______gap;\n}\n", + "sourcePath": "openzeppelin-eth/contracts/ownership/Ownable.sol", + "ast": { + "absolutePath": "openzeppelin-eth/contracts/ownership/Ownable.sol", + "exportedSymbols": { + "Ownable": [ + 964 + ] + }, + "id": 965, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 853, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:7" + }, + { + "absolutePath": "zos-lib/contracts/Initializable.sol", + "file": "zos-lib/contracts/Initializable.sol", + "id": 854, + "nodeType": "ImportDirective", + "scope": 965, + "sourceUnit": 1608, + "src": "26:45:7", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 855, + "name": "Initializable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1607, + "src": "283:13:7", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Initializable_$1607", + "typeString": "contract Initializable" + } + }, + "id": 856, + "nodeType": "InheritanceSpecifier", + "src": "283:13:7" + } + ], + "contractDependencies": [ + 1607 + ], + "contractKind": "contract", + "documentation": "@title Ownable\n@dev The Ownable contract has an owner address, and provides basic authorization control\nfunctions, this simplifies the implementation of \"user permissions\".", + "fullyImplemented": true, + "id": 964, + "linearizedBaseContracts": [ + 964, + 1607 + ], + "name": "Ownable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 858, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 964, + "src": "301:22:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 857, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "301:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 862, + "name": "OwnershipRenounced", + "nodeType": "EventDefinition", + "parameters": { + "id": 861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 860, + "indexed": true, + "name": "previousOwner", + "nodeType": "VariableDeclaration", + "scope": 862, + "src": "354:29:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 859, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "354:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "353:31:7" + }, + "src": "329:56:7" + }, + { + "anonymous": false, + "documentation": null, + "id": 868, + "name": "OwnershipTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 867, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 864, + "indexed": true, + "name": "previousOwner", + "nodeType": "VariableDeclaration", + "scope": 868, + "src": "420:29:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 863, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "420:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 866, + "indexed": true, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 868, + "src": "455:24:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 865, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "455:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "414:69:7" + }, + "src": "388:96:7" + }, + { + "body": { + "id": 879, + "nodeType": "Block", + "src": "660:26:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 875, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 858, + "src": "666:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 876, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 870, + "src": "675:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "666:15:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 878, + "nodeType": "ExpressionStatement", + "src": "666:15:7" + } + ] + }, + "documentation": "@dev The Ownable constructor sets the original `owner` of the contract to the sender\naccount.", + "id": 880, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 873, + "modifierName": { + "argumentTypes": null, + "id": 872, + "name": "initializer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1588, + "src": "648:11:7", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "648:11:7" + } + ], + "name": "initialize", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 871, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 870, + "name": "sender", + "nodeType": "VariableDeclaration", + "scope": 880, + "src": "625:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 869, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "625:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "624:16:7" + }, + "payable": false, + "returnParameters": { + "id": 874, + "nodeType": "ParameterList", + "parameters": [], + "src": "660:0:7" + }, + "scope": 964, + "src": "605:81:7", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 887, + "nodeType": "Block", + "src": "787:24:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 885, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 858, + "src": "800:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 884, + "id": 886, + "nodeType": "Return", + "src": "793:13:7" + } + ] + }, + "documentation": "@return the address of the owner.", + "id": 888, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "owner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 881, + "nodeType": "ParameterList", + "parameters": [], + "src": "755:2:7" + }, + "payable": false, + "returnParameters": { + "id": 884, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 883, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 888, + "src": "778:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 882, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "778:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "777:9:7" + }, + "scope": 964, + "src": "741:70:7", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 896, + "nodeType": "Block", + "src": "912:36:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 891, + "name": "isOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 908, + "src": "926:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "926:9:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 890, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1625, + 1626 + ], + "referencedDeclaration": 1625, + "src": "918:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "918:18:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 894, + "nodeType": "ExpressionStatement", + "src": "918:18:7" + }, + { + "id": 895, + "nodeType": "PlaceholderStatement", + "src": "942:1:7" + } + ] + }, + "documentation": "@dev Throws if called by any account other than the owner.", + "id": 897, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 889, + "nodeType": "ParameterList", + "parameters": [], + "src": "909:2:7" + }, + "src": "891:57:7", + "visibility": "internal" + }, + { + "body": { + "id": 907, + "nodeType": "Block", + "src": "1073:38:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 902, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "1086:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1086:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 904, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 858, + "src": "1100:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1086:20:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 901, + "id": 906, + "nodeType": "Return", + "src": "1079:27:7" + } + ] + }, + "documentation": "@return true if `msg.sender` is the owner of the contract.", + "id": 908, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 898, + "nodeType": "ParameterList", + "parameters": [], + "src": "1044:2:7" + }, + "payable": false, + "returnParameters": { + "id": 901, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 900, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 908, + "src": "1067:4:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 899, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1067:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1066:6:7" + }, + "scope": 964, + "src": "1028:83:7", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 923, + "nodeType": "Block", + "src": "1421:67:7", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 914, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 858, + "src": "1451:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 913, + "name": "OwnershipRenounced", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "1432:18:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1432:26:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 916, + "nodeType": "EmitStatement", + "src": "1427:31:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 917, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 858, + "src": "1464:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1481:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 918, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1473:7:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1473:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1464:19:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 922, + "nodeType": "ExpressionStatement", + "src": "1464:19:7" + } + ] + }, + "documentation": "@dev Allows the current owner to relinquish control of the contract.\n@notice Renouncing to ownership will leave the contract without an owner.\nIt will not be possible to call the functions with the `onlyOwner`\nmodifier anymore.", + "id": 924, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 911, + "modifierName": { + "argumentTypes": null, + "id": 910, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 897, + "src": "1411:9:7", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1411:9:7" + } + ], + "name": "renounceOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 909, + "nodeType": "ParameterList", + "parameters": [], + "src": "1401:2:7" + }, + "payable": false, + "returnParameters": { + "id": 912, + "nodeType": "ParameterList", + "parameters": [], + "src": "1421:0:7" + }, + "scope": 964, + "src": "1375:113:7", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 935, + "nodeType": "Block", + "src": "1711:39:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 932, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 926, + "src": "1736:8:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 931, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 959, + "src": "1717:18:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1717:28:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 934, + "nodeType": "ExpressionStatement", + "src": "1717:28:7" + } + ] + }, + "documentation": "@dev Allows the current owner to transfer control of the contract to a newOwner.\n@param newOwner The address to transfer ownership to.", + "id": 936, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 929, + "modifierName": { + "argumentTypes": null, + "id": 928, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 897, + "src": "1701:9:7", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1701:9:7" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 927, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 926, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "1676:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 925, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1676:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1675:18:7" + }, + "payable": false, + "returnParameters": { + "id": 930, + "nodeType": "ParameterList", + "parameters": [], + "src": "1711:0:7" + }, + "scope": 964, + "src": "1649:101:7", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 958, + "nodeType": "Block", + "src": "1939:114:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 942, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "1953:8:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 944, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1973:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 943, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1965:7:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 945, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1965:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1953:22:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 941, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1625, + 1626 + ], + "referencedDeclaration": 1625, + "src": "1945:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1945:31:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 948, + "nodeType": "ExpressionStatement", + "src": "1945:31:7" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 950, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 858, + "src": "2008:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 951, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "2016:8:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 949, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 868, + "src": "1987:20:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1987:38:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 953, + "nodeType": "EmitStatement", + "src": "1982:43:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 954, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 858, + "src": "2031:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 955, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "2040:8:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2031:17:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 957, + "nodeType": "ExpressionStatement", + "src": "2031:17:7" + } + ] + }, + "documentation": "@dev Transfers control of the contract to a newOwner.\n@param newOwner The address to transfer ownership to.", + "id": 959, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_transferOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 938, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "1912:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 937, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1912:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1911:18:7" + }, + "payable": false, + "returnParameters": { + "id": 940, + "nodeType": "ParameterList", + "parameters": [], + "src": "1939:0:7" + }, + "scope": 964, + "src": "1884:169:7", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 963, + "name": "______gap", + "nodeType": "VariableDeclaration", + "scope": 964, + "src": "2057:29:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage", + "typeString": "uint256[50]" + }, + "typeName": { + "baseType": { + "id": 960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2057:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 962, + "length": { + "argumentTypes": null, + "hexValue": "3530", + "id": 961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2065:2:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "50" + }, + "nodeType": "ArrayTypeName", + "src": "2057:11:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", + "typeString": "uint256[50]" + } + }, + "value": null, + "visibility": "private" + } + ], + "scope": 965, + "src": "263:1826:7" + } + ], + "src": "0:2090:7" + }, + "legacyAST": { + "absolutePath": "openzeppelin-eth/contracts/ownership/Ownable.sol", + "exportedSymbols": { + "Ownable": [ + 964 + ] + }, + "id": 965, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 853, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:7" + }, + { + "absolutePath": "zos-lib/contracts/Initializable.sol", + "file": "zos-lib/contracts/Initializable.sol", + "id": 854, + "nodeType": "ImportDirective", + "scope": 965, + "sourceUnit": 1608, + "src": "26:45:7", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 855, + "name": "Initializable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1607, + "src": "283:13:7", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Initializable_$1607", + "typeString": "contract Initializable" + } + }, + "id": 856, + "nodeType": "InheritanceSpecifier", + "src": "283:13:7" + } + ], + "contractDependencies": [ + 1607 + ], + "contractKind": "contract", + "documentation": "@title Ownable\n@dev The Ownable contract has an owner address, and provides basic authorization control\nfunctions, this simplifies the implementation of \"user permissions\".", + "fullyImplemented": true, + "id": 964, + "linearizedBaseContracts": [ + 964, + 1607 + ], + "name": "Ownable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 858, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 964, + "src": "301:22:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 857, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "301:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 862, + "name": "OwnershipRenounced", + "nodeType": "EventDefinition", + "parameters": { + "id": 861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 860, + "indexed": true, + "name": "previousOwner", + "nodeType": "VariableDeclaration", + "scope": 862, + "src": "354:29:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 859, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "354:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "353:31:7" + }, + "src": "329:56:7" + }, + { + "anonymous": false, + "documentation": null, + "id": 868, + "name": "OwnershipTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 867, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 864, + "indexed": true, + "name": "previousOwner", + "nodeType": "VariableDeclaration", + "scope": 868, + "src": "420:29:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 863, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "420:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 866, + "indexed": true, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 868, + "src": "455:24:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 865, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "455:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "414:69:7" + }, + "src": "388:96:7" + }, + { + "body": { + "id": 879, + "nodeType": "Block", + "src": "660:26:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 875, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 858, + "src": "666:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 876, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 870, + "src": "675:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "666:15:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 878, + "nodeType": "ExpressionStatement", + "src": "666:15:7" + } + ] + }, + "documentation": "@dev The Ownable constructor sets the original `owner` of the contract to the sender\naccount.", + "id": 880, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 873, + "modifierName": { + "argumentTypes": null, + "id": 872, + "name": "initializer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1588, + "src": "648:11:7", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "648:11:7" + } + ], + "name": "initialize", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 871, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 870, + "name": "sender", + "nodeType": "VariableDeclaration", + "scope": 880, + "src": "625:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 869, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "625:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "624:16:7" + }, + "payable": false, + "returnParameters": { + "id": 874, + "nodeType": "ParameterList", + "parameters": [], + "src": "660:0:7" + }, + "scope": 964, + "src": "605:81:7", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 887, + "nodeType": "Block", + "src": "787:24:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 885, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 858, + "src": "800:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 884, + "id": 886, + "nodeType": "Return", + "src": "793:13:7" + } + ] + }, + "documentation": "@return the address of the owner.", + "id": 888, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "owner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 881, + "nodeType": "ParameterList", + "parameters": [], + "src": "755:2:7" + }, + "payable": false, + "returnParameters": { + "id": 884, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 883, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 888, + "src": "778:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 882, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "778:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "777:9:7" + }, + "scope": 964, + "src": "741:70:7", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 896, + "nodeType": "Block", + "src": "912:36:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 891, + "name": "isOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 908, + "src": "926:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "926:9:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 890, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1625, + 1626 + ], + "referencedDeclaration": 1625, + "src": "918:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "918:18:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 894, + "nodeType": "ExpressionStatement", + "src": "918:18:7" + }, + { + "id": 895, + "nodeType": "PlaceholderStatement", + "src": "942:1:7" + } + ] + }, + "documentation": "@dev Throws if called by any account other than the owner.", + "id": 897, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 889, + "nodeType": "ParameterList", + "parameters": [], + "src": "909:2:7" + }, + "src": "891:57:7", + "visibility": "internal" + }, + { + "body": { + "id": 907, + "nodeType": "Block", + "src": "1073:38:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 902, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "1086:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1086:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 904, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 858, + "src": "1100:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1086:20:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 901, + "id": 906, + "nodeType": "Return", + "src": "1079:27:7" + } + ] + }, + "documentation": "@return true if `msg.sender` is the owner of the contract.", + "id": 908, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 898, + "nodeType": "ParameterList", + "parameters": [], + "src": "1044:2:7" + }, + "payable": false, + "returnParameters": { + "id": 901, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 900, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 908, + "src": "1067:4:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 899, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1067:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1066:6:7" + }, + "scope": 964, + "src": "1028:83:7", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 923, + "nodeType": "Block", + "src": "1421:67:7", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 914, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 858, + "src": "1451:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 913, + "name": "OwnershipRenounced", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "1432:18:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1432:26:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 916, + "nodeType": "EmitStatement", + "src": "1427:31:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 917, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 858, + "src": "1464:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1481:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 918, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1473:7:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1473:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1464:19:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 922, + "nodeType": "ExpressionStatement", + "src": "1464:19:7" + } + ] + }, + "documentation": "@dev Allows the current owner to relinquish control of the contract.\n@notice Renouncing to ownership will leave the contract without an owner.\nIt will not be possible to call the functions with the `onlyOwner`\nmodifier anymore.", + "id": 924, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 911, + "modifierName": { + "argumentTypes": null, + "id": 910, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 897, + "src": "1411:9:7", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1411:9:7" + } + ], + "name": "renounceOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 909, + "nodeType": "ParameterList", + "parameters": [], + "src": "1401:2:7" + }, + "payable": false, + "returnParameters": { + "id": 912, + "nodeType": "ParameterList", + "parameters": [], + "src": "1421:0:7" + }, + "scope": 964, + "src": "1375:113:7", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 935, + "nodeType": "Block", + "src": "1711:39:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 932, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 926, + "src": "1736:8:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 931, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 959, + "src": "1717:18:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1717:28:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 934, + "nodeType": "ExpressionStatement", + "src": "1717:28:7" + } + ] + }, + "documentation": "@dev Allows the current owner to transfer control of the contract to a newOwner.\n@param newOwner The address to transfer ownership to.", + "id": 936, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 929, + "modifierName": { + "argumentTypes": null, + "id": 928, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 897, + "src": "1701:9:7", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1701:9:7" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 927, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 926, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "1676:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 925, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1676:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1675:18:7" + }, + "payable": false, + "returnParameters": { + "id": 930, + "nodeType": "ParameterList", + "parameters": [], + "src": "1711:0:7" + }, + "scope": 964, + "src": "1649:101:7", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 958, + "nodeType": "Block", + "src": "1939:114:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 942, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "1953:8:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 944, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1973:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 943, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1965:7:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 945, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1965:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1953:22:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 941, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1625, + 1626 + ], + "referencedDeclaration": 1625, + "src": "1945:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1945:31:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 948, + "nodeType": "ExpressionStatement", + "src": "1945:31:7" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 950, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 858, + "src": "2008:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 951, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "2016:8:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 949, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 868, + "src": "1987:20:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1987:38:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 953, + "nodeType": "EmitStatement", + "src": "1982:43:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 954, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 858, + "src": "2031:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 955, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 938, + "src": "2040:8:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2031:17:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 957, + "nodeType": "ExpressionStatement", + "src": "2031:17:7" + } + ] + }, + "documentation": "@dev Transfers control of the contract to a newOwner.\n@param newOwner The address to transfer ownership to.", + "id": 959, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_transferOwnership", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 938, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "1912:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 937, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1912:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1911:18:7" + }, + "payable": false, + "returnParameters": { + "id": 940, + "nodeType": "ParameterList", + "parameters": [], + "src": "1939:0:7" + }, + "scope": 964, + "src": "1884:169:7", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 963, + "name": "______gap", + "nodeType": "VariableDeclaration", + "scope": 964, + "src": "2057:29:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage", + "typeString": "uint256[50]" + }, + "typeName": { + "baseType": { + "id": 960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2057:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 962, + "length": { + "argumentTypes": null, + "hexValue": "3530", + "id": 961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2065:2:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + }, + "value": "50" + }, + "nodeType": "ArrayTypeName", + "src": "2057:11:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$50_storage_ptr", + "typeString": "uint256[50]" + } + }, + "value": null, + "visibility": "private" + } + ], + "scope": 965, + "src": "263:1826:7" + } + ], + "src": "0:2090:7" + }, + "compiler": { + "name": "solc", + "version": "0.4.25+commit.59dbf8f1.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.0-beta.1", + "updatedAt": "2018-12-17T02:12:29.701Z", + "devdoc": { + "methods": { + "initialize(address)": { + "details": "The Ownable constructor sets the original `owner` of the contract to the sender account." + }, + "isOwner()": { + "return": "true if `msg.sender` is the owner of the contract." + }, + "owner()": { + "return": "the address of the owner." + }, + "renounceOwnership()": { + "details": "Allows the current owner to relinquish control of the contract." + }, + "transferOwnership(address)": { + "details": "Allows the current owner to transfer control of the contract to a newOwner.", + "params": { + "newOwner": "The address to transfer ownership to." + } + } + }, + "title": "Ownable" + }, + "userdoc": { + "methods": { + "renounceOwnership()": { + "notice": "Renouncing to ownership will leave the contract without an owner. It will not be possible to call the functions with the `onlyOwner` modifier anymore." + } + } + } +} \ No newline at end of file diff --git a/src/build/contracts/PersonalEconomy.json b/src/build/contracts/PersonalEconomy.json index eba54c5..b95d43a 100644 --- a/src/build/contracts/PersonalEconomy.json +++ b/src/build/contracts/PersonalEconomy.json @@ -38,6 +38,56 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "buyExponent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "buyInverseSlope", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "symbol", + "type": "string" + }, + { + "name": "decimals", + "type": "uint8" + } + ], + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [], @@ -79,6 +129,25 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": true, + "inputs": [ + { + "name": "tokens", + "type": "uint256" + } + ], + "name": "price", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [], @@ -120,11 +189,35 @@ "constant": false, "inputs": [ { - "name": "numTokens", + "name": "name", + "type": "string" + }, + { + "name": "symbol", + "type": "string" + }, + { + "name": "decimals", + "type": "uint8" + }, + { + "name": "_buyExponent", + "type": "uint256" + }, + { + "name": "_sellExponent", + "type": "uint256" + }, + { + "name": "_buyInverseSlope", + "type": "uint256" + }, + { + "name": "_sellInverseSlope", "type": "uint256" } ], - "name": "burn", + "name": "initialize", "outputs": [], "payable": false, "stateMutability": "nonpayable", @@ -132,22 +225,13 @@ }, { "constant": true, - "inputs": [], - "name": "exponent", - "outputs": [ + "inputs": [ { - "name": "", + "name": "toX", "type": "uint256" } ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "inverseSlope", + "name": "spread", "outputs": [ { "name": "", @@ -177,6 +261,15 @@ "stateMutability": "view", "type": "function" }, + { + "constant": false, + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [], @@ -194,11 +287,11 @@ { "constant": true, "inputs": [], - "name": "symbol", + "name": "isOwner", "outputs": [ { "name": "", - "type": "string" + "type": "bool" } ], "payable": false, @@ -208,31 +301,17 @@ { "constant": true, "inputs": [], - "name": "poolBalance", + "name": "symbol", "outputs": [ { "name": "", - "type": "uint256" + "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, - { - "constant": false, - "inputs": [ - { - "name": "numTokens", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, { "constant": false, "inputs": [ @@ -256,6 +335,20 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "sellInverseSlope", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": false, "inputs": [ @@ -279,6 +372,39 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": true, + "inputs": [ + { + "name": "tokens", + "type": "uint256" + } + ], + "name": "reward", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "sellExponent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [], @@ -294,14 +420,23 @@ "type": "function" }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "numTokens", - "type": "uint256" + "name": "sender", + "type": "address" } ], - "name": "priceToMint", + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "reserve", "outputs": [ { "name": "", @@ -313,22 +448,22 @@ "type": "function" }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "numTokens", + "name": "tokens", "type": "uint256" } ], - "name": "rewardForBurn", + "name": "buy", "outputs": [ { - "name": "", + "name": "paid", "type": "uint256" } ], - "payable": false, - "stateMutability": "view", + "payable": true, + "stateMutability": "payable", "type": "function" }, { @@ -354,6 +489,39 @@ "stateMutability": "view", "type": "function" }, + { + "constant": false, + "inputs": [ + { + "name": "tokens", + "type": "uint256" + } + ], + "name": "sell", + "outputs": [ + { + "name": "rewarded", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -399,6 +567,23 @@ "name": "Requested", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "payout", + "type": "uint256" + }, + { + "indexed": true, + "name": "timestamp", + "type": "uint256" + } + ], + "name": "Payout", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -409,11 +594,16 @@ }, { "indexed": false, - "name": "totalCost", + "name": "paid", + "type": "uint256" + }, + { + "indexed": true, + "name": "when", "type": "uint256" } ], - "name": "Minted", + "name": "CurveBuy", "type": "event" }, { @@ -426,11 +616,16 @@ }, { "indexed": false, - "name": "reward", + "name": "rewarded", + "type": "uint256" + }, + { + "indexed": true, + "name": "when", "type": "uint256" } ], - "name": "Burned", + "name": "CurveSell", "type": "event" }, { @@ -477,15 +672,44 @@ "name": "Approval", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + } + ], + "name": "OwnershipRenounced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, { "constant": false, "inputs": [ { - "name": "_msg", + "name": "message", "type": "string" }, { - "name": "_price", + "name": "reqNumTokens", "type": "uint256" } ], @@ -499,11 +723,11 @@ "constant": false, "inputs": [ { - "name": "_msg", + "name": "message", "type": "string" }, { - "name": "_price", + "name": "reqNumTokens", "type": "uint256" } ], @@ -533,20 +757,20 @@ "type": "function" } ], - "bytecode": "0x60806040523480156200001157600080fd5b50604051620021f0380380620021f0833981018060405281019080805190602001909291908051820192919060200180518201929190602001805190602001909291905050508282601260016103e884848482828282600090805190602001906200007e92919062000122565b5081600190805190602001906200009792919062000122565b5080600260006101000a81548160ff021916908360ff16021790555050505050505081600781905550806008819055505050505050836009816000191690555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050620001d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016557805160ff191683800117855562000196565b8280016001018555821562000196579182015b828111156200019557825182559160200191906001019062000178565b5b509050620001a59190620001a9565b5090565b620001ce91905b80821115620001ca576000816000905550600101620001b0565b5090565b90565b61200f80620001e16000396000f300608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610138578063095ea7b3146101c857806318160ddd1461022d57806323b872dd14610258578063313ce567146102dd578063395093511461030e57806342966c681461037357806352f6ee58146103a0578063621d8531146103cb5780636400be1d1461043157806370a082311461045c5780638da5cb5b146104b357806395d89b411461050a57806396365d441461059a578063a0712d68146105c5578063a457c2d7146105e5578063a9059cbb1461064a578063a9d989b4146106af578063b25ba02e14610722578063b9d3674314610755578063c544682b14610796578063cdf7f8e6146107d7578063dd62ed3e14610820575b600080fd5b34801561014457600080fd5b5061014d610897565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018d578082015181840152602081019050610172565b50505050905090810190601f1680156101ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d457600080fd5b50610213600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610939565b604051808215151515815260200191505060405180910390f35b34801561023957600080fd5b50610242610a66565b6040518082815260200191505060405180910390f35b34801561026457600080fd5b506102c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a70565b604051808215151515815260200191505060405180910390f35b3480156102e957600080fd5b506102f2610c22565b604051808260ff1660ff16815260200191505060405180910390f35b34801561031a57600080fd5b50610359600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c39565b604051808215151515815260200191505060405180910390f35b34801561037f57600080fd5b5061039e60048036038101908080359060200190929190505050610e70565b005b3480156103ac57600080fd5b506103b5611049565b6040518082815260200191505060405180910390f35b61042f600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061104f565b005b34801561043d57600080fd5b5061044661120e565b6040518082815260200191505060405180910390f35b34801561046857600080fd5b5061049d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611214565b6040518082815260200191505060405180910390f35b3480156104bf57600080fd5b506104c861125d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561051657600080fd5b5061051f611283565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561055f578082015181840152602081019050610544565b50505050905090810190601f16801561058c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105a657600080fd5b506105af611325565b6040518082815260200191505060405180910390f35b6105e36004803603810190808035906020019092919050505061132b565b005b3480156105f157600080fd5b50610630600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061153d565b604051808215151515815260200191505060405180910390f35b34801561065657600080fd5b50610695600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611774565b604051808215151515815260200191505060405180910390f35b3480156106bb57600080fd5b50610720600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061178b565b005b34801561072e57600080fd5b50610737611894565b60405180826000191660001916815260200191505060405180910390f35b34801561076157600080fd5b506107806004803603810190808035906020019092919050505061189a565b6040518082815260200191505060405180910390f35b3480156107a257600080fd5b506107c1600480360381019080803590602001909291905050506118d9565b6040518082815260200191505060405180910390f35b3480156107e357600080fd5b506108066004803603810190808035600019169060200190929190505050611918565b604051808215151515815260200191505060405180910390f35b34801561082c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611986565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561092f5780601f106109045761010080835404028352916020019161092f565b820191906000526020600020905b81548152906001019060200180831161091257829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561097657600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610afd57600080fd5b610b8c82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c17848484611a2e565b600190509392505050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610c7657600080fd5b610d0582600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008082111515610f0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d757374206275726e20616e20616d6f756e742067726561746572207468616e81526020017f207a65726f2e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81610f1933611214565b10151515610f8f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d757374206861766520656e6f75676820746f6b656e7320746f206275726e2e81525060200191505060405180910390fd5b610f98826118d9565b9050610fa43383611c6d565b610fb981600654611a0d90919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611005573d6000803e3d6000fd5b507fcec1bae6e024d929f2929f3478ce70f55f9c636c8ef7b5073a61d7c3a432451b8282604051808381526020018281526020019250505060405180910390a15050565b60075481565b600061105a8261189a565b90508034101515156110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6111043383611dfb565b61113133600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309183423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156111cd5780820151818401526020810190506111b2565b50505050905090810190601f1680156111fa5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b60085481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561131b5780601f106112f05761010080835404028352916020019161131b565b820191906000526020600020905b8154815290600101906020018083116112fe57829003601f168201915b5050505050905090565b60065481565b600080821115156113ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4d75737420707572636861736520616e20616d6f756e7420677265617465722081526020017f7468616e207a65726f2e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6113d38261189a565b9050803410151515611473576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61147d3383611dfb565b61149281600654611c4c90919063ffffffff16565b600681905550803411156114fa573373ffffffffffffffffffffffffffffffffffffffff166108fc6114cd8334611a0d90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156114f8573d6000803e3d6000fd5b505b7f8a9dcf4e150b1153011b29fec302d5be0c13e84fa8f56ab78587f778a32a90dd8282604051808381526020018281526020019250505060405180910390a15050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561157a57600080fd5b61160982600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000611781338484611a2e565b6001905092915050565b6117b833600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309182423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015611854578082015181840152602081019050611839565b50505050905090810190601f1680156118815780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b60095481565b60006118d26006546118c46118bf856118b1610a66565b611c4c90919063ffffffff16565b611f3b565b611a0d90919063ffffffff16565b9050919050565b60006119116119006118fb846118ed610a66565b611a0d90919063ffffffff16565b611f3b565b600654611a0d90919063ffffffff16565b9050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561197657600080fd5b8160098160001916905550919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080838311151515611a1f57600080fd5b82840390508091505092915050565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611a7c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611ab857600080fd5b611b0a81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b9f81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000808284019050838110151515611c6357600080fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611c9357600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611ce157600080fd5b611cf681600554611a0d90919063ffffffff16565b600581905550611d4e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611e2157600080fd5b611e3681600554611c4c90919063ffffffff16565b600581905550611e8e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000806000611f566001600754611c4c90919063ffffffff16565b9150601282611f63610c22565b60ff1602600a0a039050611fb0670de0b6b3a7640000611fa2600854611f9486878a0a611fb990919063ffffffff16565b611fb990919063ffffffff16565b611fb990919063ffffffff16565b92505050919050565b600080600083111515611fcb57600080fd5b8284811515611fd657fe5b04905080915050929150505600a165627a7a72305820885af079c3b4b1baa61690e56afe0c8267273deb7c1b3f044aee1fdeffe9798a0029", - "deployedBytecode": "0x608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610138578063095ea7b3146101c857806318160ddd1461022d57806323b872dd14610258578063313ce567146102dd578063395093511461030e57806342966c681461037357806352f6ee58146103a0578063621d8531146103cb5780636400be1d1461043157806370a082311461045c5780638da5cb5b146104b357806395d89b411461050a57806396365d441461059a578063a0712d68146105c5578063a457c2d7146105e5578063a9059cbb1461064a578063a9d989b4146106af578063b25ba02e14610722578063b9d3674314610755578063c544682b14610796578063cdf7f8e6146107d7578063dd62ed3e14610820575b600080fd5b34801561014457600080fd5b5061014d610897565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018d578082015181840152602081019050610172565b50505050905090810190601f1680156101ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d457600080fd5b50610213600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610939565b604051808215151515815260200191505060405180910390f35b34801561023957600080fd5b50610242610a66565b6040518082815260200191505060405180910390f35b34801561026457600080fd5b506102c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a70565b604051808215151515815260200191505060405180910390f35b3480156102e957600080fd5b506102f2610c22565b604051808260ff1660ff16815260200191505060405180910390f35b34801561031a57600080fd5b50610359600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c39565b604051808215151515815260200191505060405180910390f35b34801561037f57600080fd5b5061039e60048036038101908080359060200190929190505050610e70565b005b3480156103ac57600080fd5b506103b5611049565b6040518082815260200191505060405180910390f35b61042f600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061104f565b005b34801561043d57600080fd5b5061044661120e565b6040518082815260200191505060405180910390f35b34801561046857600080fd5b5061049d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611214565b6040518082815260200191505060405180910390f35b3480156104bf57600080fd5b506104c861125d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561051657600080fd5b5061051f611283565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561055f578082015181840152602081019050610544565b50505050905090810190601f16801561058c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105a657600080fd5b506105af611325565b6040518082815260200191505060405180910390f35b6105e36004803603810190808035906020019092919050505061132b565b005b3480156105f157600080fd5b50610630600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061153d565b604051808215151515815260200191505060405180910390f35b34801561065657600080fd5b50610695600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611774565b604051808215151515815260200191505060405180910390f35b3480156106bb57600080fd5b50610720600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061178b565b005b34801561072e57600080fd5b50610737611894565b60405180826000191660001916815260200191505060405180910390f35b34801561076157600080fd5b506107806004803603810190808035906020019092919050505061189a565b6040518082815260200191505060405180910390f35b3480156107a257600080fd5b506107c1600480360381019080803590602001909291905050506118d9565b6040518082815260200191505060405180910390f35b3480156107e357600080fd5b506108066004803603810190808035600019169060200190929190505050611918565b604051808215151515815260200191505060405180910390f35b34801561082c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611986565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561092f5780601f106109045761010080835404028352916020019161092f565b820191906000526020600020905b81548152906001019060200180831161091257829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561097657600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610afd57600080fd5b610b8c82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c17848484611a2e565b600190509392505050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610c7657600080fd5b610d0582600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008082111515610f0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d757374206275726e20616e20616d6f756e742067726561746572207468616e81526020017f207a65726f2e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81610f1933611214565b10151515610f8f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d757374206861766520656e6f75676820746f6b656e7320746f206275726e2e81525060200191505060405180910390fd5b610f98826118d9565b9050610fa43383611c6d565b610fb981600654611a0d90919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611005573d6000803e3d6000fd5b507fcec1bae6e024d929f2929f3478ce70f55f9c636c8ef7b5073a61d7c3a432451b8282604051808381526020018281526020019250505060405180910390a15050565b60075481565b600061105a8261189a565b90508034101515156110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6111043383611dfb565b61113133600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309183423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156111cd5780820151818401526020810190506111b2565b50505050905090810190601f1680156111fa5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b60085481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561131b5780601f106112f05761010080835404028352916020019161131b565b820191906000526020600020905b8154815290600101906020018083116112fe57829003601f168201915b5050505050905090565b60065481565b600080821115156113ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4d75737420707572636861736520616e20616d6f756e7420677265617465722081526020017f7468616e207a65726f2e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6113d38261189a565b9050803410151515611473576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61147d3383611dfb565b61149281600654611c4c90919063ffffffff16565b600681905550803411156114fa573373ffffffffffffffffffffffffffffffffffffffff166108fc6114cd8334611a0d90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156114f8573d6000803e3d6000fd5b505b7f8a9dcf4e150b1153011b29fec302d5be0c13e84fa8f56ab78587f778a32a90dd8282604051808381526020018281526020019250505060405180910390a15050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561157a57600080fd5b61160982600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000611781338484611a2e565b6001905092915050565b6117b833600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309182423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015611854578082015181840152602081019050611839565b50505050905090810190601f1680156118815780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b60095481565b60006118d26006546118c46118bf856118b1610a66565b611c4c90919063ffffffff16565b611f3b565b611a0d90919063ffffffff16565b9050919050565b60006119116119006118fb846118ed610a66565b611a0d90919063ffffffff16565b611f3b565b600654611a0d90919063ffffffff16565b9050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561197657600080fd5b8160098160001916905550919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080838311151515611a1f57600080fd5b82840390508091505092915050565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611a7c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611ab857600080fd5b611b0a81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b9f81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000808284019050838110151515611c6357600080fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611c9357600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611ce157600080fd5b611cf681600554611a0d90919063ffffffff16565b600581905550611d4e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611e2157600080fd5b611e3681600554611c4c90919063ffffffff16565b600581905550611e8e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000806000611f566001600754611c4c90919063ffffffff16565b9150601282611f63610c22565b60ff1602600a0a039050611fb0670de0b6b3a7640000611fa2600854611f9486878a0a611fb990919063ffffffff16565b611fb990919063ffffffff16565b611fb990919063ffffffff16565b92505050919050565b600080600083111515611fcb57600080fd5b8284811515611fd657fe5b04905080915050929150505600a165627a7a72305820885af079c3b4b1baa61690e56afe0c8267273deb7c1b3f044aee1fdeffe9798a0029", - "sourceMap": "92:1153:2:-;;;273:288;8:9:-1;5:2;;;30:1;27;20:12;5:2;273:288:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;421:5;436:7;453:2;465:1;476:4;653::5;659:6;667:8;557:4:4;563:6;571:8;475:4:8;467:5;:12;;;;;;;;;;;;:::i;:::-;;495:6;485:7;:16;;;;;;;;;;;;:::i;:::-;;519:8;507:9;;:20;;;;;;;;;;;;;;;;;;398:134;;;455:147:4;;;718:9:5;707:8;:20;;;;752:13;737:12;:28;;;;485:287;;;;;524:6:2;516:5;:14;;;;;;;548:6;540:5;;:14;;;;;;;;;;;;;;;;;;273:288;;;;92:1153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "92:1153:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;584:67:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;584:67:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;584:67:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2380:220:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2380:220:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;640:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;640:83:7;;;;;;;;;;;;;;;;;;;;;;;2872:288;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2872:288:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;842:74:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;842:74:8;;;;;;;;;;;;;;;;;;;;;;;;;;;3611:330:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3611:330:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1307:445:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1307:445:4;;;;;;;;;;;;;;;;;;;;;;;;;;130:23:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;130:23:5;;;;;;;;;;;;;;;;;;;;;;;567:363:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;159:27:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;159:27:5;;;;;;;;;;;;;;;;;;;;;;;920:98:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;920:98:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;242:20:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;242:20:2;;;;;;;;;;;;;;;;;;;;;;;;;;;705:71:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;705:71:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;705:71:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;318:26:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;318:26:4;;;;;;;;;;;;;;;;;;;;;;;762:539;;;;;;;;;;;;;;;;;;;;;;;;;;4397:340:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4397:340:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1637:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1637:127:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;936:162:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;936:162:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;216:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;216:20:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1193:153:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1193:153:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1352:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1352:155:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1104:139:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1104:139:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1335:150:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1335:150:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;584:67:8;620:6;641:5;634:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;584:67;:::o;2380:220:7:-;2445:4;2484:1;2465:21;;:7;:21;;;;2457:30;;;;;;;;2526:5;2494:8;:20;2503:10;2494:20;;;;;;;;;;;;;;;:29;2515:7;2494:29;;;;;;;;;;;;;;;:37;;;;2563:7;2542:36;;2551:10;2542:36;;;2572:5;2542:36;;;;;;;;;;;;;;;;;;2591:4;2584:11;;2380:220;;;;:::o;640:83::-;684:7;706:12;;699:19;;640:83;:::o;2872:288::-;2975:4;3006:8;:14;3015:4;3006:14;;;;;;;;;;;;;;;:26;3021:10;3006:26;;;;;;;;;;;;;;;;2997:5;:35;;2989:44;;;;;;;;3069:37;3100:5;3069:8;:14;3078:4;3069:14;;;;;;;;;;;;;;;:26;3084:10;3069:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;3040:8;:14;3049:4;3040:14;;;;;;;;;;;;;;;:26;3055:10;3040:26;;;;;;;;;;;;;;;:66;;;;3112:26;3122:4;3128:2;3132:5;3112:9;:26::i;:::-;3151:4;3144:11;;2872:288;;;;;:::o;842:74:8:-;882:5;902:9;;;;;;;;;;;895:16;;842:74;:::o;3611:330:7:-;3711:4;3752:1;3733:21;;:7;:21;;;;3725:30;;;;;;;;3802:45;3836:10;3802:8;:20;3811:10;3802:20;;;;;;;;;;;;;;;:29;3823:7;3802:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;3762:8;:20;3771:10;3762:20;;;;;;;;;;;;;;;:29;3783:7;3762:29;;;;;;;;;;;;;;;:86;;;;3880:7;3859:60;;3868:10;3859:60;;;3889:8;:20;3898:10;3889:20;;;;;;;;;;;;;;;:29;3910:7;3889:29;;;;;;;;;;;;;;;;3859:60;;;;;;;;;;;;;;;;;;3932:4;3925:11;;3611:330;;;;:::o;1307:445:4:-;1521:19;1377:1;1365:9;:13;1357:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1464:9;1439:21;1449:10;1439:9;:21::i;:::-;:34;;1431:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1543:24;1557:9;1543:13;:24::i;:::-;1521:46;;1577:28;1583:10;1595:9;1577:5;:28::i;:::-;1629;1645:11;1629;;:15;;:28;;;;:::i;:::-;1615:11;:42;;;;1667:10;:19;;:32;1687:11;1667:32;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1667:32:4;1715:30;1722:9;1733:11;1715:30;;;;;;;;;;;;;;;;;;;;;;;;1307:445;;:::o;130:23:5:-;;;;:::o;567:363:2:-;681:12;696:19;708:6;696:11;:19::i;:::-;681:34;;746:4;733:9;:17;;725:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;805:25;811:10;823:6;805:5;:25::i;:::-;840:36;850:10;862:5;;;;;;;;;;;869:6;840:9;:36::i;:::-;891:32;901:4;907:3;912:10;891:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;891:32:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;567:363;;;:::o;159:27:5:-;;;;:::o;920:98:7:-;975:7;997:9;:16;1007:5;997:16;;;;;;;;;;;;;;;;990:23;;920:98;;;:::o;242:20:2:-;;;;;;;;;;;;;:::o;705:71:8:-;743:6;764:7;757:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;705:71;:::o;318:26:4:-;;;;:::o;762:539::-;899:22;840:1;828:9;:13;820:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;924:22;936:9;924:11;:22::i;:::-;899:47;;977:14;964:9;:27;;956:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1046:28;1052:10;1064:9;1046:5;:28::i;:::-;1098:31;1114:14;1098:11;;:15;;:31;;;;:::i;:::-;1084:11;:45;;;;1155:14;1143:9;:26;1139:107;;;1185:10;:19;;:50;1205:29;1219:14;1205:9;:13;;:29;;;;:::i;:::-;1185:50;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1185:50:4;1139:107;1261:33;1268:9;1279:14;1261:33;;;;;;;;;;;;;;;;;;;;;;;;762:539;;:::o;4397:340:7:-;4502:4;4543:1;4524:21;;:7;:21;;;;4516:30;;;;;;;;4593:50;4627:15;4593:8;:20;4602:10;4593:20;;;;;;;;;;;;;;;:29;4614:7;4593:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;4553:8;:20;4562:10;4553:20;;;;;;;;;;;;;;;:29;4574:7;4553:29;;;;;;;;;;;;;;;:91;;;;4676:7;4655:60;;4664:10;4655:60;;;4685:8;:20;4694:10;4685:20;;;;;;;;;;;;;;;:29;4706:7;4685:29;;;;;;;;;;;;;;;;4655:60;;;;;;;;;;;;;;;;;;4728:4;4721:11;;4397:340;;;;:::o;1637:127::-;1698:4;1710:32;1720:10;1732:2;1736:5;1710:9;:32::i;:::-;1755:4;1748:11;;1637:127;;;;:::o;936:162:2:-;1008:36;1018:10;1030:5;;;;;;;;;;;1037:6;1008:9;:36::i;:::-;1059:32;1069:4;1075:3;1080:10;1059:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1059:32:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;936:162;;:::o;216:20::-;;;;:::o;1193:153:5:-;1253:7;1279:60;1327:11;;1279:43;1293:28;1311:9;1293:13;:11;:13::i;:::-;:17;;:28;;;;:::i;:::-;1279:13;:43::i;:::-;:47;;:60;;;;:::i;:::-;1272:67;;1193:153;;;:::o;1352:155::-;1414:7;1440:60;1456:43;1470:28;1488:9;1470:13;:11;:13::i;:::-;:17;;:28;;;;:::i;:::-;1456:13;:43::i;:::-;1440:11;;:15;;:60;;;;:::i;:::-;1433:67;;1352:155;;;:::o;1104:139:2:-;1164:4;1206:5;;;;;;;;;;;1192:19;;:10;:19;;;1184:28;;;;;;;;1230:6;1222:5;:14;;;;;;;1104:139;;;:::o;1335:150:7:-;1432:7;1456:8;:15;1465:5;1456:15;;;;;;;;;;;;;;;:24;1472:7;1456:24;;;;;;;;;;;;;;;;1449:31;;1335:150;;;;:::o;1078:131:6:-;1136:7;1172:9;1164:1;1159;:6;;1151:15;;;;;;;;1188:1;1184;:5;1172:17;;1203:1;1196:8;;1078:131;;;;;:::o;4937:277:7:-;5029:9;:15;5039:4;5029:15;;;;;;;;;;;;;;;;5020:5;:24;;5012:33;;;;;;;;5073:1;5059:16;;:2;:16;;;;5051:25;;;;;;;;5101:26;5121:5;5101:9;:15;5111:4;5101:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;5083:9;:15;5093:4;5083:15;;;;;;;;;;;;;;;:44;;;;5149:24;5167:5;5149:9;:13;5159:2;5149:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;5133:9;:13;5143:2;5133:13;;;;;;;;;;;;;;;:40;;;;5199:2;5184:25;;5193:4;5184:25;;;5203:5;5184:25;;;;;;;;;;;;;;;;;;4937:277;;;:::o;1272:131:6:-;1330:7;1345:9;1361:1;1357;:5;1345:17;;1381:1;1376;:6;;1368:15;;;;;;;;1397:1;1390:8;;1272:131;;;;;:::o;5988:278:7:-;6069:1;6058:7;:12;;;;6050:21;;;;;;;;6094:9;:18;6104:7;6094:18;;;;;;;;;;;;;;;;6085:5;:27;;6077:36;;;;;;;;6135:23;6152:5;6135:12;;:16;;:23;;;;:::i;:::-;6120:12;:38;;;;6185:29;6208:5;6185:9;:18;6195:7;6185:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;6164:9;:18;6174:7;6164:18;;;;;;;;;;;;;;;:50;;;;6251:1;6225:36;;6234:7;6225:36;;;6255:5;6225:36;;;;;;;;;;;;;;;;;;5988:278;;:::o;5541:235::-;5622:1;5611:7;:12;;;;5603:21;;;;;;;;5645:23;5662:5;5645:12;;:16;;:23;;;;:::i;:::-;5630:12;:38;;;;5695:29;5718:5;5695:9;:18;5705:7;5695:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;5674:9;:18;5684:7;5674:18;;;;;;;;;;;;;;;:50;;;;5756:7;5735:36;;5752:1;5735:36;;;5765:5;5735:36;;;;;;;;;;;;;;;;;;5541:235;;:::o;880:307:5:-;932:7;951:12;991;966:15;979:1;966:8;;:12;;:15;;;;:::i;:::-;951:30;;1052:2;1043:4;1021:10;:8;:10::i;:::-;1013:19;;:35;1006:2;:43;:48;991:63;;1127:53;1171:8;1127:39;1153:12;;1127:21;1143:4;1133;1128:1;:9;1127:15;;:21;;;;:::i;:::-;:25;;:39;;;;:::i;:::-;:43;;:53;;;;:::i;:::-;1108:72;;880:307;;;;;:::o;695:270:6:-;753:7;846:9;780:1;776;:5;768:14;;;;;;;;862:1;858;:5;;;;;;;;846:17;;959:1;952:8;;695:270;;;;;:::o", - "source": "pragma solidity ^0.4.24;\n\nimport \"@convergent/arc/contracts/EthPolynomialCurvedToken.sol\";\n\ncontract PersonalEconomy is EthPolynomialCurvedToken {\n event Requested(string message, uint256 time, address who);\n\n bytes32 public mhash;\n address public owner;\n \n constructor(\n bytes32 _mhash,\n string _name,\n string _symbol,\n address _owner\n ) EthPolynomialCurvedToken(\n _name,\n _symbol,\n 18,\n 1,\n 1000\n )\n public\n {\n mhash = _mhash;\n owner = _owner;\n }\n\n function requestWithEth(\n string _msg,\n uint256 _price\n ) public\n payable\n {\n uint256 cost = priceToMint(_price);\n require(msg.value >= cost, \"Must send requisite amount to purchase.\");\n\n _mint(msg.sender, _price);\n _transfer(msg.sender, owner, _price);\n emit Requested(_msg, now, msg.sender);\n }\n\n function requestWithToken(string _msg, uint256 _price) public {\n _transfer(msg.sender, owner, _price);\n emit Requested(_msg, now, msg.sender);\n }\n\n function updateData(bytes32 _mhash)\n public returns (bool)\n {\n require(msg.sender == owner);\n mhash = _mhash;\n }\n}\n", - "sourcePath": "/home/achill/Arena_Master/Arena/contracts/PersonalEconomy.sol", + "bytecode": "0x60806040523480156200001157600080fd5b506040516200368f3803806200368f833981018060405281019080805190602001909291908051820192919060200180518201929190602001805190602001909291905050506200008283836012600180610bb8610fa0620000b16401000000000262001392176401000000009004565b6200009c816200025d640100000000026401000000009004565b8360d581600019169055505050505062000945565b60008060019054906101000a900460ff1680620000e35750620000e26200029f640100000000026401000000009004565b5b80620000fb57506000809054906101000a900460ff16155b151562000196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff021916908315150217905550620001fc33620002b06401000000000262001ca1176401000000009004565b6200021d8888886200043b6401000000000262000e00176401000000009004565b8460d1819055508360d2819055508260d3819055508160d48190555080600060016101000a81548160ff0219169083151502179055505050505050505050565b62000276620005a8640100000000026401000000009004565b15156200028257600080fd5b6200029c8162000600640100000000026401000000009004565b50565b600080303b90506000811491505090565b60008060019054906101000a900460ff1680620002e25750620002e16200029f640100000000026401000000009004565b5b80620002fa57506000809054906101000a900460ff16155b151562000395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548160ff0219169083151502179055505050565b60008060019054906101000a900460ff16806200046d57506200046c6200029f640100000000026401000000009004565b5b806200048557506000809054906101000a900460ff16155b151562000520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555062000588848484620006fd640100000000026200221c176401000000009004565b80600060016101000a81548160ff02191690831515021790555050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200063d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060019054906101000a900460ff16806200072f57506200072e6200029f640100000000026401000000009004565b5b806200074757506000809054906101000a900460ff16155b1515620007e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555083609b90805190602001906200084192919062000896565b5082609c90805190602001906200085a92919062000896565b5081609d60006101000a81548160ff021916908360ff16021790555080600060016101000a81548160ff02191690831515021790555050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620008d957805160ff19168380011785556200090a565b828001600101855582156200090a579182015b8281111562000909578251825591602001919060010190620008ec565b5b5090506200091991906200091d565b5090565b6200094291905b808211156200093e57600081600090555060010162000924565b5090565b90565b612d3a80620009556000396000f300608060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461019b578063095ea7b31461022b578063112d37581461029057806314a962b6146102bb5780631624f6c6146102e657806318160ddd146103a257806323b872dd146103cd57806326a49e3714610452578063313ce5671461049357806339509351146104c457806356885ba114610529578063621d85311461060d578063638769f51461067357806370a08231146106b4578063715018a61461070b5780638da5cb5b146107225780638f32d59b1461077957806395d89b41146107a8578063a457c2d714610838578063a78d0ed01461089d578063a9059cbb146108c8578063a9d989b41461092d578063a9fb763c146109a0578063aa69a909146109e1578063b25ba02e14610a0c578063c4d66de814610a3f578063cd3293de14610a82578063cdf7f8e614610aad578063d96a094a14610af6578063dd62ed3e14610b2a578063e4849b3214610ba1578063f2fde38b14610be2575b600080fd5b3480156101a757600080fd5b506101b0610c25565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f05780820151818401526020810190506101d5565b50505050905090810190601f16801561021d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023757600080fd5b50610276600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cc7565b604051808215151515815260200191505060405180910390f35b34801561029c57600080fd5b506102a5610df4565b6040518082815260200191505060405180910390f35b3480156102c757600080fd5b506102d0610dfa565b6040518082815260200191505060405180910390f35b3480156102f257600080fd5b506103a0600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610e00565b005b3480156103ae57600080fd5b506103b7610f43565b6040518082815260200191505060405180910390f35b3480156103d957600080fd5b50610438600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f4d565b604051808215151515815260200191505060405180910390f35b34801561045e57600080fd5b5061047d600480360381019080803590602001909291905050506110ff565b6040518082815260200191505060405180910390f35b34801561049f57600080fd5b506104a8611144565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104d057600080fd5b5061050f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061115b565b604051808215151515815260200191505060405180910390f35b34801561053557600080fd5b5061060b600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611392565b005b610671600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001909291905050506114fe565b005b34801561067f57600080fd5b5061069e600480360381019080803590602001909291905050506116a2565b6040518082815260200191505060405180910390f35b3480156106c057600080fd5b506106f5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116e5565b6040518082815260200191505060405180910390f35b34801561071757600080fd5b5061072061172e565b005b34801561072e57600080fd5b506107376117ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561078557600080fd5b5061078e611814565b604051808215151515815260200191505060405180910390f35b3480156107b457600080fd5b506107bd61186c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107fd5780820151818401526020810190506107e2565b50505050905090810190601f16801561082a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561084457600080fd5b50610883600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061190e565b604051808215151515815260200191505060405180910390f35b3480156108a957600080fd5b506108b2611b45565b6040518082815260200191505060405180910390f35b3480156108d457600080fd5b50610913600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b4b565b604051808215151515815260200191505060405180910390f35b34801561093957600080fd5b5061099e600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190505050611b62565b005b3480156109ac57600080fd5b506109cb60048036038101908080359060200190929190505050611c50565b6040518082815260200191505060405180910390f35b3480156109ed57600080fd5b506109f6611c95565b6040518082815260200191505060405180910390f35b348015610a1857600080fd5b50610a21611c9b565b60405180826000191660001916815260200191505060405180910390f35b348015610a4b57600080fd5b50610a80600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ca1565b005b348015610a8e57600080fd5b50610a97611e18565b6040518082815260200191505060405180910390f35b348015610ab957600080fd5b50610adc6004803603810190808035600019169060200190929190505050611e1e565b604051808215151515815260200191505060405180910390f35b610b1460048036038101908080359060200190929190505050611e71565b6040518082815260200191505060405180910390f35b348015610b3657600080fd5b50610b8b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f64565b6040518082815260200191505060405180910390f35b348015610bad57600080fd5b50610bcc60048036038101908080359060200190929190505050611feb565b6040518082815260200191505060405180910390f35b348015610bee57600080fd5b50610c23600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121ec565b005b6060609b8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cbd5780601f10610c9257610100808354040283529160200191610cbd565b820191906000526020600020905b815481529060010190602001808311610ca057829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610d0457600080fd5b81606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60d15481565b60d35481565b60008060019054906101000a900460ff1680610e205750610e1f61220b565b5b80610e3757506000809054906101000a900460ff16155b1515610ed1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff021916908315150217905550610f2384848461221c565b80600060016101000a81548160ff02191690831515021790555050505050565b6000606854905090565b6000606760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610fda57600080fd5b61106982606760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239d90919063ffffffff16565b606760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110f48484846123be565b600190509392505050565b600061113d60d05461112f61112485611116610f43565b6125dc90919063ffffffff16565b60d15460d3546125fd565b61239d90919063ffffffff16565b9050919050565b6000609d60009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561119857600080fd5b61122782606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125dc90919063ffffffff16565b606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008060019054906101000a900460ff16806113b257506113b161220b565b5b806113c957506000809054906101000a900460ff16155b1515611463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055506114b333611ca1565b6114be888888610e00565b8460d1819055508360d2819055508260d3819055508160d48190555080600060016101000a81548160ff0219169083151502179055505050505050505050565b6000611509826110ff565b90508034101515156115a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6115b33383612661565b6115c5336115bf6117ea565b846123be565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309183423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015611661578082015181840152602081019050611646565b50505050905090810190601f16801561168e5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b60008060006116b68460d15460d3546125fd565b91506116c78460d25460d4546125fd565b90506116dc818361239d90919063ffffffff16565b92505050919050565b6000606660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611736611814565b151561174157600080fd5b603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6060609c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119045780601f106118d957610100808354040283529160200191611904565b820191906000526020600020905b8154815290600101906020018083116118e757829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561194b57600080fd5b6119da82606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239d90919063ffffffff16565b606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60d45481565b6000611b583384846123be565b6001905092915050565b611b7433611b6e6117ea565b836123be565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309182423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015611c10578082015181840152602081019050611bf5565b50505050905090810190601f168015611c3d5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b6000611c8e611c7d611c7284611c64610f43565b61239d90919063ffffffff16565b60d25460d4546125fd565b60d05461239d90919063ffffffff16565b9050919050565b60d25481565b60d55481565b60008060019054906101000a900460ff1680611cc15750611cc061220b565b5b80611cd857506000809054906101000a900460ff16155b1515611d72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548160ff0219169083151502179055505050565b60d05481565b6000611e286117ea565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e6157600080fd5b8160d58160001916905550919050565b600080600080611e87611e82610f43565b6116a2565b9250611e92856127a1565b9350611ea4611e9f610f43565b6116a2565b9150611eb9838361239d90919063ffffffff16565b9050611ed08160d05461239d90919063ffffffff16565b60d081905550611ede6117ea565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f23573d6000803e3d6000fd5b50427f698e6ae5d786c1b7ebbb3f65f5c53b321f0c2d2cc5de830ede8183fac06ec425826040518082815260200191505060405180910390a2505050919050565b6000606760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000808211151561208a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d757374207370656e64206e6f6e2d7a65726f20616d6f756e74206f6620746f81526020017f6b656e732e00000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81612094336116e5565b10151515612130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f53656e64657220646f6573206e6f74206861766520656e6f75676820746f6b6581526020017f6e7320746f207370656e642e000000000000000000000000000000000000000081525060400191505060405180910390fd5b61213982611c50565b90506121508160d05461239d90919063ffffffff16565b60d08190555061216033836129b5565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121a6573d6000803e3d6000fd5b50427f5501bc527b3cba3e6befc13767fc7728d2de83aad635948271290a5ebd9653018383604051808381526020018281526020019250505060405180910390a2919050565b6121f4611814565b15156121ff57600080fd5b61220881612b43565b50565b600080303b90506000811491505090565b60008060019054906101000a900460ff168061223c575061223b61220b565b5b8061225357506000809054906101000a900460ff16155b15156122ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555083609b908051906020019061234a929190612c69565b5082609c9080519060200190612361929190612c69565b5081609d60006101000a81548160ff021916908360ff16021790555080600060016101000a81548160ff02191690831515021790555050505050565b6000808383111515156123af57600080fd5b82840390508091505092915050565b606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561240c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561244857600080fd5b61249a81606660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239d90919063ffffffff16565b606660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061252f81606660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125dc90919063ffffffff16565b606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008082840190508381101515156125f357600080fd5b8091505092915050565b6000806126146001856125dc90919063ffffffff16565b9050612657670de0b6b3a76400006126498561263b85868b0a612c3f90919063ffffffff16565b612c3f90919063ffffffff16565b612c3f90919063ffffffff16565b9150509392505050565b60008273ffffffffffffffffffffffffffffffffffffffff161415151561268757600080fd5b61269c816068546125dc90919063ffffffff16565b6068819055506126f481606660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125dc90919063ffffffff16565b606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008082111515612840576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742072657175657374206e6f6e2d7a65726f20616d6f756e74206f662081526020017f746f6b656e732e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b612849826110ff565b90508034101515156128e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f446964206e6f742073656e6420656e6f75676820657468657220746f2062757981526020017f210000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6128fe8160d0546125dc90919063ffffffff16565b60d08190555061290e3383612661565b80341115612970573373ffffffffffffffffffffffffffffffffffffffff166108fc612943833461239d90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561296e573d6000803e3d6000fd5b505b427fef06a9ba77137aabff72e359d8cc6f2af40b4135811720e6efe22ae19692b5978383604051808381526020018281526020019250505060405180910390a2919050565b60008273ffffffffffffffffffffffffffffffffffffffff16141515156129db57600080fd5b606660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515612a2957600080fd5b612a3e8160685461239d90919063ffffffff16565b606881905550612a9681606660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239d90919063ffffffff16565b606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612b7f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600083111515612c5157600080fd5b8284811515612c5c57fe5b0490508091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612caa57805160ff1916838001178555612cd8565b82800160010185558215612cd8579182015b82811115612cd7578251825591602001919060010190612cbc565b5b509050612ce59190612ce9565b5090565b612d0b91905b80821115612d07576000816000905550600101612cef565b5090565b905600a165627a7a723058201b1389fba8aa51230250958752fd77c28ea73812e1ecfcbe6837e2d18f7100b40029", + "deployedBytecode": "0x608060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461019b578063095ea7b31461022b578063112d37581461029057806314a962b6146102bb5780631624f6c6146102e657806318160ddd146103a257806323b872dd146103cd57806326a49e3714610452578063313ce5671461049357806339509351146104c457806356885ba114610529578063621d85311461060d578063638769f51461067357806370a08231146106b4578063715018a61461070b5780638da5cb5b146107225780638f32d59b1461077957806395d89b41146107a8578063a457c2d714610838578063a78d0ed01461089d578063a9059cbb146108c8578063a9d989b41461092d578063a9fb763c146109a0578063aa69a909146109e1578063b25ba02e14610a0c578063c4d66de814610a3f578063cd3293de14610a82578063cdf7f8e614610aad578063d96a094a14610af6578063dd62ed3e14610b2a578063e4849b3214610ba1578063f2fde38b14610be2575b600080fd5b3480156101a757600080fd5b506101b0610c25565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f05780820151818401526020810190506101d5565b50505050905090810190601f16801561021d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023757600080fd5b50610276600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cc7565b604051808215151515815260200191505060405180910390f35b34801561029c57600080fd5b506102a5610df4565b6040518082815260200191505060405180910390f35b3480156102c757600080fd5b506102d0610dfa565b6040518082815260200191505060405180910390f35b3480156102f257600080fd5b506103a0600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610e00565b005b3480156103ae57600080fd5b506103b7610f43565b6040518082815260200191505060405180910390f35b3480156103d957600080fd5b50610438600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f4d565b604051808215151515815260200191505060405180910390f35b34801561045e57600080fd5b5061047d600480360381019080803590602001909291905050506110ff565b6040518082815260200191505060405180910390f35b34801561049f57600080fd5b506104a8611144565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104d057600080fd5b5061050f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061115b565b604051808215151515815260200191505060405180910390f35b34801561053557600080fd5b5061060b600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611392565b005b610671600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001909291905050506114fe565b005b34801561067f57600080fd5b5061069e600480360381019080803590602001909291905050506116a2565b6040518082815260200191505060405180910390f35b3480156106c057600080fd5b506106f5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116e5565b6040518082815260200191505060405180910390f35b34801561071757600080fd5b5061072061172e565b005b34801561072e57600080fd5b506107376117ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561078557600080fd5b5061078e611814565b604051808215151515815260200191505060405180910390f35b3480156107b457600080fd5b506107bd61186c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107fd5780820151818401526020810190506107e2565b50505050905090810190601f16801561082a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561084457600080fd5b50610883600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061190e565b604051808215151515815260200191505060405180910390f35b3480156108a957600080fd5b506108b2611b45565b6040518082815260200191505060405180910390f35b3480156108d457600080fd5b50610913600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b4b565b604051808215151515815260200191505060405180910390f35b34801561093957600080fd5b5061099e600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190505050611b62565b005b3480156109ac57600080fd5b506109cb60048036038101908080359060200190929190505050611c50565b6040518082815260200191505060405180910390f35b3480156109ed57600080fd5b506109f6611c95565b6040518082815260200191505060405180910390f35b348015610a1857600080fd5b50610a21611c9b565b60405180826000191660001916815260200191505060405180910390f35b348015610a4b57600080fd5b50610a80600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ca1565b005b348015610a8e57600080fd5b50610a97611e18565b6040518082815260200191505060405180910390f35b348015610ab957600080fd5b50610adc6004803603810190808035600019169060200190929190505050611e1e565b604051808215151515815260200191505060405180910390f35b610b1460048036038101908080359060200190929190505050611e71565b6040518082815260200191505060405180910390f35b348015610b3657600080fd5b50610b8b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f64565b6040518082815260200191505060405180910390f35b348015610bad57600080fd5b50610bcc60048036038101908080359060200190929190505050611feb565b6040518082815260200191505060405180910390f35b348015610bee57600080fd5b50610c23600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121ec565b005b6060609b8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cbd5780601f10610c9257610100808354040283529160200191610cbd565b820191906000526020600020905b815481529060010190602001808311610ca057829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610d0457600080fd5b81606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60d15481565b60d35481565b60008060019054906101000a900460ff1680610e205750610e1f61220b565b5b80610e3757506000809054906101000a900460ff16155b1515610ed1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff021916908315150217905550610f2384848461221c565b80600060016101000a81548160ff02191690831515021790555050505050565b6000606854905090565b6000606760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610fda57600080fd5b61106982606760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239d90919063ffffffff16565b606760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110f48484846123be565b600190509392505050565b600061113d60d05461112f61112485611116610f43565b6125dc90919063ffffffff16565b60d15460d3546125fd565b61239d90919063ffffffff16565b9050919050565b6000609d60009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561119857600080fd5b61122782606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125dc90919063ffffffff16565b606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008060019054906101000a900460ff16806113b257506113b161220b565b5b806113c957506000809054906101000a900460ff16155b1515611463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055506114b333611ca1565b6114be888888610e00565b8460d1819055508360d2819055508260d3819055508160d48190555080600060016101000a81548160ff0219169083151502179055505050505050505050565b6000611509826110ff565b90508034101515156115a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6115b33383612661565b6115c5336115bf6117ea565b846123be565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309183423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015611661578082015181840152602081019050611646565b50505050905090810190601f16801561168e5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b60008060006116b68460d15460d3546125fd565b91506116c78460d25460d4546125fd565b90506116dc818361239d90919063ffffffff16565b92505050919050565b6000606660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611736611814565b151561174157600080fd5b603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6060609c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119045780601f106118d957610100808354040283529160200191611904565b820191906000526020600020905b8154815290600101906020018083116118e757829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561194b57600080fd5b6119da82606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239d90919063ffffffff16565b606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60d45481565b6000611b583384846123be565b6001905092915050565b611b7433611b6e6117ea565b836123be565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309182423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015611c10578082015181840152602081019050611bf5565b50505050905090810190601f168015611c3d5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b6000611c8e611c7d611c7284611c64610f43565b61239d90919063ffffffff16565b60d25460d4546125fd565b60d05461239d90919063ffffffff16565b9050919050565b60d25481565b60d55481565b60008060019054906101000a900460ff1680611cc15750611cc061220b565b5b80611cd857506000809054906101000a900460ff16155b1515611d72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548160ff0219169083151502179055505050565b60d05481565b6000611e286117ea565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e6157600080fd5b8160d58160001916905550919050565b600080600080611e87611e82610f43565b6116a2565b9250611e92856127a1565b9350611ea4611e9f610f43565b6116a2565b9150611eb9838361239d90919063ffffffff16565b9050611ed08160d05461239d90919063ffffffff16565b60d081905550611ede6117ea565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f23573d6000803e3d6000fd5b50427f698e6ae5d786c1b7ebbb3f65f5c53b321f0c2d2cc5de830ede8183fac06ec425826040518082815260200191505060405180910390a2505050919050565b6000606760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000808211151561208a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d757374207370656e64206e6f6e2d7a65726f20616d6f756e74206f6620746f81526020017f6b656e732e00000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81612094336116e5565b10151515612130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f53656e64657220646f6573206e6f74206861766520656e6f75676820746f6b6581526020017f6e7320746f207370656e642e000000000000000000000000000000000000000081525060400191505060405180910390fd5b61213982611c50565b90506121508160d05461239d90919063ffffffff16565b60d08190555061216033836129b5565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121a6573d6000803e3d6000fd5b50427f5501bc527b3cba3e6befc13767fc7728d2de83aad635948271290a5ebd9653018383604051808381526020018281526020019250505060405180910390a2919050565b6121f4611814565b15156121ff57600080fd5b61220881612b43565b50565b600080303b90506000811491505090565b60008060019054906101000a900460ff168061223c575061223b61220b565b5b8061225357506000809054906101000a900460ff16155b15156122ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555083609b908051906020019061234a929190612c69565b5082609c9080519060200190612361929190612c69565b5081609d60006101000a81548160ff021916908360ff16021790555080600060016101000a81548160ff02191690831515021790555050505050565b6000808383111515156123af57600080fd5b82840390508091505092915050565b606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561240c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561244857600080fd5b61249a81606660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239d90919063ffffffff16565b606660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061252f81606660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125dc90919063ffffffff16565b606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008082840190508381101515156125f357600080fd5b8091505092915050565b6000806126146001856125dc90919063ffffffff16565b9050612657670de0b6b3a76400006126498561263b85868b0a612c3f90919063ffffffff16565b612c3f90919063ffffffff16565b612c3f90919063ffffffff16565b9150509392505050565b60008273ffffffffffffffffffffffffffffffffffffffff161415151561268757600080fd5b61269c816068546125dc90919063ffffffff16565b6068819055506126f481606660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125dc90919063ffffffff16565b606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008082111515612840576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742072657175657374206e6f6e2d7a65726f20616d6f756e74206f662081526020017f746f6b656e732e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b612849826110ff565b90508034101515156128e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f446964206e6f742073656e6420656e6f75676820657468657220746f2062757981526020017f210000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6128fe8160d0546125dc90919063ffffffff16565b60d08190555061290e3383612661565b80341115612970573373ffffffffffffffffffffffffffffffffffffffff166108fc612943833461239d90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561296e573d6000803e3d6000fd5b505b427fef06a9ba77137aabff72e359d8cc6f2af40b4135811720e6efe22ae19692b5978383604051808381526020018281526020019250505060405180910390a2919050565b60008273ffffffffffffffffffffffffffffffffffffffff16141515156129db57600080fd5b606660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515612a2957600080fd5b612a3e8160685461239d90919063ffffffff16565b606881905550612a9681606660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239d90919063ffffffff16565b606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612b7f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600083111515612c5157600080fd5b8284811515612c5c57fe5b0490508091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612caa57805160ff1916838001178555612cd8565b82800160010185558215612cd8579182015b82811115612cd7578251825591602001919060010190612cbc565b5b509050612ce59190612ce9565b5090565b612d0b91905b80821115612d07576000816000905550600101612cef565b5090565b905600a165627a7a723058201b1389fba8aa51230250958752fd77c28ea73812e1ecfcbe6837e2d18f7100b40029", + "sourceMap": "87:1229:2:-;;;229:355;8:9:-1;5:2;;;30:1;27;20:12;5:2;229:355:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;364:154;400:5;419:7;440:2;456:1;471;486:4;504;364:22;;;;;:154;;;:::i;:::-;528:25;546:6;528:17;;;:25;;;:::i;:::-;571:6;563:5;:14;;;;;;;229:355;;;;87:1229;;449:529:5;1121:20:11;1016:12;;;;;;;;;;;:31;;;;1032:15;:13;;;:15;;;:::i;:::-;1016:31;:47;;;;1052:11;;;;;;;;;;;1051:12;1016:47;1008:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1144:12;;;;;;;;;;;1121:35;;1177:4;1162:12;;:19;;;;;;;;;;;;;;;;;;1201:4;1187:11;;:18;;;;;;;;;;;;;;;;;;716:30:5;735:10;716:18;;;;;:30;;;:::i;:::-;756:51;784:4;790:6;798:8;756:27;;;;;:51;;;:::i;:::-;831:12;817:11;:26;;;;868:13;853:12;:28;;;;909:16;891:15;:34;;;;954:17;935:16;:36;;;;1235:15:11;1220:12;;:30;;;;;;;;;;;;;;;;;;449:529:5;;;;;;;;:::o;1649:101:7:-;926:9;:7;;;:9;;;:::i;:::-;918:18;;;;;;;;1717:28;1736:8;1717:18;;;:28;;;:::i;:::-;1649:101;:::o;1341:467:11:-;1388:4;1729:10;1774:7;1762:20;1756:26;;1802:1;1796:2;:7;1789:14;;1341:467;;:::o;605:81:7:-;1121:20:11;1016:12;;;;;;;;;;;:31;;;;1032:15;:13;;;:15;;;:::i;:::-;1016:31;:47;;;;1052:11;;;;;;;;;;;1051:12;1016:47;1008:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1144:12;;;;;;;;;;;1121:35;;1177:4;1162:12;;:19;;;;;;;;;;;;;;;;;;1201:4;1187:11;;:18;;;;;;;;;;;;;;;;;;675:6:7;666;;:15;;;;;;;;;;;;;;;;;;1235::11;1220:12;;:30;;;;;;;;;;;;;;;;;;605:81:7;;:::o;538:168:4:-;1121:20:11;1016:12;;;;;;;;;;;:31;;;;1032:15;:13;;;:15;;;:::i;:::-;1016:31;:47;;;;1052:11;;;;;;;;;;;1051:12;1016:47;1008:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1144:12;;;;;;;;;;;1121:35;;1177:4;1162:12;;:19;;;;;;;;;;;;;;;;;;1201:4;1187:11;;:18;;;;;;;;;;;;;;;;;;651:48:4;676:4;682:6;690:8;651:24;;;;;:48;;;:::i;:::-;1235:15:11;1220:12;;:30;;;;;;;;;;;;;;;;;;538:168:4;;;;:::o;1028:83:7:-;1067:4;1100:6;;;;;;;;;;;1086:20;;:10;:20;;;1079:27;;1028:83;:::o;1884:169::-;1973:1;1953:22;;:8;:22;;;;1945:31;;;;;;;;2016:8;1987:38;;2008:6;;;;;;;;;;;1987:38;;;;;;;;;;;;2040:8;2031:6;;:17;;;;;;;;;;;;;;;;;;1884:169;:::o;460:154:9:-;1121:20:11;1016:12;;;;;;;;;;;:31;;;;1032:15;:13;;;:15;;;:::i;:::-;1016:31;:47;;;;1052:11;;;;;;;;;;;1051:12;1016:47;1008:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1144:12;;;;;;;;;;;1121:35;;1177:4;1162:12;;:19;;;;;;;;;;;;;;;;;;1201:4;1187:11;;:18;;;;;;;;;;;;;;;;;;557:4:9;549:5;:12;;;;;;;;;;;;:::i;:::-;;577:6;567:7;:16;;;;;;;;;;;;:::i;:::-;;601:8;589:9;;:20;;;;;;;;;;;;;;;;;;1235:15:11;1220:12;;:30;;;;;;;;;;;;;;;;;;460:154:9;;;;:::o;87:1229:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "87:1229:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;666:67:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;666:67:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;666:67:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2446:220:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2446:220:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;247:26:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;247:26:5;;;;;;;;;;;;;;;;;;;;;;;313:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;313:30:5;;;;;;;;;;;;;;;;;;;;;;;538:168:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;538:168:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;702:83:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;702:83:8;;;;;;;;;;;;;;;;;;;;;;;2938:288;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2938:288:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1525:221:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1525:221:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;924:74:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;924:74:9;;;;;;;;;;;;;;;;;;;;;;;;;;;3677:330:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3677:330:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;449:529:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;449:529:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;590:389:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1242:277:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1242:277:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;986:98:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;986:98:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1375:113:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1375:113:7;;;;;;741:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;741:70:7;;;;;;;;;;;;;;;;;;;;;;;;;;;1028:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1028:83:7;;;;;;;;;;;;;;;;;;;;;;;;;;;787:71:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;787:71:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;787:71:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4463:340:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4463:340:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;349:31:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;349:31:5;;;;;;;;;;;;;;;;;;;;;;;1703:127:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1703:127:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;985:182:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;985:182:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2203:224:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2203:224:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;279:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;279:27:5;;;;;;;;;;;;;;;;;;;;;;;198:20:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;198:20:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;605:81:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;605:81:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;359:22:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;359:22:4;;;;;;;;;;;;;;;;;;;;;;;1173:141:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1173:141:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1770:427:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1401:150:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1401:150:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:496:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1511:496:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1649:101:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1649:101:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;666:67:9;702:6;723:5;716:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;666:67;:::o;2446:220:8:-;2511:4;2550:1;2531:21;;:7;:21;;;;2523:30;;;;;;;;2592:5;2560:8;:20;2569:10;2560:20;;;;;;;;;;;;;;;:29;2581:7;2560:29;;;;;;;;;;;;;;;:37;;;;2629:7;2608:36;;2617:10;2608:36;;;2638:5;2608:36;;;;;;;;;;;;;;;;;;2657:4;2650:11;;2446:220;;;;:::o;247:26:5:-;;;;:::o;313:30::-;;;;:::o;538:168:4:-;1121:20:11;1016:12;;;;;;;;;;;:31;;;;1032:15;:13;:15::i;:::-;1016:31;:47;;;;1052:11;;;;;;;;;;;1051:12;1016:47;1008:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1144:12;;;;;;;;;;;1121:35;;1177:4;1162:12;;:19;;;;;;;;;;;;;;;;;;1201:4;1187:11;;:18;;;;;;;;;;;;;;;;;;651:48:4;676:4;682:6;690:8;651:24;:48::i;:::-;1235:15:11;1220:12;;:30;;;;;;;;;;;;;;;;;;538:168:4;;;;:::o;702:83:8:-;746:7;768:12;;761:19;;702:83;:::o;2938:288::-;3041:4;3072:8;:14;3081:4;3072:14;;;;;;;;;;;;;;;:26;3087:10;3072:26;;;;;;;;;;;;;;;;3063:5;:35;;3055:44;;;;;;;;3135:37;3166:5;3135:8;:14;3144:4;3135:14;;;;;;;;;;;;;;;:26;3150:10;3135:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;3106:8;:14;3115:4;3106:14;;;;;;;;;;;;;;;:26;3121:10;3106:26;;;;;;;;;;;;;;;:66;;;;3178:26;3188:4;3194:2;3198:5;3178:9;:26::i;:::-;3217:4;3210:11;;2938:288;;;;;:::o;1525:221:5:-;1585:7;1615:124;1731:7;;1615:111;1637:25;1655:6;1637:13;:11;:13::i;:::-;:17;;:25;;;;:::i;:::-;1676:11;;1701:15;;1615:8;:111::i;:::-;:115;;:124;;;;:::i;:::-;1608:131;;1525:221;;;:::o;924:74:9:-;964:5;984:9;;;;;;;;;;;977:16;;924:74;:::o;3677:330:8:-;3777:4;3818:1;3799:21;;:7;:21;;;;3791:30;;;;;;;;3868:45;3902:10;3868:8;:20;3877:10;3868:20;;;;;;;;;;;;;;;:29;3889:7;3868:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;3828:8;:20;3837:10;3828:20;;;;;;;;;;;;;;;:29;3849:7;3828:29;;;;;;;;;;;;;;;:86;;;;3946:7;3925:60;;3934:10;3925:60;;;3955:8;:20;3964:10;3955:20;;;;;;;;;;;;;;;:29;3976:7;3955:29;;;;;;;;;;;;;;;;3925:60;;;;;;;;;;;;;;;;;;3998:4;3991:11;;3677:330;;;;:::o;449:529:5:-;1121:20:11;1016:12;;;;;;;;;;;:31;;;;1032:15;:13;:15::i;:::-;1016:31;:47;;;;1052:11;;;;;;;;;;;1051:12;1016:47;1008:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1144:12;;;;;;;;;;;1121:35;;1177:4;1162:12;;:19;;;;;;;;;;;;;;;;;;1201:4;1187:11;;:18;;;;;;;;;;;;;;;;;;716:30:5;735:10;716:18;:30::i;:::-;756:51;784:4;790:6;798:8;756:27;:51::i;:::-;831:12;817:11;:26;;;;868:13;853:12;:28;;;;909:16;891:15;:34;;;;954:17;935:16;:36;;;;1235:15:11;1220:12;;:30;;;;;;;;;;;;;;;;;;449:529:5;;;;;;;;:::o;590:389:2:-;713:12;728:19;734:12;728:5;:19::i;:::-;713:34;;778:4;765:9;:17;;757:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;837:31;843:10;855:12;837:5;:31::i;:::-;878:44;888:10;900:7;:5;:7::i;:::-;909:12;878:9;:44::i;:::-;937:35;947:7;956:3;961:10;937:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;937:35:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;590:389;;;:::o;1242:277:5:-;1300:7;1323:19;1398:20;1345:43;1354:3;1359:11;;1372:15;;1345:8;:43::i;:::-;1323:65;;1421:45;1430:3;1435:12;;1449:16;;1421:8;:45::i;:::-;1398:68;;1483:29;1499:12;1483:11;:15;;:29;;;;:::i;:::-;1476:36;;1242:277;;;;;:::o;986:98:8:-;1041:7;1063:9;:16;1073:5;1063:16;;;;;;;;;;;;;;;;1056:23;;986:98;;;:::o;1375:113:7:-;926:9;:7;:9::i;:::-;918:18;;;;;;;;1451:6;;;;;;;;;;;1432:26;;;;;;;;;;;;1481:1;1464:6;;:19;;;;;;;;;;;;;;;;;;1375:113::o;741:70::-;778:7;800:6;;;;;;;;;;;793:13;;741:70;:::o;1028:83::-;1067:4;1100:6;;;;;;;;;;;1086:20;;:10;:20;;;1079:27;;1028:83;:::o;787:71:9:-;825:6;846:7;839:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;787:71;:::o;4463:340:8:-;4568:4;4609:1;4590:21;;:7;:21;;;;4582:30;;;;;;;;4659:50;4693:15;4659:8;:20;4668:10;4659:20;;;;;;;;;;;;;;;:29;4680:7;4659:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;4619:8;:20;4628:10;4619:20;;;;;;;;;;;;;;;:29;4640:7;4619:29;;;;;;;;;;;;;;;:91;;;;4742:7;4721:60;;4730:10;4721:60;;;4751:8;:20;4760:10;4751:20;;;;;;;;;;;;;;;:29;4772:7;4751:29;;;;;;;;;;;;;;;;4721:60;;;;;;;;;;;;;;;;;;4794:4;4787:11;;4463:340;;;;:::o;349:31:5:-;;;;:::o;1703:127:8:-;1764:4;1776:32;1786:10;1798:2;1802:5;1776:9;:32::i;:::-;1821:4;1814:11;;1703:127;;;;:::o;985:182:2:-;1066:44;1076:10;1088:7;:5;:7::i;:::-;1097:12;1066:9;:44::i;:::-;1125:35;1135:7;1144:3;1149:10;1125:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1125:35:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;985:182;;:::o;2203:224:5:-;2264:7;2294:126;2306:113;2328:25;2346:6;2328:13;:11;:13::i;:::-;:17;;:25;;;;:::i;:::-;2367:12;;2393:16;;2306:8;:113::i;:::-;2294:7;;:11;;:126;;;;:::i;:::-;2287:133;;2203:224;;;:::o;279:27::-;;;;:::o;198:20:2:-;;;;:::o;605:81:7:-;1121:20:11;1016:12;;;;;;;;;;;:31;;;;1032:15;:13;:15::i;:::-;1016:31;:47;;;;1052:11;;;;;;;;;;;1051:12;1016:47;1008:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1144:12;;;;;;;;;;;1121:35;;1177:4;1162:12;;:19;;;;;;;;;;;;;;;;;;1201:4;1187:11;;:18;;;;;;;;;;;;;;;;;;675:6:7;666;;:15;;;;;;;;;;;;;;;;;;1235::11;1220:12;;:30;;;;;;;;;;;;;;;;;;605:81:7;;:::o;359:22:4:-;;;;:::o;1173:141:2:-;1233:4;1275:7;:5;:7::i;:::-;1261:21;;:10;:21;;;1253:30;;;;;;;;1301:6;1293:5;:14;;;;;;;1173:141;;;:::o;1770:427:5:-;1831:12;1859:20;1947:19;2001:20;1882:21;1889:13;:11;:13::i;:::-;1882:6;:21::i;:::-;1859:44;;1920:17;1930:6;1920:9;:17::i;:::-;1913:24;;1969:21;1976:13;:11;:13::i;:::-;1969:6;:21::i;:::-;1947:43;;2024:29;2040:12;2024:11;:15;;:29;;;;:::i;:::-;2001:52;;2073:25;2085:12;2073:7;;:11;;:25;;;;:::i;:::-;2063:7;:35;;;;2108:7;:5;:7::i;:::-;:16;;:30;2125:12;2108:30;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2108:30:5;2174:15;2153:37;2160:12;2153:37;;;;;;;;;;;;;;;;;;1770:427;;;;;;:::o;1401:150:8:-;1498:7;1522:8;:15;1531:5;1522:15;;;;;;;;;;;;;;;:24;1538:7;1522:24;;;;;;;;;;;;;;;;1515:31;;1401:150;;;;:::o;1511:496:4:-;1565:16;1614:1;1605:6;:10;1597:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1713:6;1688:21;1698:10;1688:9;:21::i;:::-;:31;;1667:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1811:14;1818:6;1811;:14::i;:::-;1800:25;;1845:21;1857:8;1845:7;;:11;;:21;;;;:::i;:::-;1835:7;:31;;;;1876:25;1882:10;1894:6;1876:5;:25::i;:::-;1911:10;:19;;:29;1931:8;1911:29;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1911:29:4;1984:15;1956:44;1966:6;1974:8;1956:44;;;;;;;;;;;;;;;;;;;;;;;;1511:496;;;:::o;1649:101:7:-;926:9;:7;:9::i;:::-;918:18;;;;;;;;1717:28;1736:8;1717:18;:28::i;:::-;1649:101;:::o;1341:467:11:-;1388:4;1729:10;1774:7;1762:20;1756:26;;1802:1;1796:2;:7;1789:14;;1341:467;;:::o;460:154:9:-;1121:20:11;1016:12;;;;;;;;;;;:31;;;;1032:15;:13;:15::i;:::-;1016:31;:47;;;;1052:11;;;;;;;;;;;1051:12;1016:47;1008:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1144:12;;;;;;;;;;;1121:35;;1177:4;1162:12;;:19;;;;;;;;;;;;;;;;;;1201:4;1187:11;;:18;;;;;;;;;;;;;;;;;;557:4:9;549:5;:12;;;;;;;;;;;;:::i;:::-;;577:6;567:7;:16;;;;;;;;;;;;:::i;:::-;;601:8;589:9;;:20;;;;;;;;;;;;;;;;;;1235:15:11;1220:12;;:30;;;;;;;;;;;;;;;;;;460:154:9;;;;:::o;1079:131:6:-;1137:7;1173:9;1165:1;1160;:6;;1152:15;;;;;;;;1189:1;1185;:5;1173:17;;1204:1;1197:8;;1079:131;;;;;:::o;5003:277:8:-;5095:9;:15;5105:4;5095:15;;;;;;;;;;;;;;;;5086:5;:24;;5078:33;;;;;;;;5139:1;5125:16;;:2;:16;;;;5117:25;;;;;;;;5167:26;5187:5;5167:9;:15;5177:4;5167:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;5149:9;:15;5159:4;5149:15;;;;;;;;;;;;;;;:44;;;;5215:24;5233:5;5215:9;:13;5225:2;5215:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;5199:9;:13;5209:2;5199:13;;;;;;;;;;;;;;;:40;;;;5265:2;5250:25;;5259:4;5250:25;;;5269:5;5250:25;;;;;;;;;;;;;;;;;;5003:277;;;:::o;1273:131:6:-;1331:7;1346:9;1362:1;1358;:5;1346:17;;1382:1;1377;:6;;1369:15;;;;;;;;1398:1;1391:8;;1273:131;;;;;:::o;984:252:5:-;1110:7;1129:12;1144:15;1157:1;1144:8;:12;;:15;;;;:::i;:::-;1129:30;;1176:53;1222:6;1176:41;1204:12;1176:23;1194:4;1184;1177:3;:11;1176:17;;:23;;;;:::i;:::-;:27;;:41;;;;:::i;:::-;:45;;:53;;;;:::i;:::-;1169:60;;984:252;;;;;;:::o;5608:239:8:-;5690:1;5679:7;:12;;;;5671:21;;;;;;;;5713:24;5730:6;5713:12;;:16;;:24;;;;:::i;:::-;5698:12;:39;;;;5764:30;5787:6;5764:9;:18;5774:7;5764:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;5743:9;:18;5753:7;5743:18;;;;;;;;;;;;;;;:51;;;;5826:7;5805:37;;5822:1;5805:37;;;5835:6;5805:37;;;;;;;;;;;;;;;;;;5608:239;;:::o;948:552:4:-;1009:12;1054:1;1045:6;:10;1037:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1117:13;1123:6;1117:5;:13::i;:::-;1110:20;;1174:4;1161:9;:17;;1140:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1258:17;1270:4;1258:7;;:11;;:17;;;;:::i;:::-;1248:7;:27;;;;1285:25;1291:10;1303:6;1285:5;:25::i;:::-;1368:4;1356:9;:16;1352:87;;;1388:10;:19;;:40;1408:19;1422:4;1408:9;:13;;:19;;;;:::i;:::-;1388:40;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1388:40:4;1352:87;1477:15;1454:39;1463:6;1471:4;1454:39;;;;;;;;;;;;;;;;;;;;;;;;948:552;;;:::o;6060:283:8:-;6142:1;6131:7;:12;;;;6123:21;;;;;;;;6168:9;:18;6178:7;6168:18;;;;;;;;;;;;;;;;6158:6;:28;;6150:37;;;;;;;;6209:24;6226:6;6209:12;;:16;;:24;;;;:::i;:::-;6194:12;:39;;;;6260:30;6283:6;6260:9;:18;6270:7;6260:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;6239:9;:18;6249:7;6239:18;;;;;;;;;;;;;;;:51;;;;6327:1;6301:37;;6310:7;6301:37;;;6331:6;6301:37;;;;;;;;;;;;;;;;;;6060:283;;:::o;1884:169:7:-;1973:1;1953:22;;:8;:22;;;;1945:31;;;;;;;;2016:8;1987:38;;2008:6;;;;;;;;;;;1987:38;;;;;;;;;;;;2040:8;2031:6;;:17;;;;;;;;;;;;;;;;;;1884:169;:::o;696:270:6:-;754:7;847:9;781:1;777;:5;769:14;;;;;;;;863:1;859;:5;;;;;;;;847:17;;960:1;953:8;;696:270;;;;;:::o;87:1229:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "pragma solidity ^0.4.24;\n\nimport \"@convergent/arc/contracts/Spreads/SpreadEther.sol\";\n\ncontract PersonalEconomy is SpreadEther {\n event Requested(string message, uint256 time, address who);\n\n bytes32 public mhash;\n \n constructor(\n bytes32 _mhash,\n string _name,\n string _symbol,\n address _owner\n ) public\n {\n SpreadEther.initialize(\n _name,\n _symbol,\n 18,\n 1,\n 1,\n 3000,\n 4000\n );\n transferOwnership(_owner);\n mhash = _mhash;\n }\n\n function requestWithEth(\n string message,\n uint256 reqNumTokens\n ) public\n payable\n {\n uint256 cost = price(reqNumTokens);\n require(msg.value >= cost, \"Must send requisite amount to purchase.\");\n\n _mint(msg.sender, reqNumTokens);\n _transfer(msg.sender, owner(), reqNumTokens);\n emit Requested(message, now, msg.sender);\n }\n\n function requestWithToken(string message, uint256 reqNumTokens) public {\n _transfer(msg.sender, owner(), reqNumTokens);\n emit Requested(message, now, msg.sender);\n }\n\n function updateData(bytes32 _mhash)\n public returns (bool)\n {\n require(msg.sender == owner());\n mhash = _mhash;\n }\n}\n", + "sourcePath": "/home/volt/workspaces/convergentcx/Arena/contracts/PersonalEconomy.sol", "ast": { - "absolutePath": "/home/achill/Arena_Master/Arena/contracts/PersonalEconomy.sol", + "absolutePath": "/home/volt/workspaces/convergentcx/Arena/contracts/PersonalEconomy.sol", "exportedSymbols": { "PersonalEconomy": [ - 233 + 239 ] }, - "id": 234, + "id": 240, "nodeType": "SourceUnit", "nodes": [ { @@ -561,13 +785,13 @@ "src": "0:24:2" }, { - "absolutePath": "@convergent/arc/contracts/EthPolynomialCurvedToken.sol", - "file": "@convergent/arc/contracts/EthPolynomialCurvedToken.sol", + "absolutePath": "@convergent/arc/contracts/Spreads/SpreadEther.sol", + "file": "@convergent/arc/contracts/Spreads/SpreadEther.sol", "id": 108, "nodeType": "ImportDirective", - "scope": 234, - "sourceUnit": 582, - "src": "26:64:2", + "scope": 240, + "sourceUnit": 724, + "src": "26:59:2", "symbolAliases": [], "unitAlias": "" }, @@ -578,38 +802,42 @@ "baseName": { "contractScope": null, "id": 109, - "name": "EthPolynomialCurvedToken", + "name": "SpreadEther", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 581, - "src": "120:24:2", + "referencedDeclaration": 723, + "src": "115:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_EthPolynomialCurvedToken_$581", - "typeString": "contract EthPolynomialCurvedToken" + "typeIdentifier": "t_contract$_SpreadEther_$723", + "typeString": "contract SpreadEther" } }, "id": 110, "nodeType": "InheritanceSpecifier", - "src": "120:24:2" + "src": "115:11:2" } ], "contractDependencies": [ - 459, - 581, - 1153, - 1211, - 1280 + 485, + 723, + 964, + 1415, + 1482, + 1551, + 1607 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 233, + "id": 239, "linearizedBaseContracts": [ - 233, - 581, - 459, - 1153, - 1211, - 1280 + 239, + 723, + 485, + 1482, + 1415, + 1551, + 964, + 1607 ], "name": "PersonalEconomy", "nodeType": "ContractDefinition", @@ -631,7 +859,7 @@ "name": "message", "nodeType": "VariableDeclaration", "scope": 118, - "src": "167:14:2", + "src": "149:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -642,7 +870,7 @@ "id": 111, "name": "string", "nodeType": "ElementaryTypeName", - "src": "167:6:2", + "src": "149:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -658,7 +886,7 @@ "name": "time", "nodeType": "VariableDeclaration", "scope": 118, - "src": "183:12:2", + "src": "165:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -669,7 +897,7 @@ "id": 113, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "183:7:2", + "src": "165:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -685,7 +913,7 @@ "name": "who", "nodeType": "VariableDeclaration", "scope": 118, - "src": "197:11:2", + "src": "179:11:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -696,7 +924,7 @@ "id": 115, "name": "address", "nodeType": "ElementaryTypeName", - "src": "197:7:2", + "src": "179:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -706,17 +934,17 @@ "visibility": "internal" } ], - "src": "166:43:2" + "src": "148:43:2" }, - "src": "151:59:2" + "src": "133:59:2" }, { "constant": false, "id": 120, "name": "mhash", "nodeType": "VariableDeclaration", - "scope": 233, - "src": "216:20:2", + "scope": 239, + "src": "198:20:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -727,7 +955,7 @@ "id": 119, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "216:7:2", + "src": "198:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -736,252 +964,330 @@ "value": null, "visibility": "public" }, - { - "constant": false, - "id": 122, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 233, - "src": "242:20:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 121, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "242:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, { "body": { - "id": 148, + "id": 151, "nodeType": "Block", - "src": "506:55:2", + "src": "354:230:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 142, + "arguments": [ + { + "argumentTypes": null, + "id": 134, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 124, + "src": "400:5:2", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 135, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 126, + "src": "419:7:2", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "hexValue": "3138", + "id": 136, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "440:2:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + { + "argumentTypes": null, + "hexValue": "31", + "id": 137, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "456:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + { + "argumentTypes": null, + "hexValue": "31", + "id": 138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "471:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + { + "argumentTypes": null, + "hexValue": "33303030", + "id": 139, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "486:4:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3000_by_1", + "typeString": "int_const 3000" + }, + "value": "3000" + }, + { + "argumentTypes": null, + "hexValue": "34303030", + "id": 140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "504:4:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4000_by_1", + "typeString": "int_const 4000" + }, + "value": "4000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + { + "typeIdentifier": "t_rational_3000_by_1", + "typeString": "int_const 3000" + }, + { + "typeIdentifier": "t_rational_4000_by_1", + "typeString": "int_const 4000" + } + ], + "expression": { + "argumentTypes": null, + "id": 131, + "name": "SpreadEther", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 723, + "src": "364:11:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SpreadEther_$723_$", + "typeString": "type(contract SpreadEther)" + } + }, + "id": 133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "initialize", + "nodeType": "MemberAccess", + "referencedDeclaration": 561, + "src": "364:22:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (string memory,string memory,uint8,uint256,uint256,uint256,uint256)" + } + }, + "id": 141, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 140, - "name": "mhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 120, - "src": "516:5:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "names": [], + "nodeType": "FunctionCall", + "src": "364:154:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 142, + "nodeType": "ExpressionStatement", + "src": "364:154:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 144, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "546:6:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 141, - "name": "_mhash", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 143, + "name": "transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "524:6:2", + "referencedDeclaration": 936, + "src": "528:17:2", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "src": "516:14:2", + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "528:25:2", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 143, + "id": 146, "nodeType": "ExpressionStatement", - "src": "516:14:2" + "src": "528:25:2" }, { "expression": { "argumentTypes": null, - "id": 146, + "id": 149, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 144, - "name": "owner", + "id": 147, + "name": "mhash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 122, - "src": "540:5:2", + "referencedDeclaration": 120, + "src": "563:5:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 145, - "name": "_owner", + "id": 148, + "name": "_mhash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "548:6:2", + "referencedDeclaration": 122, + "src": "571:6:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "540:14:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 147, - "nodeType": "ExpressionStatement", - "src": "540:14:2" - } - ] - }, - "documentation": null, - "id": 149, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 133, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 126, - "src": "421:5:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 134, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 128, - "src": "436:7:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "hexValue": "3138", - "id": 135, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "453:2:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - { - "argumentTypes": null, - "hexValue": "31", - "id": 136, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "465:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - { - "argumentTypes": null, - "hexValue": "31303030", - "id": 137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "476:4:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000_by_1", - "typeString": "int_const 1000" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } }, - "value": "1000" - } - ], - "id": 138, - "modifierName": { - "argumentTypes": null, - "id": 132, - "name": "EthPolynomialCurvedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 581, - "src": "387:24:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_EthPolynomialCurvedToken_$581_$", - "typeString": "type(contract EthPolynomialCurvedToken)" - } - }, - "nodeType": "ModifierInvocation", - "src": "387:99:2" - } - ], + "src": "563:14:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 150, + "nodeType": "ExpressionStatement", + "src": "563:14:2" + } + ] + }, + "documentation": null, + "id": 152, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 131, + "id": 129, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 124, + "id": 122, "name": "_mhash", "nodeType": "VariableDeclaration", - "scope": 149, - "src": "294:14:2", + "scope": 152, + "src": "250:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -989,10 +1295,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 123, + "id": 121, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "294:7:2", + "src": "250:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1003,11 +1309,11 @@ }, { "constant": false, - "id": 126, + "id": 124, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 149, - "src": "318:12:2", + "scope": 152, + "src": "274:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1015,10 +1321,10 @@ "typeString": "string" }, "typeName": { - "id": 125, + "id": 123, "name": "string", "nodeType": "ElementaryTypeName", - "src": "318:6:2", + "src": "274:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1029,11 +1335,11 @@ }, { "constant": false, - "id": 128, + "id": 126, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 149, - "src": "340:14:2", + "scope": 152, + "src": "296:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1041,10 +1347,10 @@ "typeString": "string" }, "typeName": { - "id": 127, + "id": 125, "name": "string", "nodeType": "ElementaryTypeName", - "src": "340:6:2", + "src": "296:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1055,11 +1361,11 @@ }, { "constant": false, - "id": 130, + "id": 128, "name": "_owner", "nodeType": "VariableDeclaration", - "scope": 149, - "src": "364:14:2", + "scope": 152, + "src": "320:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1067,10 +1373,10 @@ "typeString": "address" }, "typeName": { - "id": 129, + "id": 127, "name": "address", "nodeType": "ElementaryTypeName", - "src": "364:7:2", + "src": "320:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1080,39 +1386,39 @@ "visibility": "internal" } ], - "src": "284:100:2" + "src": "240:100:2" }, "payable": false, "returnParameters": { - "id": 139, + "id": 130, "nodeType": "ParameterList", "parameters": [], - "src": "506:0:2" + "src": "354:0:2" }, - "scope": 233, - "src": "273:288:2", + "scope": 239, + "src": "229:355:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 190, + "id": 194, "nodeType": "Block", - "src": "671:259:2", + "src": "703:276:2", "statements": [ { "assignments": [ - 157 + 160 ], "declarations": [ { "constant": false, - "id": 157, + "id": 160, "name": "cost", "nodeType": "VariableDeclaration", - "scope": 191, - "src": "681:12:2", + "scope": 195, + "src": "713:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1120,10 +1426,10 @@ "typeString": "uint256" }, "typeName": { - "id": 156, + "id": 159, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "681:7:2", + "src": "713:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1133,18 +1439,18 @@ "visibility": "internal" } ], - "id": 161, + "id": 164, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 159, - "name": "_price", + "id": 162, + "name": "reqNumTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "708:6:2", + "referencedDeclaration": 156, + "src": "734:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1158,20 +1464,20 @@ "typeString": "uint256" } ], - "id": 158, - "name": "priceToMint", + "id": 161, + "name": "price", "nodeType": "Identifier", "overloadedDeclarations": [ - 561 + 646 ], - "referencedDeclaration": 561, - "src": "696:11:2", + "referencedDeclaration": 646, + "src": "728:5:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) view returns (uint256)" } }, - "id": 160, + "id": 163, "isConstant": false, "isLValue": false, "isPure": false, @@ -1179,14 +1485,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "696:19:2", + "src": "728:19:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "681:34:2" + "src": "713:34:2" }, { "expression": { @@ -1198,7 +1504,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 166, + "id": 169, "isConstant": false, "isLValue": false, "isPure": false, @@ -1207,18 +1513,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 163, + "id": 166, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "733:3:2", + "referencedDeclaration": 1622, + "src": "765:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 164, + "id": 167, "isConstant": false, "isLValue": false, "isPure": false, @@ -1226,7 +1532,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "733:9:2", + "src": "765:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1236,18 +1542,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 165, + "id": 168, "name": "cost", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 157, - "src": "746:4:2", + "referencedDeclaration": 160, + "src": "778:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "733:17:2", + "src": "765:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1256,14 +1562,14 @@ { "argumentTypes": null, "hexValue": "4d7573742073656e642072657175697369746520616d6f756e7420746f2070757263686173652e", - "id": 167, + "id": 170, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "752:41:2", + "src": "784:41:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a6075f24df952e00c8462322e48fffe2cc5f8796b81dd2f6ea07ad610a2781ce", @@ -1283,21 +1589,21 @@ "typeString": "literal_string \"Must send requisite amount to purchase.\"" } ], - "id": 162, + "id": 165, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1299, - "src": "725:7:2", + "referencedDeclaration": 1626, + "src": "757:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 168, + "id": 171, "isConstant": false, "isLValue": false, "isPure": false, @@ -1305,15 +1611,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "725:69:2", + "src": "757:69:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 169, + "id": 172, "nodeType": "ExpressionStatement", - "src": "725:69:2" + "src": "757:69:2" }, { "expression": { @@ -1323,18 +1629,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 171, + "id": 174, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "811:3:2", + "referencedDeclaration": 1622, + "src": "843:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 172, + "id": 175, "isConstant": false, "isLValue": false, "isPure": false, @@ -1342,7 +1648,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "811:10:2", + "src": "843:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1350,12 +1656,12 @@ }, { "argumentTypes": null, - "id": 173, - "name": "_price", + "id": 176, + "name": "reqNumTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "823:6:2", + "referencedDeclaration": 156, + "src": "855:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1373,18 +1679,18 @@ "typeString": "uint256" } ], - "id": 170, + "id": 173, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "805:5:2", + "referencedDeclaration": 1321, + "src": "837:5:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 174, + "id": 177, "isConstant": false, "isLValue": false, "isPure": false, @@ -1392,15 +1698,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "805:25:2", + "src": "837:31:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 175, + "id": 178, "nodeType": "ExpressionStatement", - "src": "805:25:2" + "src": "837:31:2" }, { "expression": { @@ -1410,18 +1716,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 177, + "id": 180, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "850:3:2", + "referencedDeclaration": 1622, + "src": "888:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 178, + "id": 181, "isConstant": false, "isLValue": false, "isPure": false, @@ -1429,7 +1735,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "850:10:2", + "src": "888:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1437,12 +1743,29 @@ }, { "argumentTypes": null, - "id": 179, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 122, - "src": "862:5:2", + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 182, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "900:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "900:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1450,12 +1773,12 @@ }, { "argumentTypes": null, - "id": 180, - "name": "_price", + "id": 184, + "name": "reqNumTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "869:6:2", + "referencedDeclaration": 156, + "src": "909:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1477,18 +1800,18 @@ "typeString": "uint256" } ], - "id": 176, + "id": 179, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "840:9:2", + "referencedDeclaration": 1281, + "src": "878:9:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 181, + "id": 185, "isConstant": false, "isLValue": false, "isPure": false, @@ -1496,15 +1819,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "840:36:2", + "src": "878:44:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 182, + "id": 186, "nodeType": "ExpressionStatement", - "src": "840:36:2" + "src": "878:44:2" }, { "eventCall": { @@ -1512,12 +1835,12 @@ "arguments": [ { "argumentTypes": null, - "id": 184, - "name": "_msg", + "id": 188, + "name": "message", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "901:4:2", + "referencedDeclaration": 154, + "src": "947:7:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -1525,12 +1848,12 @@ }, { "argumentTypes": null, - "id": 185, + "id": 189, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1297, - "src": "907:3:2", + "referencedDeclaration": 1624, + "src": "956:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1540,18 +1863,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 186, + "id": 190, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "912:3:2", + "referencedDeclaration": 1622, + "src": "961:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 187, + "id": 191, "isConstant": false, "isLValue": false, "isPure": false, @@ -1559,7 +1882,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "912:10:2", + "src": "961:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1581,18 +1904,18 @@ "typeString": "address" } ], - "id": 183, + "id": 187, "name": "Requested", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 118, - "src": "891:9:2", + "src": "937:9:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_address_$returns$__$", "typeString": "function (string memory,uint256,address)" } }, - "id": 188, + "id": 192, "isConstant": false, "isLValue": false, "isPure": false, @@ -1600,20 +1923,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "891:32:2", + "src": "937:35:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 189, + "id": 193, "nodeType": "EmitStatement", - "src": "886:37:2" + "src": "932:40:2" } ] }, "documentation": null, - "id": 191, + "id": 195, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1621,16 +1944,16 @@ "name": "requestWithEth", "nodeType": "FunctionDefinition", "parameters": { - "id": 154, + "id": 157, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 151, - "name": "_msg", + "id": 154, + "name": "message", "nodeType": "VariableDeclaration", - "scope": 191, - "src": "600:11:2", + "scope": 195, + "src": "623:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1638,10 +1961,10 @@ "typeString": "string" }, "typeName": { - "id": 150, + "id": 153, "name": "string", "nodeType": "ElementaryTypeName", - "src": "600:6:2", + "src": "623:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1652,11 +1975,11 @@ }, { "constant": false, - "id": 153, - "name": "_price", + "id": 156, + "name": "reqNumTokens", "nodeType": "VariableDeclaration", - "scope": 191, - "src": "621:14:2", + "scope": 195, + "src": "647:20:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1664,10 +1987,10 @@ "typeString": "uint256" }, "typeName": { - "id": 152, + "id": 155, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "621:7:2", + "src": "647:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1677,26 +2000,26 @@ "visibility": "internal" } ], - "src": "590:51:2" + "src": "613:60:2" }, "payable": true, "returnParameters": { - "id": 155, + "id": 158, "nodeType": "ParameterList", "parameters": [], - "src": "671:0:2" + "src": "703:0:2" }, - "scope": 233, - "src": "567:363:2", + "scope": 239, + "src": "590:389:2", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 212, + "id": 217, "nodeType": "Block", - "src": "998:100:2", + "src": "1056:111:2", "statements": [ { "expression": { @@ -1706,18 +2029,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 199, + "id": 203, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "1018:3:2", + "referencedDeclaration": 1622, + "src": "1076:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 200, + "id": 204, "isConstant": false, "isLValue": false, "isPure": false, @@ -1725,7 +2048,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1018:10:2", + "src": "1076:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1733,12 +2056,29 @@ }, { "argumentTypes": null, - "id": 201, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 122, - "src": "1030:5:2", + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 205, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "1088:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1088:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1746,12 +2086,12 @@ }, { "argumentTypes": null, - "id": 202, - "name": "_price", + "id": 207, + "name": "reqNumTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 195, - "src": "1037:6:2", + "referencedDeclaration": 199, + "src": "1097:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1773,18 +2113,18 @@ "typeString": "uint256" } ], - "id": 198, + "id": 202, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "1008:9:2", + "referencedDeclaration": 1281, + "src": "1066:9:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 203, + "id": 208, "isConstant": false, "isLValue": false, "isPure": false, @@ -1792,15 +2132,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1008:36:2", + "src": "1066:44:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 204, + "id": 209, "nodeType": "ExpressionStatement", - "src": "1008:36:2" + "src": "1066:44:2" }, { "eventCall": { @@ -1808,12 +2148,12 @@ "arguments": [ { "argumentTypes": null, - "id": 206, - "name": "_msg", + "id": 211, + "name": "message", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 193, - "src": "1069:4:2", + "referencedDeclaration": 197, + "src": "1135:7:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -1821,12 +2161,12 @@ }, { "argumentTypes": null, - "id": 207, + "id": 212, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1297, - "src": "1075:3:2", + "referencedDeclaration": 1624, + "src": "1144:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1836,18 +2176,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 208, + "id": 213, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "1080:3:2", + "referencedDeclaration": 1622, + "src": "1149:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 209, + "id": 214, "isConstant": false, "isLValue": false, "isPure": false, @@ -1855,7 +2195,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1080:10:2", + "src": "1149:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1877,18 +2217,18 @@ "typeString": "address" } ], - "id": 205, + "id": 210, "name": "Requested", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 118, - "src": "1059:9:2", + "src": "1125:9:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_address_$returns$__$", "typeString": "function (string memory,uint256,address)" } }, - "id": 210, + "id": 215, "isConstant": false, "isLValue": false, "isPure": false, @@ -1896,20 +2236,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1059:32:2", + "src": "1125:35:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 211, + "id": 216, "nodeType": "EmitStatement", - "src": "1054:37:2" + "src": "1120:40:2" } ] }, "documentation": null, - "id": 213, + "id": 218, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1917,16 +2257,16 @@ "name": "requestWithToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 196, + "id": 200, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 193, - "name": "_msg", + "id": 197, + "name": "message", "nodeType": "VariableDeclaration", - "scope": 213, - "src": "962:11:2", + "scope": 218, + "src": "1011:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1934,10 +2274,10 @@ "typeString": "string" }, "typeName": { - "id": 192, + "id": 196, "name": "string", "nodeType": "ElementaryTypeName", - "src": "962:6:2", + "src": "1011:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -1948,11 +2288,11 @@ }, { "constant": false, - "id": 195, - "name": "_price", + "id": 199, + "name": "reqNumTokens", "nodeType": "VariableDeclaration", - "scope": 213, - "src": "975:14:2", + "scope": 218, + "src": "1027:20:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1960,10 +2300,10 @@ "typeString": "uint256" }, "typeName": { - "id": 194, + "id": 198, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "975:7:2", + "src": "1027:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1973,26 +2313,26 @@ "visibility": "internal" } ], - "src": "961:29:2" + "src": "1010:38:2" }, "payable": false, "returnParameters": { - "id": 197, + "id": 201, "nodeType": "ParameterList", "parameters": [], - "src": "998:0:2" + "src": "1056:0:2" }, - "scope": 233, - "src": "936:162:2", + "scope": 239, + "src": "985:182:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 231, + "id": 237, "nodeType": "Block", - "src": "1174:69:2", + "src": "1243:71:2", "statements": [ { "expression": { @@ -2004,7 +2344,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 224, + "id": 230, "isConstant": false, "isLValue": false, "isPure": false, @@ -2013,18 +2353,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 221, + "id": 226, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "1192:3:2", + "referencedDeclaration": 1622, + "src": "1261:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 222, + "id": 227, "isConstant": false, "isLValue": false, "isPure": false, @@ -2032,7 +2372,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1192:10:2", + "src": "1261:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2042,18 +2382,35 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 223, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 122, - "src": "1206:5:2", + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 228, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "1275:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1275:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1192:19:2", + "src": "1261:21:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2067,21 +2424,21 @@ "typeString": "bool" } ], - "id": 220, + "id": 225, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "1184:7:2", + "referencedDeclaration": 1625, + "src": "1253:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 225, + "id": 231, "isConstant": false, "isLValue": false, "isPure": false, @@ -2089,32 +2446,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1184:28:2", + "src": "1253:30:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 226, + "id": 232, "nodeType": "ExpressionStatement", - "src": "1184:28:2" + "src": "1253:30:2" }, { "expression": { "argumentTypes": null, - "id": 229, + "id": 235, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 227, + "id": 233, "name": "mhash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 120, - "src": "1222:5:2", + "src": "1293:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2124,31 +2481,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 228, + "id": 234, "name": "_mhash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "1230:6:2", + "referencedDeclaration": 220, + "src": "1301:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "1222:14:2", + "src": "1293:14:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 230, + "id": 236, "nodeType": "ExpressionStatement", - "src": "1222:14:2" + "src": "1293:14:2" } ] }, "documentation": null, - "id": 232, + "id": 238, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2156,16 +2513,16 @@ "name": "updateData", "nodeType": "FunctionDefinition", "parameters": { - "id": 216, + "id": 221, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 215, + "id": 220, "name": "_mhash", "nodeType": "VariableDeclaration", - "scope": 232, - "src": "1124:14:2", + "scope": 238, + "src": "1193:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2173,10 +2530,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 214, + "id": 219, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1124:7:2", + "src": "1193:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2186,20 +2543,20 @@ "visibility": "internal" } ], - "src": "1123:16:2" + "src": "1192:16:2" }, "payable": false, "returnParameters": { - "id": 219, + "id": 224, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 218, + "id": 223, "name": "", "nodeType": "VariableDeclaration", - "scope": 232, - "src": "1164:4:2", + "scope": 238, + "src": "1233:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2207,10 +2564,10 @@ "typeString": "bool" }, "typeName": { - "id": 217, + "id": 222, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1164:4:2", + "src": "1233:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2220,29 +2577,29 @@ "visibility": "internal" } ], - "src": "1163:6:2" + "src": "1232:6:2" }, - "scope": 233, - "src": "1104:139:2", + "scope": 239, + "src": "1173:141:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 234, - "src": "92:1153:2" + "scope": 240, + "src": "87:1229:2" } ], - "src": "0:1246:2" + "src": "0:1317:2" }, "legacyAST": { - "absolutePath": "/home/achill/Arena_Master/Arena/contracts/PersonalEconomy.sol", + "absolutePath": "/home/volt/workspaces/convergentcx/Arena/contracts/PersonalEconomy.sol", "exportedSymbols": { "PersonalEconomy": [ - 233 + 239 ] }, - "id": 234, + "id": 240, "nodeType": "SourceUnit", "nodes": [ { @@ -2257,13 +2614,13 @@ "src": "0:24:2" }, { - "absolutePath": "@convergent/arc/contracts/EthPolynomialCurvedToken.sol", - "file": "@convergent/arc/contracts/EthPolynomialCurvedToken.sol", + "absolutePath": "@convergent/arc/contracts/Spreads/SpreadEther.sol", + "file": "@convergent/arc/contracts/Spreads/SpreadEther.sol", "id": 108, "nodeType": "ImportDirective", - "scope": 234, - "sourceUnit": 582, - "src": "26:64:2", + "scope": 240, + "sourceUnit": 724, + "src": "26:59:2", "symbolAliases": [], "unitAlias": "" }, @@ -2274,38 +2631,42 @@ "baseName": { "contractScope": null, "id": 109, - "name": "EthPolynomialCurvedToken", + "name": "SpreadEther", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 581, - "src": "120:24:2", + "referencedDeclaration": 723, + "src": "115:11:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_EthPolynomialCurvedToken_$581", - "typeString": "contract EthPolynomialCurvedToken" + "typeIdentifier": "t_contract$_SpreadEther_$723", + "typeString": "contract SpreadEther" } }, "id": 110, "nodeType": "InheritanceSpecifier", - "src": "120:24:2" + "src": "115:11:2" } ], "contractDependencies": [ - 459, - 581, - 1153, - 1211, - 1280 + 485, + 723, + 964, + 1415, + 1482, + 1551, + 1607 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 233, + "id": 239, "linearizedBaseContracts": [ - 233, - 581, - 459, - 1153, - 1211, - 1280 + 239, + 723, + 485, + 1482, + 1415, + 1551, + 964, + 1607 ], "name": "PersonalEconomy", "nodeType": "ContractDefinition", @@ -2327,7 +2688,7 @@ "name": "message", "nodeType": "VariableDeclaration", "scope": 118, - "src": "167:14:2", + "src": "149:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2338,7 +2699,7 @@ "id": 111, "name": "string", "nodeType": "ElementaryTypeName", - "src": "167:6:2", + "src": "149:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2354,7 +2715,7 @@ "name": "time", "nodeType": "VariableDeclaration", "scope": 118, - "src": "183:12:2", + "src": "165:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2365,319 +2726,397 @@ "id": 113, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "183:7:2", + "src": "165:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 116, + "indexed": false, + "name": "who", + "nodeType": "VariableDeclaration", + "scope": 118, + "src": "179:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "179:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "148:43:2" + }, + "src": "133:59:2" + }, + { + "constant": false, + "id": 120, + "name": "mhash", + "nodeType": "VariableDeclaration", + "scope": 239, + "src": "198:20:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 119, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "198:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 151, + "nodeType": "Block", + "src": "354:230:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 134, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 124, + "src": "400:5:2", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 135, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 126, + "src": "419:7:2", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "hexValue": "3138", + "id": 136, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "440:2:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + { + "argumentTypes": null, + "hexValue": "31", + "id": 137, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "456:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + { + "argumentTypes": null, + "hexValue": "31", + "id": 138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "471:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + { + "argumentTypes": null, + "hexValue": "33303030", + "id": 139, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "486:4:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3000_by_1", + "typeString": "int_const 3000" + }, + "value": "3000" + }, + { + "argumentTypes": null, + "hexValue": "34303030", + "id": 140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "504:4:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4000_by_1", + "typeString": "int_const 4000" + }, + "value": "4000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + { + "typeIdentifier": "t_rational_3000_by_1", + "typeString": "int_const 3000" + }, + { + "typeIdentifier": "t_rational_4000_by_1", + "typeString": "int_const 4000" + } + ], + "expression": { + "argumentTypes": null, + "id": 131, + "name": "SpreadEther", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 723, + "src": "364:11:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SpreadEther_$723_$", + "typeString": "type(contract SpreadEther)" + } + }, + "id": 133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "initialize", + "nodeType": "MemberAccess", + "referencedDeclaration": 561, + "src": "364:22:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (string memory,string memory,uint8,uint256,uint256,uint256,uint256)" + } + }, + "id": 141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "364:154:2", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "value": null, - "visibility": "internal" + "id": 142, + "nodeType": "ExpressionStatement", + "src": "364:154:2" }, - { - "constant": false, - "id": 116, - "indexed": false, - "name": "who", - "nodeType": "VariableDeclaration", - "scope": 118, - "src": "197:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "197:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "166:43:2" - }, - "src": "151:59:2" - }, - { - "constant": false, - "id": 120, - "name": "mhash", - "nodeType": "VariableDeclaration", - "scope": 233, - "src": "216:20:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 119, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "216:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 122, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 233, - "src": "242:20:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 121, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "242:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 148, - "nodeType": "Block", - "src": "506:55:2", - "statements": [ { "expression": { "argumentTypes": null, - "id": 142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 140, - "name": "mhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 120, - "src": "516:5:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "arguments": [ + { + "argumentTypes": null, + "id": 144, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "546:6:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 141, - "name": "_mhash", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 143, + "name": "transferOwnership", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "524:6:2", + "referencedDeclaration": 936, + "src": "528:17:2", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" } }, - "src": "516:14:2", + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "528:25:2", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 143, + "id": 146, "nodeType": "ExpressionStatement", - "src": "516:14:2" + "src": "528:25:2" }, { "expression": { "argumentTypes": null, - "id": 146, + "id": 149, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 144, - "name": "owner", + "id": 147, + "name": "mhash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 122, - "src": "540:5:2", + "referencedDeclaration": 120, + "src": "563:5:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 145, - "name": "_owner", + "id": 148, + "name": "_mhash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "548:6:2", + "referencedDeclaration": 122, + "src": "571:6:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "src": "540:14:2", + "src": "563:14:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" } }, - "id": 147, + "id": 150, "nodeType": "ExpressionStatement", - "src": "540:14:2" + "src": "563:14:2" } ] }, "documentation": null, - "id": 149, + "id": 152, "implemented": true, "isConstructor": true, "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 133, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 126, - "src": "421:5:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 134, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 128, - "src": "436:7:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "hexValue": "3138", - "id": 135, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "453:2:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - { - "argumentTypes": null, - "hexValue": "31", - "id": 136, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "465:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - { - "argumentTypes": null, - "hexValue": "31303030", - "id": 137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "476:4:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000_by_1", - "typeString": "int_const 1000" - }, - "value": "1000" - } - ], - "id": 138, - "modifierName": { - "argumentTypes": null, - "id": 132, - "name": "EthPolynomialCurvedToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 581, - "src": "387:24:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_EthPolynomialCurvedToken_$581_$", - "typeString": "type(contract EthPolynomialCurvedToken)" - } - }, - "nodeType": "ModifierInvocation", - "src": "387:99:2" - } - ], + "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 131, + "id": 129, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 124, + "id": 122, "name": "_mhash", "nodeType": "VariableDeclaration", - "scope": 149, - "src": "294:14:2", + "scope": 152, + "src": "250:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2685,10 +3124,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 123, + "id": 121, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "294:7:2", + "src": "250:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2699,11 +3138,11 @@ }, { "constant": false, - "id": 126, + "id": 124, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 149, - "src": "318:12:2", + "scope": 152, + "src": "274:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2711,10 +3150,10 @@ "typeString": "string" }, "typeName": { - "id": 125, + "id": 123, "name": "string", "nodeType": "ElementaryTypeName", - "src": "318:6:2", + "src": "274:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2725,11 +3164,11 @@ }, { "constant": false, - "id": 128, + "id": 126, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 149, - "src": "340:14:2", + "scope": 152, + "src": "296:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2737,10 +3176,10 @@ "typeString": "string" }, "typeName": { - "id": 127, + "id": 125, "name": "string", "nodeType": "ElementaryTypeName", - "src": "340:6:2", + "src": "296:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2751,11 +3190,11 @@ }, { "constant": false, - "id": 130, + "id": 128, "name": "_owner", "nodeType": "VariableDeclaration", - "scope": 149, - "src": "364:14:2", + "scope": 152, + "src": "320:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2763,10 +3202,10 @@ "typeString": "address" }, "typeName": { - "id": 129, + "id": 127, "name": "address", "nodeType": "ElementaryTypeName", - "src": "364:7:2", + "src": "320:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2776,39 +3215,39 @@ "visibility": "internal" } ], - "src": "284:100:2" + "src": "240:100:2" }, "payable": false, "returnParameters": { - "id": 139, + "id": 130, "nodeType": "ParameterList", "parameters": [], - "src": "506:0:2" + "src": "354:0:2" }, - "scope": 233, - "src": "273:288:2", + "scope": 239, + "src": "229:355:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 190, + "id": 194, "nodeType": "Block", - "src": "671:259:2", + "src": "703:276:2", "statements": [ { "assignments": [ - 157 + 160 ], "declarations": [ { "constant": false, - "id": 157, + "id": 160, "name": "cost", "nodeType": "VariableDeclaration", - "scope": 191, - "src": "681:12:2", + "scope": 195, + "src": "713:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2816,10 +3255,10 @@ "typeString": "uint256" }, "typeName": { - "id": 156, + "id": 159, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "681:7:2", + "src": "713:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2829,18 +3268,18 @@ "visibility": "internal" } ], - "id": 161, + "id": 164, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 159, - "name": "_price", + "id": 162, + "name": "reqNumTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "708:6:2", + "referencedDeclaration": 156, + "src": "734:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2854,20 +3293,20 @@ "typeString": "uint256" } ], - "id": 158, - "name": "priceToMint", + "id": 161, + "name": "price", "nodeType": "Identifier", "overloadedDeclarations": [ - 561 + 646 ], - "referencedDeclaration": 561, - "src": "696:11:2", + "referencedDeclaration": 646, + "src": "728:5:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) view returns (uint256)" } }, - "id": 160, + "id": 163, "isConstant": false, "isLValue": false, "isPure": false, @@ -2875,14 +3314,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "696:19:2", + "src": "728:19:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "681:34:2" + "src": "713:34:2" }, { "expression": { @@ -2894,7 +3333,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 166, + "id": 169, "isConstant": false, "isLValue": false, "isPure": false, @@ -2903,18 +3342,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 163, + "id": 166, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "733:3:2", + "referencedDeclaration": 1622, + "src": "765:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 164, + "id": 167, "isConstant": false, "isLValue": false, "isPure": false, @@ -2922,7 +3361,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "733:9:2", + "src": "765:9:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2932,18 +3371,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 165, + "id": 168, "name": "cost", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 157, - "src": "746:4:2", + "referencedDeclaration": 160, + "src": "778:4:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "733:17:2", + "src": "765:17:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2952,14 +3391,14 @@ { "argumentTypes": null, "hexValue": "4d7573742073656e642072657175697369746520616d6f756e7420746f2070757263686173652e", - "id": 167, + "id": 170, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "752:41:2", + "src": "784:41:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a6075f24df952e00c8462322e48fffe2cc5f8796b81dd2f6ea07ad610a2781ce", @@ -2979,21 +3418,21 @@ "typeString": "literal_string \"Must send requisite amount to purchase.\"" } ], - "id": 162, + "id": 165, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1299, - "src": "725:7:2", + "referencedDeclaration": 1626, + "src": "757:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 168, + "id": 171, "isConstant": false, "isLValue": false, "isPure": false, @@ -3001,15 +3440,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "725:69:2", + "src": "757:69:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 169, + "id": 172, "nodeType": "ExpressionStatement", - "src": "725:69:2" + "src": "757:69:2" }, { "expression": { @@ -3019,18 +3458,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 171, + "id": 174, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "811:3:2", + "referencedDeclaration": 1622, + "src": "843:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 172, + "id": 175, "isConstant": false, "isLValue": false, "isPure": false, @@ -3038,7 +3477,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "811:10:2", + "src": "843:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3046,12 +3485,12 @@ }, { "argumentTypes": null, - "id": 173, - "name": "_price", + "id": 176, + "name": "reqNumTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "823:6:2", + "referencedDeclaration": 156, + "src": "855:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3069,18 +3508,18 @@ "typeString": "uint256" } ], - "id": 170, + "id": 173, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "805:5:2", + "referencedDeclaration": 1321, + "src": "837:5:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 174, + "id": 177, "isConstant": false, "isLValue": false, "isPure": false, @@ -3088,15 +3527,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "805:25:2", + "src": "837:31:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 175, + "id": 178, "nodeType": "ExpressionStatement", - "src": "805:25:2" + "src": "837:31:2" }, { "expression": { @@ -3106,18 +3545,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 177, + "id": 180, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "850:3:2", + "referencedDeclaration": 1622, + "src": "888:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 178, + "id": 181, "isConstant": false, "isLValue": false, "isPure": false, @@ -3125,7 +3564,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "850:10:2", + "src": "888:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3133,12 +3572,29 @@ }, { "argumentTypes": null, - "id": 179, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 122, - "src": "862:5:2", + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 182, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "900:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "900:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3146,12 +3602,12 @@ }, { "argumentTypes": null, - "id": 180, - "name": "_price", + "id": 184, + "name": "reqNumTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "869:6:2", + "referencedDeclaration": 156, + "src": "909:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3173,18 +3629,18 @@ "typeString": "uint256" } ], - "id": 176, + "id": 179, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "840:9:2", + "referencedDeclaration": 1281, + "src": "878:9:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 181, + "id": 185, "isConstant": false, "isLValue": false, "isPure": false, @@ -3192,15 +3648,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "840:36:2", + "src": "878:44:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 182, + "id": 186, "nodeType": "ExpressionStatement", - "src": "840:36:2" + "src": "878:44:2" }, { "eventCall": { @@ -3208,12 +3664,12 @@ "arguments": [ { "argumentTypes": null, - "id": 184, - "name": "_msg", + "id": 188, + "name": "message", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "901:4:2", + "referencedDeclaration": 154, + "src": "947:7:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -3221,12 +3677,12 @@ }, { "argumentTypes": null, - "id": 185, + "id": 189, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1297, - "src": "907:3:2", + "referencedDeclaration": 1624, + "src": "956:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3236,18 +3692,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 186, + "id": 190, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "912:3:2", + "referencedDeclaration": 1622, + "src": "961:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 187, + "id": 191, "isConstant": false, "isLValue": false, "isPure": false, @@ -3255,7 +3711,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "912:10:2", + "src": "961:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3277,18 +3733,18 @@ "typeString": "address" } ], - "id": 183, + "id": 187, "name": "Requested", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 118, - "src": "891:9:2", + "src": "937:9:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_address_$returns$__$", "typeString": "function (string memory,uint256,address)" } }, - "id": 188, + "id": 192, "isConstant": false, "isLValue": false, "isPure": false, @@ -3296,20 +3752,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "891:32:2", + "src": "937:35:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 189, + "id": 193, "nodeType": "EmitStatement", - "src": "886:37:2" + "src": "932:40:2" } ] }, "documentation": null, - "id": 191, + "id": 195, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3317,16 +3773,16 @@ "name": "requestWithEth", "nodeType": "FunctionDefinition", "parameters": { - "id": 154, + "id": 157, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 151, - "name": "_msg", + "id": 154, + "name": "message", "nodeType": "VariableDeclaration", - "scope": 191, - "src": "600:11:2", + "scope": 195, + "src": "623:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3334,10 +3790,10 @@ "typeString": "string" }, "typeName": { - "id": 150, + "id": 153, "name": "string", "nodeType": "ElementaryTypeName", - "src": "600:6:2", + "src": "623:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3348,11 +3804,11 @@ }, { "constant": false, - "id": 153, - "name": "_price", + "id": 156, + "name": "reqNumTokens", "nodeType": "VariableDeclaration", - "scope": 191, - "src": "621:14:2", + "scope": 195, + "src": "647:20:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3360,10 +3816,10 @@ "typeString": "uint256" }, "typeName": { - "id": 152, + "id": 155, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "621:7:2", + "src": "647:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3373,26 +3829,26 @@ "visibility": "internal" } ], - "src": "590:51:2" + "src": "613:60:2" }, "payable": true, "returnParameters": { - "id": 155, + "id": 158, "nodeType": "ParameterList", "parameters": [], - "src": "671:0:2" + "src": "703:0:2" }, - "scope": 233, - "src": "567:363:2", + "scope": 239, + "src": "590:389:2", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 212, + "id": 217, "nodeType": "Block", - "src": "998:100:2", + "src": "1056:111:2", "statements": [ { "expression": { @@ -3402,18 +3858,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 199, + "id": 203, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "1018:3:2", + "referencedDeclaration": 1622, + "src": "1076:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 200, + "id": 204, "isConstant": false, "isLValue": false, "isPure": false, @@ -3421,7 +3877,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1018:10:2", + "src": "1076:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3429,12 +3885,29 @@ }, { "argumentTypes": null, - "id": 201, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 122, - "src": "1030:5:2", + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 205, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "1088:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1088:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3442,12 +3915,12 @@ }, { "argumentTypes": null, - "id": 202, - "name": "_price", + "id": 207, + "name": "reqNumTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 195, - "src": "1037:6:2", + "referencedDeclaration": 199, + "src": "1097:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3469,18 +3942,18 @@ "typeString": "uint256" } ], - "id": 198, + "id": 202, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1023, - "src": "1008:9:2", + "referencedDeclaration": 1281, + "src": "1066:9:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, - "id": 203, + "id": 208, "isConstant": false, "isLValue": false, "isPure": false, @@ -3488,15 +3961,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1008:36:2", + "src": "1066:44:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 204, + "id": 209, "nodeType": "ExpressionStatement", - "src": "1008:36:2" + "src": "1066:44:2" }, { "eventCall": { @@ -3504,12 +3977,12 @@ "arguments": [ { "argumentTypes": null, - "id": 206, - "name": "_msg", + "id": 211, + "name": "message", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 193, - "src": "1069:4:2", + "referencedDeclaration": 197, + "src": "1135:7:2", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -3517,12 +3990,12 @@ }, { "argumentTypes": null, - "id": 207, + "id": 212, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1297, - "src": "1075:3:2", + "referencedDeclaration": 1624, + "src": "1144:3:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3532,18 +4005,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 208, + "id": 213, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "1080:3:2", + "referencedDeclaration": 1622, + "src": "1149:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 209, + "id": 214, "isConstant": false, "isLValue": false, "isPure": false, @@ -3551,7 +4024,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1080:10:2", + "src": "1149:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3573,18 +4046,18 @@ "typeString": "address" } ], - "id": 205, + "id": 210, "name": "Requested", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 118, - "src": "1059:9:2", + "src": "1125:9:2", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_address_$returns$__$", "typeString": "function (string memory,uint256,address)" } }, - "id": 210, + "id": 215, "isConstant": false, "isLValue": false, "isPure": false, @@ -3592,20 +4065,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1059:32:2", + "src": "1125:35:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 211, + "id": 216, "nodeType": "EmitStatement", - "src": "1054:37:2" + "src": "1120:40:2" } ] }, "documentation": null, - "id": 213, + "id": 218, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3613,16 +4086,16 @@ "name": "requestWithToken", "nodeType": "FunctionDefinition", "parameters": { - "id": 196, + "id": 200, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 193, - "name": "_msg", + "id": 197, + "name": "message", "nodeType": "VariableDeclaration", - "scope": 213, - "src": "962:11:2", + "scope": 218, + "src": "1011:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3630,10 +4103,10 @@ "typeString": "string" }, "typeName": { - "id": 192, + "id": 196, "name": "string", "nodeType": "ElementaryTypeName", - "src": "962:6:2", + "src": "1011:6:2", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3644,11 +4117,11 @@ }, { "constant": false, - "id": 195, - "name": "_price", + "id": 199, + "name": "reqNumTokens", "nodeType": "VariableDeclaration", - "scope": 213, - "src": "975:14:2", + "scope": 218, + "src": "1027:20:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3656,10 +4129,10 @@ "typeString": "uint256" }, "typeName": { - "id": 194, + "id": 198, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "975:7:2", + "src": "1027:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3669,26 +4142,26 @@ "visibility": "internal" } ], - "src": "961:29:2" + "src": "1010:38:2" }, "payable": false, "returnParameters": { - "id": 197, + "id": 201, "nodeType": "ParameterList", "parameters": [], - "src": "998:0:2" + "src": "1056:0:2" }, - "scope": 233, - "src": "936:162:2", + "scope": 239, + "src": "985:182:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 231, + "id": 237, "nodeType": "Block", - "src": "1174:69:2", + "src": "1243:71:2", "statements": [ { "expression": { @@ -3700,7 +4173,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 224, + "id": 230, "isConstant": false, "isLValue": false, "isPure": false, @@ -3709,18 +4182,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 221, + "id": 226, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "1192:3:2", + "referencedDeclaration": 1622, + "src": "1261:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 222, + "id": 227, "isConstant": false, "isLValue": false, "isPure": false, @@ -3728,7 +4201,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1192:10:2", + "src": "1261:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3738,18 +4211,35 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 223, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 122, - "src": "1206:5:2", + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 228, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "1275:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1275:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1192:19:2", + "src": "1261:21:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3763,21 +4253,21 @@ "typeString": "bool" } ], - "id": 220, + "id": 225, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "1184:7:2", + "referencedDeclaration": 1625, + "src": "1253:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 225, + "id": 231, "isConstant": false, "isLValue": false, "isPure": false, @@ -3785,32 +4275,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1184:28:2", + "src": "1253:30:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 226, + "id": 232, "nodeType": "ExpressionStatement", - "src": "1184:28:2" + "src": "1253:30:2" }, { "expression": { "argumentTypes": null, - "id": 229, + "id": 235, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 227, + "id": 233, "name": "mhash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 120, - "src": "1222:5:2", + "src": "1293:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3820,31 +4310,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 228, + "id": 234, "name": "_mhash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "1230:6:2", + "referencedDeclaration": 220, + "src": "1301:6:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "1222:14:2", + "src": "1293:14:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 230, + "id": 236, "nodeType": "ExpressionStatement", - "src": "1222:14:2" + "src": "1293:14:2" } ] }, "documentation": null, - "id": 232, + "id": 238, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3852,16 +4342,16 @@ "name": "updateData", "nodeType": "FunctionDefinition", "parameters": { - "id": 216, + "id": 221, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 215, + "id": 220, "name": "_mhash", "nodeType": "VariableDeclaration", - "scope": 232, - "src": "1124:14:2", + "scope": 238, + "src": "1193:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3869,10 +4359,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 214, + "id": 219, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1124:7:2", + "src": "1193:7:2", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3882,20 +4372,20 @@ "visibility": "internal" } ], - "src": "1123:16:2" + "src": "1192:16:2" }, "payable": false, "returnParameters": { - "id": 219, + "id": 224, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 218, + "id": 223, "name": "", "nodeType": "VariableDeclaration", - "scope": 232, - "src": "1164:4:2", + "scope": 238, + "src": "1233:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3903,10 +4393,10 @@ "typeString": "bool" }, "typeName": { - "id": 217, + "id": 222, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1164:4:2", + "src": "1233:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3916,20 +4406,20 @@ "visibility": "internal" } ], - "src": "1163:6:2" + "src": "1232:6:2" }, - "scope": 233, - "src": "1104:139:2", + "scope": 239, + "src": "1173:141:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 234, - "src": "92:1153:2" + "scope": 240, + "src": "87:1229:2" } ], - "src": "0:1246:2" + "src": "0:1317:2" }, "compiler": { "name": "solc", @@ -3937,7 +4427,7 @@ }, "networks": {}, "schemaVersion": "3.0.0-beta.1", - "updatedAt": "2018-12-16T19:14:46.482Z", + "updatedAt": "2018-12-17T02:42:17.545Z", "devdoc": { "methods": { "allowance(address,address)": { @@ -3958,7 +4448,7 @@ "balanceOf(address)": { "details": "Gets the balance of the specified address.", "params": { - "owner": "The address to query the balance of." + "owner": "The address to query the the balance of." }, "return": "An uint256 representing the amount owned by the passed address." }, @@ -3979,9 +4469,21 @@ "spender": "The address which will spend the funds." } }, + "initialize(address)": { + "details": "The Ownable constructor sets the original `owner` of the contract to the sender account." + }, + "isOwner()": { + "return": "true if `msg.sender` is the owner of the contract." + }, "name()": { "return": "the name of the token." }, + "owner()": { + "return": "the address of the owner." + }, + "renounceOwnership()": { + "details": "Allows the current owner to relinquish control of the contract." + }, "symbol()": { "return": "the symbol of the token." }, @@ -4002,10 +4504,23 @@ "to": "address The address which you want to transfer to", "value": "uint256 the amount of tokens to be transferred" } + }, + "transferOwnership(address)": { + "details": "Allows the current owner to transfer control of the contract to a newOwner.", + "params": { + "newOwner": "The address to transfer ownership to." + } } } }, "userdoc": { - "methods": {} + "methods": { + "buy(uint256)": { + "notice": "Overwrite" + }, + "renounceOwnership()": { + "notice": "Renouncing to ownership will leave the contract without an owner. It will not be possible to call the functions with the `onlyOwner` modifier anymore." + } + } } } \ No newline at end of file diff --git a/src/build/contracts/PersonalEconomyFactory.json b/src/build/contracts/PersonalEconomyFactory.json index c2f26cf..f1d1247 100644 --- a/src/build/contracts/PersonalEconomyFactory.json +++ b/src/build/contracts/PersonalEconomyFactory.json @@ -131,24 +131,24 @@ "signature": "0xe501fe3c" } ], - "bytecode": "0x608060405234801561001057600080fd5b50612950806100206000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f4f331614610067578063b7de9dae146100c2578063c1ad191a1461012f578063e501fe3c1461019b575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610298565b604051808215151515815260200191505060405180910390f35b3480156100ce57600080fd5b506100ed600480360381019080803590602001909291905050506102b8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013b57600080fd5b506101446102f6565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561018757808201518184015260208101905061016c565b505050509050019250505060405180910390f35b3480156101a757600080fd5b506102566004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610384565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006020528060005260406000206000915054906101000a900460ff1681565b6001818154811015156102c757fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600180548060200260200160405190810160405280929190818152602001828054801561037a57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610330575b5050505050905090565b600083838333610392610724565b80856000191660001916815260200180602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835286818151815260200191508051906020019080838360005b838110156104135780820151818401526020810190506103f8565b50505050905090810190601f1680156104405780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561047957808201518184015260208101905061045e565b50505050905090810190601f1680156104a65780820380516001836020036101000a031916815260200191505b509650505050505050604051809103906000f0801580156104cb573d6000803e3d6000fd5b5090506104d7816105cd565b3373ffffffffffffffffffffffffffffffffffffffff167ff238fcd2133237bc5ae0e1f42086a193f4fddae976468b0797a9260c8f292219824286604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561058a57808201518184015260208101905061056f565b50505050905090810190601f1680156105b75780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a29392505050565b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060018190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507f4fb057ad4a26ed17a57957fa69c306f11987596069b89521c511fc9a894e61613382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b6040516121f08061073583390190560060806040523480156200001157600080fd5b50604051620021f0380380620021f0833981018060405281019080805190602001909291908051820192919060200180518201929190602001805190602001909291905050508282601260016103e884848482828282600090805190602001906200007e92919062000122565b5081600190805190602001906200009792919062000122565b5080600260006101000a81548160ff021916908360ff16021790555050505050505081600781905550806008819055505050505050836009816000191690555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050620001d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016557805160ff191683800117855562000196565b8280016001018555821562000196579182015b828111156200019557825182559160200191906001019062000178565b5b509050620001a59190620001a9565b5090565b620001ce91905b80821115620001ca576000816000905550600101620001b0565b5090565b90565b61200f80620001e16000396000f300608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610138578063095ea7b3146101c857806318160ddd1461022d57806323b872dd14610258578063313ce567146102dd578063395093511461030e57806342966c681461037357806352f6ee58146103a0578063621d8531146103cb5780636400be1d1461043157806370a082311461045c5780638da5cb5b146104b357806395d89b411461050a57806396365d441461059a578063a0712d68146105c5578063a457c2d7146105e5578063a9059cbb1461064a578063a9d989b4146106af578063b25ba02e14610722578063b9d3674314610755578063c544682b14610796578063cdf7f8e6146107d7578063dd62ed3e14610820575b600080fd5b34801561014457600080fd5b5061014d610897565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018d578082015181840152602081019050610172565b50505050905090810190601f1680156101ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d457600080fd5b50610213600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610939565b604051808215151515815260200191505060405180910390f35b34801561023957600080fd5b50610242610a66565b6040518082815260200191505060405180910390f35b34801561026457600080fd5b506102c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a70565b604051808215151515815260200191505060405180910390f35b3480156102e957600080fd5b506102f2610c22565b604051808260ff1660ff16815260200191505060405180910390f35b34801561031a57600080fd5b50610359600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c39565b604051808215151515815260200191505060405180910390f35b34801561037f57600080fd5b5061039e60048036038101908080359060200190929190505050610e70565b005b3480156103ac57600080fd5b506103b5611049565b6040518082815260200191505060405180910390f35b61042f600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061104f565b005b34801561043d57600080fd5b5061044661120e565b6040518082815260200191505060405180910390f35b34801561046857600080fd5b5061049d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611214565b6040518082815260200191505060405180910390f35b3480156104bf57600080fd5b506104c861125d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561051657600080fd5b5061051f611283565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561055f578082015181840152602081019050610544565b50505050905090810190601f16801561058c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105a657600080fd5b506105af611325565b6040518082815260200191505060405180910390f35b6105e36004803603810190808035906020019092919050505061132b565b005b3480156105f157600080fd5b50610630600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061153d565b604051808215151515815260200191505060405180910390f35b34801561065657600080fd5b50610695600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611774565b604051808215151515815260200191505060405180910390f35b3480156106bb57600080fd5b50610720600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061178b565b005b34801561072e57600080fd5b50610737611894565b60405180826000191660001916815260200191505060405180910390f35b34801561076157600080fd5b506107806004803603810190808035906020019092919050505061189a565b6040518082815260200191505060405180910390f35b3480156107a257600080fd5b506107c1600480360381019080803590602001909291905050506118d9565b6040518082815260200191505060405180910390f35b3480156107e357600080fd5b506108066004803603810190808035600019169060200190929190505050611918565b604051808215151515815260200191505060405180910390f35b34801561082c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611986565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561092f5780601f106109045761010080835404028352916020019161092f565b820191906000526020600020905b81548152906001019060200180831161091257829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561097657600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610afd57600080fd5b610b8c82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c17848484611a2e565b600190509392505050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610c7657600080fd5b610d0582600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008082111515610f0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d757374206275726e20616e20616d6f756e742067726561746572207468616e81526020017f207a65726f2e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81610f1933611214565b10151515610f8f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d757374206861766520656e6f75676820746f6b656e7320746f206275726e2e81525060200191505060405180910390fd5b610f98826118d9565b9050610fa43383611c6d565b610fb981600654611a0d90919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611005573d6000803e3d6000fd5b507fcec1bae6e024d929f2929f3478ce70f55f9c636c8ef7b5073a61d7c3a432451b8282604051808381526020018281526020019250505060405180910390a15050565b60075481565b600061105a8261189a565b90508034101515156110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6111043383611dfb565b61113133600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309183423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156111cd5780820151818401526020810190506111b2565b50505050905090810190601f1680156111fa5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b60085481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561131b5780601f106112f05761010080835404028352916020019161131b565b820191906000526020600020905b8154815290600101906020018083116112fe57829003601f168201915b5050505050905090565b60065481565b600080821115156113ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4d75737420707572636861736520616e20616d6f756e7420677265617465722081526020017f7468616e207a65726f2e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6113d38261189a565b9050803410151515611473576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61147d3383611dfb565b61149281600654611c4c90919063ffffffff16565b600681905550803411156114fa573373ffffffffffffffffffffffffffffffffffffffff166108fc6114cd8334611a0d90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156114f8573d6000803e3d6000fd5b505b7f8a9dcf4e150b1153011b29fec302d5be0c13e84fa8f56ab78587f778a32a90dd8282604051808381526020018281526020019250505060405180910390a15050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561157a57600080fd5b61160982600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000611781338484611a2e565b6001905092915050565b6117b833600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309182423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015611854578082015181840152602081019050611839565b50505050905090810190601f1680156118815780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b60095481565b60006118d26006546118c46118bf856118b1610a66565b611c4c90919063ffffffff16565b611f3b565b611a0d90919063ffffffff16565b9050919050565b60006119116119006118fb846118ed610a66565b611a0d90919063ffffffff16565b611f3b565b600654611a0d90919063ffffffff16565b9050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561197657600080fd5b8160098160001916905550919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080838311151515611a1f57600080fd5b82840390508091505092915050565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611a7c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611ab857600080fd5b611b0a81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b9f81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000808284019050838110151515611c6357600080fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611c9357600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611ce157600080fd5b611cf681600554611a0d90919063ffffffff16565b600581905550611d4e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611e2157600080fd5b611e3681600554611c4c90919063ffffffff16565b600581905550611e8e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000806000611f566001600754611c4c90919063ffffffff16565b9150601282611f63610c22565b60ff1602600a0a039050611fb0670de0b6b3a7640000611fa2600854611f9486878a0a611fb990919063ffffffff16565b611fb990919063ffffffff16565b611fb990919063ffffffff16565b92505050919050565b600080600083111515611fcb57600080fd5b8284811515611fd657fe5b04905080915050929150505600a165627a7a72305820885af079c3b4b1baa61690e56afe0c8267273deb7c1b3f044aee1fdeffe9798a0029a165627a7a72305820573f489da914933ff1d8a512d99615f580772241592da444a05eac8080f5835e0029", - "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f4f331614610067578063b7de9dae146100c2578063c1ad191a1461012f578063e501fe3c1461019b575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610298565b604051808215151515815260200191505060405180910390f35b3480156100ce57600080fd5b506100ed600480360381019080803590602001909291905050506102b8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013b57600080fd5b506101446102f6565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561018757808201518184015260208101905061016c565b505050509050019250505060405180910390f35b3480156101a757600080fd5b506102566004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610384565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006020528060005260406000206000915054906101000a900460ff1681565b6001818154811015156102c757fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600180548060200260200160405190810160405280929190818152602001828054801561037a57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610330575b5050505050905090565b600083838333610392610724565b80856000191660001916815260200180602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835286818151815260200191508051906020019080838360005b838110156104135780820151818401526020810190506103f8565b50505050905090810190601f1680156104405780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561047957808201518184015260208101905061045e565b50505050905090810190601f1680156104a65780820380516001836020036101000a031916815260200191505b509650505050505050604051809103906000f0801580156104cb573d6000803e3d6000fd5b5090506104d7816105cd565b3373ffffffffffffffffffffffffffffffffffffffff167ff238fcd2133237bc5ae0e1f42086a193f4fddae976468b0797a9260c8f292219824286604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561058a57808201518184015260208101905061056f565b50505050905090810190601f1680156105b75780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a29392505050565b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060018190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507f4fb057ad4a26ed17a57957fa69c306f11987596069b89521c511fc9a894e61613382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b6040516121f08061073583390190560060806040523480156200001157600080fd5b50604051620021f0380380620021f0833981018060405281019080805190602001909291908051820192919060200180518201929190602001805190602001909291905050508282601260016103e884848482828282600090805190602001906200007e92919062000122565b5081600190805190602001906200009792919062000122565b5080600260006101000a81548160ff021916908360ff16021790555050505050505081600781905550806008819055505050505050836009816000191690555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050620001d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016557805160ff191683800117855562000196565b8280016001018555821562000196579182015b828111156200019557825182559160200191906001019062000178565b5b509050620001a59190620001a9565b5090565b620001ce91905b80821115620001ca576000816000905550600101620001b0565b5090565b90565b61200f80620001e16000396000f300608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610138578063095ea7b3146101c857806318160ddd1461022d57806323b872dd14610258578063313ce567146102dd578063395093511461030e57806342966c681461037357806352f6ee58146103a0578063621d8531146103cb5780636400be1d1461043157806370a082311461045c5780638da5cb5b146104b357806395d89b411461050a57806396365d441461059a578063a0712d68146105c5578063a457c2d7146105e5578063a9059cbb1461064a578063a9d989b4146106af578063b25ba02e14610722578063b9d3674314610755578063c544682b14610796578063cdf7f8e6146107d7578063dd62ed3e14610820575b600080fd5b34801561014457600080fd5b5061014d610897565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018d578082015181840152602081019050610172565b50505050905090810190601f1680156101ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d457600080fd5b50610213600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610939565b604051808215151515815260200191505060405180910390f35b34801561023957600080fd5b50610242610a66565b6040518082815260200191505060405180910390f35b34801561026457600080fd5b506102c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a70565b604051808215151515815260200191505060405180910390f35b3480156102e957600080fd5b506102f2610c22565b604051808260ff1660ff16815260200191505060405180910390f35b34801561031a57600080fd5b50610359600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c39565b604051808215151515815260200191505060405180910390f35b34801561037f57600080fd5b5061039e60048036038101908080359060200190929190505050610e70565b005b3480156103ac57600080fd5b506103b5611049565b6040518082815260200191505060405180910390f35b61042f600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061104f565b005b34801561043d57600080fd5b5061044661120e565b6040518082815260200191505060405180910390f35b34801561046857600080fd5b5061049d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611214565b6040518082815260200191505060405180910390f35b3480156104bf57600080fd5b506104c861125d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561051657600080fd5b5061051f611283565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561055f578082015181840152602081019050610544565b50505050905090810190601f16801561058c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105a657600080fd5b506105af611325565b6040518082815260200191505060405180910390f35b6105e36004803603810190808035906020019092919050505061132b565b005b3480156105f157600080fd5b50610630600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061153d565b604051808215151515815260200191505060405180910390f35b34801561065657600080fd5b50610695600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611774565b604051808215151515815260200191505060405180910390f35b3480156106bb57600080fd5b50610720600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061178b565b005b34801561072e57600080fd5b50610737611894565b60405180826000191660001916815260200191505060405180910390f35b34801561076157600080fd5b506107806004803603810190808035906020019092919050505061189a565b6040518082815260200191505060405180910390f35b3480156107a257600080fd5b506107c1600480360381019080803590602001909291905050506118d9565b6040518082815260200191505060405180910390f35b3480156107e357600080fd5b506108066004803603810190808035600019169060200190929190505050611918565b604051808215151515815260200191505060405180910390f35b34801561082c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611986565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561092f5780601f106109045761010080835404028352916020019161092f565b820191906000526020600020905b81548152906001019060200180831161091257829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561097657600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610afd57600080fd5b610b8c82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c17848484611a2e565b600190509392505050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610c7657600080fd5b610d0582600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008082111515610f0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d757374206275726e20616e20616d6f756e742067726561746572207468616e81526020017f207a65726f2e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81610f1933611214565b10151515610f8f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d757374206861766520656e6f75676820746f6b656e7320746f206275726e2e81525060200191505060405180910390fd5b610f98826118d9565b9050610fa43383611c6d565b610fb981600654611a0d90919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611005573d6000803e3d6000fd5b507fcec1bae6e024d929f2929f3478ce70f55f9c636c8ef7b5073a61d7c3a432451b8282604051808381526020018281526020019250505060405180910390a15050565b60075481565b600061105a8261189a565b90508034101515156110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6111043383611dfb565b61113133600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309183423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156111cd5780820151818401526020810190506111b2565b50505050905090810190601f1680156111fa5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b60085481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561131b5780601f106112f05761010080835404028352916020019161131b565b820191906000526020600020905b8154815290600101906020018083116112fe57829003601f168201915b5050505050905090565b60065481565b600080821115156113ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4d75737420707572636861736520616e20616d6f756e7420677265617465722081526020017f7468616e207a65726f2e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6113d38261189a565b9050803410151515611473576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61147d3383611dfb565b61149281600654611c4c90919063ffffffff16565b600681905550803411156114fa573373ffffffffffffffffffffffffffffffffffffffff166108fc6114cd8334611a0d90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156114f8573d6000803e3d6000fd5b505b7f8a9dcf4e150b1153011b29fec302d5be0c13e84fa8f56ab78587f778a32a90dd8282604051808381526020018281526020019250505060405180910390a15050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561157a57600080fd5b61160982600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000611781338484611a2e565b6001905092915050565b6117b833600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309182423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015611854578082015181840152602081019050611839565b50505050905090810190601f1680156118815780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b60095481565b60006118d26006546118c46118bf856118b1610a66565b611c4c90919063ffffffff16565b611f3b565b611a0d90919063ffffffff16565b9050919050565b60006119116119006118fb846118ed610a66565b611a0d90919063ffffffff16565b611f3b565b600654611a0d90919063ffffffff16565b9050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561197657600080fd5b8160098160001916905550919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080838311151515611a1f57600080fd5b82840390508091505092915050565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611a7c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611ab857600080fd5b611b0a81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b9f81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000808284019050838110151515611c6357600080fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611c9357600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611ce157600080fd5b611cf681600554611a0d90919063ffffffff16565b600581905550611d4e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611e2157600080fd5b611e3681600554611c4c90919063ffffffff16565b600581905550611e8e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000806000611f566001600754611c4c90919063ffffffff16565b9150601282611f63610c22565b60ff1602600a0a039050611fb0670de0b6b3a7640000611fa2600854611f9486878a0a611fb990919063ffffffff16565b611fb990919063ffffffff16565b611fb990919063ffffffff16565b92505050919050565b600080600083111515611fcb57600080fd5b8284811515611fd657fe5b04905080915050929150505600a165627a7a72305820885af079c3b4b1baa61690e56afe0c8267273deb7c1b3f044aee1fdeffe9798a0029a165627a7a72305820573f489da914933ff1d8a512d99615f580772241592da444a05eac8080f5835e0029", + "bytecode": "0x608060405234801561001057600080fd5b50613e14806100206000396000f30060806040526004361062000067576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f4f3316146200006c578063b7de9dae14620000ca578063c1ad191a146200013a578063e501fe3c14620001ab575b600080fd5b3480156200007957600080fd5b50620000b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050620002ab565b604051808215151515815260200191505060405180910390f35b348015620000d757600080fd5b50620000f860048036038101908080359060200190929190505050620002cb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200014757600080fd5b50620001526200030a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015620001975780820151818401526020810190506200017a565b505050509050019250505060405180910390f35b348015620001b857600080fd5b50620002696004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506200039a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006020528060005260406000206000915054906101000a900460ff1681565b600181815481101515620002db57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054806020026020016040519081016040528092919081815260200182805480156200039057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162000345575b5050505050905090565b600083838333620003aa62000748565b80856000191660001916815260200180602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835286818151815260200191508051906020019080838360005b838110156200042d57808201518184015260208101905062000410565b50505050905090810190601f1680156200045b5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156200049657808201518184015260208101905062000479565b50505050905090810190601f168015620004c45780820380516001836020036101000a031916815260200191505b509650505050505050604051809103906000f080158015620004ea573d6000803e3d6000fd5b509050620004f881620005f1565b3373ffffffffffffffffffffffffffffffffffffffff167ff238fcd2133237bc5ae0e1f42086a193f4fddae976468b0797a9260c8f292219824286604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015620005ad57808201518184015260208101905062000590565b50505050905090810190601f168015620005db5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a29392505050565b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060018190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507f4fb057ad4a26ed17a57957fa69c306f11987596069b89521c511fc9a894e61613382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b60405161368f806200075a83390190560060806040523480156200001157600080fd5b506040516200368f3803806200368f833981018060405281019080805190602001909291908051820192919060200180518201929190602001805190602001909291905050506200008283836012600180610bb8610fa0620000b16401000000000262001392176401000000009004565b6200009c816200025d640100000000026401000000009004565b8360d581600019169055505050505062000945565b60008060019054906101000a900460ff1680620000e35750620000e26200029f640100000000026401000000009004565b5b80620000fb57506000809054906101000a900460ff16155b151562000196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff021916908315150217905550620001fc33620002b06401000000000262001ca1176401000000009004565b6200021d8888886200043b6401000000000262000e00176401000000009004565b8460d1819055508360d2819055508260d3819055508160d48190555080600060016101000a81548160ff0219169083151502179055505050505050505050565b62000276620005a8640100000000026401000000009004565b15156200028257600080fd5b6200029c8162000600640100000000026401000000009004565b50565b600080303b90506000811491505090565b60008060019054906101000a900460ff1680620002e25750620002e16200029f640100000000026401000000009004565b5b80620002fa57506000809054906101000a900460ff16155b151562000395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548160ff0219169083151502179055505050565b60008060019054906101000a900460ff16806200046d57506200046c6200029f640100000000026401000000009004565b5b806200048557506000809054906101000a900460ff16155b151562000520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555062000588848484620006fd640100000000026200221c176401000000009004565b80600060016101000a81548160ff02191690831515021790555050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200063d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060019054906101000a900460ff16806200072f57506200072e6200029f640100000000026401000000009004565b5b806200074757506000809054906101000a900460ff16155b1515620007e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555083609b90805190602001906200084192919062000896565b5082609c90805190602001906200085a92919062000896565b5081609d60006101000a81548160ff021916908360ff16021790555080600060016101000a81548160ff02191690831515021790555050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620008d957805160ff19168380011785556200090a565b828001600101855582156200090a579182015b8281111562000909578251825591602001919060010190620008ec565b5b5090506200091991906200091d565b5090565b6200094291905b808211156200093e57600081600090555060010162000924565b5090565b90565b612d3a80620009556000396000f300608060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461019b578063095ea7b31461022b578063112d37581461029057806314a962b6146102bb5780631624f6c6146102e657806318160ddd146103a257806323b872dd146103cd57806326a49e3714610452578063313ce5671461049357806339509351146104c457806356885ba114610529578063621d85311461060d578063638769f51461067357806370a08231146106b4578063715018a61461070b5780638da5cb5b146107225780638f32d59b1461077957806395d89b41146107a8578063a457c2d714610838578063a78d0ed01461089d578063a9059cbb146108c8578063a9d989b41461092d578063a9fb763c146109a0578063aa69a909146109e1578063b25ba02e14610a0c578063c4d66de814610a3f578063cd3293de14610a82578063cdf7f8e614610aad578063d96a094a14610af6578063dd62ed3e14610b2a578063e4849b3214610ba1578063f2fde38b14610be2575b600080fd5b3480156101a757600080fd5b506101b0610c25565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f05780820151818401526020810190506101d5565b50505050905090810190601f16801561021d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023757600080fd5b50610276600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cc7565b604051808215151515815260200191505060405180910390f35b34801561029c57600080fd5b506102a5610df4565b6040518082815260200191505060405180910390f35b3480156102c757600080fd5b506102d0610dfa565b6040518082815260200191505060405180910390f35b3480156102f257600080fd5b506103a0600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610e00565b005b3480156103ae57600080fd5b506103b7610f43565b6040518082815260200191505060405180910390f35b3480156103d957600080fd5b50610438600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f4d565b604051808215151515815260200191505060405180910390f35b34801561045e57600080fd5b5061047d600480360381019080803590602001909291905050506110ff565b6040518082815260200191505060405180910390f35b34801561049f57600080fd5b506104a8611144565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104d057600080fd5b5061050f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061115b565b604051808215151515815260200191505060405180910390f35b34801561053557600080fd5b5061060b600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611392565b005b610671600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001909291905050506114fe565b005b34801561067f57600080fd5b5061069e600480360381019080803590602001909291905050506116a2565b6040518082815260200191505060405180910390f35b3480156106c057600080fd5b506106f5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116e5565b6040518082815260200191505060405180910390f35b34801561071757600080fd5b5061072061172e565b005b34801561072e57600080fd5b506107376117ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561078557600080fd5b5061078e611814565b604051808215151515815260200191505060405180910390f35b3480156107b457600080fd5b506107bd61186c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107fd5780820151818401526020810190506107e2565b50505050905090810190601f16801561082a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561084457600080fd5b50610883600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061190e565b604051808215151515815260200191505060405180910390f35b3480156108a957600080fd5b506108b2611b45565b6040518082815260200191505060405180910390f35b3480156108d457600080fd5b50610913600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b4b565b604051808215151515815260200191505060405180910390f35b34801561093957600080fd5b5061099e600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190505050611b62565b005b3480156109ac57600080fd5b506109cb60048036038101908080359060200190929190505050611c50565b6040518082815260200191505060405180910390f35b3480156109ed57600080fd5b506109f6611c95565b6040518082815260200191505060405180910390f35b348015610a1857600080fd5b50610a21611c9b565b60405180826000191660001916815260200191505060405180910390f35b348015610a4b57600080fd5b50610a80600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ca1565b005b348015610a8e57600080fd5b50610a97611e18565b6040518082815260200191505060405180910390f35b348015610ab957600080fd5b50610adc6004803603810190808035600019169060200190929190505050611e1e565b604051808215151515815260200191505060405180910390f35b610b1460048036038101908080359060200190929190505050611e71565b6040518082815260200191505060405180910390f35b348015610b3657600080fd5b50610b8b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f64565b6040518082815260200191505060405180910390f35b348015610bad57600080fd5b50610bcc60048036038101908080359060200190929190505050611feb565b6040518082815260200191505060405180910390f35b348015610bee57600080fd5b50610c23600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121ec565b005b6060609b8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cbd5780601f10610c9257610100808354040283529160200191610cbd565b820191906000526020600020905b815481529060010190602001808311610ca057829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610d0457600080fd5b81606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60d15481565b60d35481565b60008060019054906101000a900460ff1680610e205750610e1f61220b565b5b80610e3757506000809054906101000a900460ff16155b1515610ed1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff021916908315150217905550610f2384848461221c565b80600060016101000a81548160ff02191690831515021790555050505050565b6000606854905090565b6000606760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610fda57600080fd5b61106982606760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239d90919063ffffffff16565b606760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110f48484846123be565b600190509392505050565b600061113d60d05461112f61112485611116610f43565b6125dc90919063ffffffff16565b60d15460d3546125fd565b61239d90919063ffffffff16565b9050919050565b6000609d60009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561119857600080fd5b61122782606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125dc90919063ffffffff16565b606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008060019054906101000a900460ff16806113b257506113b161220b565b5b806113c957506000809054906101000a900460ff16155b1515611463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055506114b333611ca1565b6114be888888610e00565b8460d1819055508360d2819055508260d3819055508160d48190555080600060016101000a81548160ff0219169083151502179055505050505050505050565b6000611509826110ff565b90508034101515156115a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6115b33383612661565b6115c5336115bf6117ea565b846123be565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309183423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015611661578082015181840152602081019050611646565b50505050905090810190601f16801561168e5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b60008060006116b68460d15460d3546125fd565b91506116c78460d25460d4546125fd565b90506116dc818361239d90919063ffffffff16565b92505050919050565b6000606660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611736611814565b151561174157600080fd5b603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6060609c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119045780601f106118d957610100808354040283529160200191611904565b820191906000526020600020905b8154815290600101906020018083116118e757829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561194b57600080fd5b6119da82606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239d90919063ffffffff16565b606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60d45481565b6000611b583384846123be565b6001905092915050565b611b7433611b6e6117ea565b836123be565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309182423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015611c10578082015181840152602081019050611bf5565b50505050905090810190601f168015611c3d5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b6000611c8e611c7d611c7284611c64610f43565b61239d90919063ffffffff16565b60d25460d4546125fd565b60d05461239d90919063ffffffff16565b9050919050565b60d25481565b60d55481565b60008060019054906101000a900460ff1680611cc15750611cc061220b565b5b80611cd857506000809054906101000a900460ff16155b1515611d72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548160ff0219169083151502179055505050565b60d05481565b6000611e286117ea565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e6157600080fd5b8160d58160001916905550919050565b600080600080611e87611e82610f43565b6116a2565b9250611e92856127a1565b9350611ea4611e9f610f43565b6116a2565b9150611eb9838361239d90919063ffffffff16565b9050611ed08160d05461239d90919063ffffffff16565b60d081905550611ede6117ea565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f23573d6000803e3d6000fd5b50427f698e6ae5d786c1b7ebbb3f65f5c53b321f0c2d2cc5de830ede8183fac06ec425826040518082815260200191505060405180910390a2505050919050565b6000606760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000808211151561208a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d757374207370656e64206e6f6e2d7a65726f20616d6f756e74206f6620746f81526020017f6b656e732e00000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81612094336116e5565b10151515612130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f53656e64657220646f6573206e6f74206861766520656e6f75676820746f6b6581526020017f6e7320746f207370656e642e000000000000000000000000000000000000000081525060400191505060405180910390fd5b61213982611c50565b90506121508160d05461239d90919063ffffffff16565b60d08190555061216033836129b5565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121a6573d6000803e3d6000fd5b50427f5501bc527b3cba3e6befc13767fc7728d2de83aad635948271290a5ebd9653018383604051808381526020018281526020019250505060405180910390a2919050565b6121f4611814565b15156121ff57600080fd5b61220881612b43565b50565b600080303b90506000811491505090565b60008060019054906101000a900460ff168061223c575061223b61220b565b5b8061225357506000809054906101000a900460ff16155b15156122ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555083609b908051906020019061234a929190612c69565b5082609c9080519060200190612361929190612c69565b5081609d60006101000a81548160ff021916908360ff16021790555080600060016101000a81548160ff02191690831515021790555050505050565b6000808383111515156123af57600080fd5b82840390508091505092915050565b606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561240c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561244857600080fd5b61249a81606660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239d90919063ffffffff16565b606660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061252f81606660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125dc90919063ffffffff16565b606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008082840190508381101515156125f357600080fd5b8091505092915050565b6000806126146001856125dc90919063ffffffff16565b9050612657670de0b6b3a76400006126498561263b85868b0a612c3f90919063ffffffff16565b612c3f90919063ffffffff16565b612c3f90919063ffffffff16565b9150509392505050565b60008273ffffffffffffffffffffffffffffffffffffffff161415151561268757600080fd5b61269c816068546125dc90919063ffffffff16565b6068819055506126f481606660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125dc90919063ffffffff16565b606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008082111515612840576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742072657175657374206e6f6e2d7a65726f20616d6f756e74206f662081526020017f746f6b656e732e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b612849826110ff565b90508034101515156128e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f446964206e6f742073656e6420656e6f75676820657468657220746f2062757981526020017f210000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6128fe8160d0546125dc90919063ffffffff16565b60d08190555061290e3383612661565b80341115612970573373ffffffffffffffffffffffffffffffffffffffff166108fc612943833461239d90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561296e573d6000803e3d6000fd5b505b427fef06a9ba77137aabff72e359d8cc6f2af40b4135811720e6efe22ae19692b5978383604051808381526020018281526020019250505060405180910390a2919050565b60008273ffffffffffffffffffffffffffffffffffffffff16141515156129db57600080fd5b606660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515612a2957600080fd5b612a3e8160685461239d90919063ffffffff16565b606881905550612a9681606660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239d90919063ffffffff16565b606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612b7f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600083111515612c5157600080fd5b8284811515612c5c57fe5b0490508091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612caa57805160ff1916838001178555612cd8565b82800160010185558215612cd8579182015b82811115612cd7578251825591602001919060010190612cbc565b5b509050612ce59190612ce9565b5090565b612d0b91905b80821115612d07576000816000905550600101612cef565b5090565b905600a165627a7a723058201b1389fba8aa51230250958752fd77c28ea73812e1ecfcbe6837e2d18f7100b40029a165627a7a72305820e383c2a8de9c761c6ce746a10d550d3f783f48890d40fccf9daa159df819488c0029", + "deployedBytecode": "0x60806040526004361062000067576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f4f3316146200006c578063b7de9dae14620000ca578063c1ad191a146200013a578063e501fe3c14620001ab575b600080fd5b3480156200007957600080fd5b50620000b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050620002ab565b604051808215151515815260200191505060405180910390f35b348015620000d757600080fd5b50620000f860048036038101908080359060200190929190505050620002cb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200014757600080fd5b50620001526200030a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015620001975780820151818401526020810190506200017a565b505050509050019250505060405180910390f35b348015620001b857600080fd5b50620002696004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506200039a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006020528060005260406000206000915054906101000a900460ff1681565b600181815481101515620002db57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054806020026020016040519081016040528092919081815260200182805480156200039057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162000345575b5050505050905090565b600083838333620003aa62000748565b80856000191660001916815260200180602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835286818151815260200191508051906020019080838360005b838110156200042d57808201518184015260208101905062000410565b50505050905090810190601f1680156200045b5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156200049657808201518184015260208101905062000479565b50505050905090810190601f168015620004c45780820380516001836020036101000a031916815260200191505b509650505050505050604051809103906000f080158015620004ea573d6000803e3d6000fd5b509050620004f881620005f1565b3373ffffffffffffffffffffffffffffffffffffffff167ff238fcd2133237bc5ae0e1f42086a193f4fddae976468b0797a9260c8f292219824286604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015620005ad57808201518184015260208101905062000590565b50505050905090810190601f168015620005db5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a29392505050565b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060018190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507f4fb057ad4a26ed17a57957fa69c306f11987596069b89521c511fc9a894e61613382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b60405161368f806200075a83390190560060806040523480156200001157600080fd5b506040516200368f3803806200368f833981018060405281019080805190602001909291908051820192919060200180518201929190602001805190602001909291905050506200008283836012600180610bb8610fa0620000b16401000000000262001392176401000000009004565b6200009c816200025d640100000000026401000000009004565b8360d581600019169055505050505062000945565b60008060019054906101000a900460ff1680620000e35750620000e26200029f640100000000026401000000009004565b5b80620000fb57506000809054906101000a900460ff16155b151562000196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff021916908315150217905550620001fc33620002b06401000000000262001ca1176401000000009004565b6200021d8888886200043b6401000000000262000e00176401000000009004565b8460d1819055508360d2819055508260d3819055508160d48190555080600060016101000a81548160ff0219169083151502179055505050505050505050565b62000276620005a8640100000000026401000000009004565b15156200028257600080fd5b6200029c8162000600640100000000026401000000009004565b50565b600080303b90506000811491505090565b60008060019054906101000a900460ff1680620002e25750620002e16200029f640100000000026401000000009004565b5b80620002fa57506000809054906101000a900460ff16155b151562000395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548160ff0219169083151502179055505050565b60008060019054906101000a900460ff16806200046d57506200046c6200029f640100000000026401000000009004565b5b806200048557506000809054906101000a900460ff16155b151562000520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555062000588848484620006fd640100000000026200221c176401000000009004565b80600060016101000a81548160ff02191690831515021790555050505050565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200063d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060019054906101000a900460ff16806200072f57506200072e6200029f640100000000026401000000009004565b5b806200074757506000809054906101000a900460ff16155b1515620007e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555083609b90805190602001906200084192919062000896565b5082609c90805190602001906200085a92919062000896565b5081609d60006101000a81548160ff021916908360ff16021790555080600060016101000a81548160ff02191690831515021790555050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620008d957805160ff19168380011785556200090a565b828001600101855582156200090a579182015b8281111562000909578251825591602001919060010190620008ec565b5b5090506200091991906200091d565b5090565b6200094291905b808211156200093e57600081600090555060010162000924565b5090565b90565b612d3a80620009556000396000f300608060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461019b578063095ea7b31461022b578063112d37581461029057806314a962b6146102bb5780631624f6c6146102e657806318160ddd146103a257806323b872dd146103cd57806326a49e3714610452578063313ce5671461049357806339509351146104c457806356885ba114610529578063621d85311461060d578063638769f51461067357806370a08231146106b4578063715018a61461070b5780638da5cb5b146107225780638f32d59b1461077957806395d89b41146107a8578063a457c2d714610838578063a78d0ed01461089d578063a9059cbb146108c8578063a9d989b41461092d578063a9fb763c146109a0578063aa69a909146109e1578063b25ba02e14610a0c578063c4d66de814610a3f578063cd3293de14610a82578063cdf7f8e614610aad578063d96a094a14610af6578063dd62ed3e14610b2a578063e4849b3214610ba1578063f2fde38b14610be2575b600080fd5b3480156101a757600080fd5b506101b0610c25565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f05780820151818401526020810190506101d5565b50505050905090810190601f16801561021d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023757600080fd5b50610276600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cc7565b604051808215151515815260200191505060405180910390f35b34801561029c57600080fd5b506102a5610df4565b6040518082815260200191505060405180910390f35b3480156102c757600080fd5b506102d0610dfa565b6040518082815260200191505060405180910390f35b3480156102f257600080fd5b506103a0600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610e00565b005b3480156103ae57600080fd5b506103b7610f43565b6040518082815260200191505060405180910390f35b3480156103d957600080fd5b50610438600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f4d565b604051808215151515815260200191505060405180910390f35b34801561045e57600080fd5b5061047d600480360381019080803590602001909291905050506110ff565b6040518082815260200191505060405180910390f35b34801561049f57600080fd5b506104a8611144565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104d057600080fd5b5061050f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061115b565b604051808215151515815260200191505060405180910390f35b34801561053557600080fd5b5061060b600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611392565b005b610671600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001909291905050506114fe565b005b34801561067f57600080fd5b5061069e600480360381019080803590602001909291905050506116a2565b6040518082815260200191505060405180910390f35b3480156106c057600080fd5b506106f5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116e5565b6040518082815260200191505060405180910390f35b34801561071757600080fd5b5061072061172e565b005b34801561072e57600080fd5b506107376117ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561078557600080fd5b5061078e611814565b604051808215151515815260200191505060405180910390f35b3480156107b457600080fd5b506107bd61186c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107fd5780820151818401526020810190506107e2565b50505050905090810190601f16801561082a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561084457600080fd5b50610883600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061190e565b604051808215151515815260200191505060405180910390f35b3480156108a957600080fd5b506108b2611b45565b6040518082815260200191505060405180910390f35b3480156108d457600080fd5b50610913600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b4b565b604051808215151515815260200191505060405180910390f35b34801561093957600080fd5b5061099e600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190505050611b62565b005b3480156109ac57600080fd5b506109cb60048036038101908080359060200190929190505050611c50565b6040518082815260200191505060405180910390f35b3480156109ed57600080fd5b506109f6611c95565b6040518082815260200191505060405180910390f35b348015610a1857600080fd5b50610a21611c9b565b60405180826000191660001916815260200191505060405180910390f35b348015610a4b57600080fd5b50610a80600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ca1565b005b348015610a8e57600080fd5b50610a97611e18565b6040518082815260200191505060405180910390f35b348015610ab957600080fd5b50610adc6004803603810190808035600019169060200190929190505050611e1e565b604051808215151515815260200191505060405180910390f35b610b1460048036038101908080359060200190929190505050611e71565b6040518082815260200191505060405180910390f35b348015610b3657600080fd5b50610b8b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f64565b6040518082815260200191505060405180910390f35b348015610bad57600080fd5b50610bcc60048036038101908080359060200190929190505050611feb565b6040518082815260200191505060405180910390f35b348015610bee57600080fd5b50610c23600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121ec565b005b6060609b8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610cbd5780601f10610c9257610100808354040283529160200191610cbd565b820191906000526020600020905b815481529060010190602001808311610ca057829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610d0457600080fd5b81606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60d15481565b60d35481565b60008060019054906101000a900460ff1680610e205750610e1f61220b565b5b80610e3757506000809054906101000a900460ff16155b1515610ed1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff021916908315150217905550610f2384848461221c565b80600060016101000a81548160ff02191690831515021790555050505050565b6000606854905090565b6000606760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610fda57600080fd5b61106982606760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239d90919063ffffffff16565b606760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110f48484846123be565b600190509392505050565b600061113d60d05461112f61112485611116610f43565b6125dc90919063ffffffff16565b60d15460d3546125fd565b61239d90919063ffffffff16565b9050919050565b6000609d60009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561119857600080fd5b61122782606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125dc90919063ffffffff16565b606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008060019054906101000a900460ff16806113b257506113b161220b565b5b806113c957506000809054906101000a900460ff16155b1515611463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055506114b333611ca1565b6114be888888610e00565b8460d1819055508360d2819055508260d3819055508160d48190555080600060016101000a81548160ff0219169083151502179055505050505050505050565b6000611509826110ff565b90508034101515156115a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6115b33383612661565b6115c5336115bf6117ea565b846123be565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309183423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015611661578082015181840152602081019050611646565b50505050905090810190601f16801561168e5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b60008060006116b68460d15460d3546125fd565b91506116c78460d25460d4546125fd565b90506116dc818361239d90919063ffffffff16565b92505050919050565b6000606660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611736611814565b151561174157600080fd5b603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6060609c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119045780601f106118d957610100808354040283529160200191611904565b820191906000526020600020905b8154815290600101906020018083116118e757829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561194b57600080fd5b6119da82606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239d90919063ffffffff16565b606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60d45481565b6000611b583384846123be565b6001905092915050565b611b7433611b6e6117ea565b836123be565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309182423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015611c10578082015181840152602081019050611bf5565b50505050905090810190601f168015611c3d5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b6000611c8e611c7d611c7284611c64610f43565b61239d90919063ffffffff16565b60d25460d4546125fd565b60d05461239d90919063ffffffff16565b9050919050565b60d25481565b60d55481565b60008060019054906101000a900460ff1680611cc15750611cc061220b565b5b80611cd857506000809054906101000a900460ff16155b1515611d72576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548160ff0219169083151502179055505050565b60d05481565b6000611e286117ea565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e6157600080fd5b8160d58160001916905550919050565b600080600080611e87611e82610f43565b6116a2565b9250611e92856127a1565b9350611ea4611e9f610f43565b6116a2565b9150611eb9838361239d90919063ffffffff16565b9050611ed08160d05461239d90919063ffffffff16565b60d081905550611ede6117ea565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f23573d6000803e3d6000fd5b50427f698e6ae5d786c1b7ebbb3f65f5c53b321f0c2d2cc5de830ede8183fac06ec425826040518082815260200191505060405180910390a2505050919050565b6000606760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000808211151561208a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d757374207370656e64206e6f6e2d7a65726f20616d6f756e74206f6620746f81526020017f6b656e732e00000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81612094336116e5565b10151515612130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f53656e64657220646f6573206e6f74206861766520656e6f75676820746f6b6581526020017f6e7320746f207370656e642e000000000000000000000000000000000000000081525060400191505060405180910390fd5b61213982611c50565b90506121508160d05461239d90919063ffffffff16565b60d08190555061216033836129b5565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121a6573d6000803e3d6000fd5b50427f5501bc527b3cba3e6befc13767fc7728d2de83aad635948271290a5ebd9653018383604051808381526020018281526020019250505060405180910390a2919050565b6121f4611814565b15156121ff57600080fd5b61220881612b43565b50565b600080303b90506000811491505090565b60008060019054906101000a900460ff168061223c575061223b61220b565b5b8061225357506000809054906101000a900460ff16155b15156122ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555083609b908051906020019061234a929190612c69565b5082609c9080519060200190612361929190612c69565b5081609d60006101000a81548160ff021916908360ff16021790555080600060016101000a81548160ff02191690831515021790555050505050565b6000808383111515156123af57600080fd5b82840390508091505092915050565b606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561240c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561244857600080fd5b61249a81606660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239d90919063ffffffff16565b606660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061252f81606660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125dc90919063ffffffff16565b606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008082840190508381101515156125f357600080fd5b8091505092915050565b6000806126146001856125dc90919063ffffffff16565b9050612657670de0b6b3a76400006126498561263b85868b0a612c3f90919063ffffffff16565b612c3f90919063ffffffff16565b612c3f90919063ffffffff16565b9150509392505050565b60008273ffffffffffffffffffffffffffffffffffffffff161415151561268757600080fd5b61269c816068546125dc90919063ffffffff16565b6068819055506126f481606660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125dc90919063ffffffff16565b606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008082111515612840576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742072657175657374206e6f6e2d7a65726f20616d6f756e74206f662081526020017f746f6b656e732e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b612849826110ff565b90508034101515156128e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f446964206e6f742073656e6420656e6f75676820657468657220746f2062757981526020017f210000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6128fe8160d0546125dc90919063ffffffff16565b60d08190555061290e3383612661565b80341115612970573373ffffffffffffffffffffffffffffffffffffffff166108fc612943833461239d90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561296e573d6000803e3d6000fd5b505b427fef06a9ba77137aabff72e359d8cc6f2af40b4135811720e6efe22ae19692b5978383604051808381526020018281526020019250505060405180910390a2919050565b60008273ffffffffffffffffffffffffffffffffffffffff16141515156129db57600080fd5b606660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515612a2957600080fd5b612a3e8160685461239d90919063ffffffff16565b606881905550612a9681606660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461239d90919063ffffffff16565b606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612b7f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080600083111515612c5157600080fd5b8284811515612c5c57fe5b0490508091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612caa57805160ff1916838001178555612cd8565b82800160010185558215612cd8579182015b82811115612cd7578251825591602001919060010190612cbc565b5b509050612ce59190612ce9565b5090565b612d0b91905b80821115612d07576000816000905550600101612cef565b5090565b905600a165627a7a723058201b1389fba8aa51230250958752fd77c28ea73812e1ecfcbe6837e2d18f7100b40029a165627a7a72305820e383c2a8de9c761c6ce746a10d550d3f783f48890d40fccf9daa159df819488c0029", "sourceMap": "83:686:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;83:686:3;;;;;;;", "deployedSourceMap": "83:686:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;184:47:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;184:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;237:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;237:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;350:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;350:99:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;350:99:0;;;;;;;;;;;;;;;;;459:308:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;459:308:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;184:47:0;;;;;;;;;;;;;;;;;;;;;;:::o;237:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;350:99::-;401:9;428:14;421:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;350:99;:::o;459:308:3:-;553:20;624:6;632:5;639:7;648:10;604:55;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;604:55:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;604:55:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;604:55:3;589:70;;678:22;687:12;678:8;:22::i;:::-;737:10;715:45;;;723:12;749:3;754:5;715:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;715:45:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;459:308;;;;;:::o;612:223:0:-;717:4;684:15;:30;700:13;684:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;731:14;751:13;731:34;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;731:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;780:48;802:10;814:13;780:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;612:223;:::o;83:686:3:-;;;;;;;;;;:::o", "source": "pragma solidity ^0.4.24;\n\nimport \"./Factory.sol\";\nimport \"./PersonalEconomy.sol\";\n\ncontract PersonalEconomyFactory is Factory {\n\n event Created(address token_address, address indexed owner_address, uint256 time, string name);\n\n /*\n * Public functions\n */\n /// @dev Allows verified creation of custom token.\n /// @param _name String for token name.\n /// @param _symbol String for token symbol.\n /// @return Returns token address.\n function create(bytes32 _mhash, string _name, string _symbol)\n public\n returns (address tokenAddress)\n {\n tokenAddress = new PersonalEconomy(_mhash, _name, _symbol, msg.sender);\n \n register(tokenAddress);\n emit Created(tokenAddress, msg.sender, now, _name);\n }\n}\n", - "sourcePath": "/home/achill/Arena_Master/Arena/contracts/PersonalEconomyFactory.sol", + "sourcePath": "/home/volt/workspaces/convergentcx/Arena/contracts/PersonalEconomyFactory.sol", "ast": { - "absolutePath": "/home/achill/Arena_Master/Arena/contracts/PersonalEconomyFactory.sol", + "absolutePath": "/home/volt/workspaces/convergentcx/Arena/contracts/PersonalEconomyFactory.sol", "exportedSymbols": { "PersonalEconomyFactory": [ - 285 + 291 ] }, - "id": 286, + "id": 292, "nodeType": "SourceUnit", "nodes": [ { - "id": 235, + "id": 241, "literals": [ "solidity", "^", @@ -159,23 +159,23 @@ "src": "0:24:3" }, { - "absolutePath": "/home/achill/Arena_Master/Arena/contracts/Factory.sol", + "absolutePath": "/home/volt/workspaces/convergentcx/Arena/contracts/Factory.sol", "file": "./Factory.sol", - "id": 236, + "id": 242, "nodeType": "ImportDirective", - "scope": 286, + "scope": 292, "sourceUnit": 49, "src": "26:23:3", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/achill/Arena_Master/Arena/contracts/PersonalEconomy.sol", + "absolutePath": "/home/volt/workspaces/convergentcx/Arena/contracts/PersonalEconomy.sol", "file": "./PersonalEconomy.sol", - "id": 237, + "id": 243, "nodeType": "ImportDirective", - "scope": 286, - "sourceUnit": 234, + "scope": 292, + "sourceUnit": 240, "src": "50:31:3", "symbolAliases": [], "unitAlias": "" @@ -186,7 +186,7 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 238, + "id": 244, "name": "Factory", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 48, @@ -196,21 +196,21 @@ "typeString": "contract Factory" } }, - "id": 239, + "id": 245, "nodeType": "InheritanceSpecifier", "src": "118:7:3" } ], "contractDependencies": [ 48, - 233 + 239 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 285, + "id": 291, "linearizedBaseContracts": [ - 285, + 291, 48 ], "name": "PersonalEconomyFactory", @@ -219,20 +219,20 @@ { "anonymous": false, "documentation": null, - "id": 249, + "id": 255, "name": "Created", "nodeType": "EventDefinition", "parameters": { - "id": 248, + "id": 254, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 241, + "id": 247, "indexed": false, "name": "token_address", "nodeType": "VariableDeclaration", - "scope": 249, + "scope": 255, "src": "147:21:3", "stateVariable": false, "storageLocation": "default", @@ -241,7 +241,7 @@ "typeString": "address" }, "typeName": { - "id": 240, + "id": 246, "name": "address", "nodeType": "ElementaryTypeName", "src": "147:7:3", @@ -255,11 +255,11 @@ }, { "constant": false, - "id": 243, + "id": 249, "indexed": true, "name": "owner_address", "nodeType": "VariableDeclaration", - "scope": 249, + "scope": 255, "src": "170:29:3", "stateVariable": false, "storageLocation": "default", @@ -268,7 +268,7 @@ "typeString": "address" }, "typeName": { - "id": 242, + "id": 248, "name": "address", "nodeType": "ElementaryTypeName", "src": "170:7:3", @@ -282,11 +282,11 @@ }, { "constant": false, - "id": 245, + "id": 251, "indexed": false, "name": "time", "nodeType": "VariableDeclaration", - "scope": 249, + "scope": 255, "src": "201:12:3", "stateVariable": false, "storageLocation": "default", @@ -295,7 +295,7 @@ "typeString": "uint256" }, "typeName": { - "id": 244, + "id": 250, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "201:7:3", @@ -309,11 +309,11 @@ }, { "constant": false, - "id": 247, + "id": 253, "indexed": false, "name": "name", "nodeType": "VariableDeclaration", - "scope": 249, + "scope": 255, "src": "215:11:3", "stateVariable": false, "storageLocation": "default", @@ -322,7 +322,7 @@ "typeString": "string" }, "typeName": { - "id": 246, + "id": 252, "name": "string", "nodeType": "ElementaryTypeName", "src": "215:6:3", @@ -341,25 +341,25 @@ }, { "body": { - "id": 283, + "id": 289, "nodeType": "Block", "src": "579:188:3", "statements": [ { "expression": { "argumentTypes": null, - "id": 269, + "id": 275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 260, + "id": 266, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 258, + "referencedDeclaration": 264, "src": "589:12:3", "typeDescriptions": { "typeIdentifier": "t_address", @@ -373,11 +373,11 @@ "arguments": [ { "argumentTypes": null, - "id": 263, + "id": 269, "name": "_mhash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 251, + "referencedDeclaration": 257, "src": "624:6:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -386,11 +386,11 @@ }, { "argumentTypes": null, - "id": 264, + "id": 270, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 253, + "referencedDeclaration": 259, "src": "632:5:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -399,11 +399,11 @@ }, { "argumentTypes": null, - "id": 265, + "id": 271, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 255, + "referencedDeclaration": 261, "src": "639:7:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -414,18 +414,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 266, + "id": 272, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, + "referencedDeclaration": 1622, "src": "648:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 267, + "id": 273, "isConstant": false, "isLValue": false, "isPure": false, @@ -459,7 +459,7 @@ "typeString": "address" } ], - "id": 262, + "id": 268, "isConstant": false, "isLValue": false, "isPure": false, @@ -467,23 +467,23 @@ "nodeType": "NewExpression", "src": "604:19:3", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$returns$_t_contract$_PersonalEconomy_$233_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$returns$_t_contract$_PersonalEconomy_$239_$", "typeString": "function (bytes32,string memory,string memory,address) returns (contract PersonalEconomy)" }, "typeName": { "contractScope": null, - "id": 261, + "id": 267, "name": "PersonalEconomy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 233, + "referencedDeclaration": 239, "src": "608:15:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_PersonalEconomy_$233", + "typeIdentifier": "t_contract$_PersonalEconomy_$239", "typeString": "contract PersonalEconomy" } } }, - "id": 268, + "id": 274, "isConstant": false, "isLValue": false, "isPure": false, @@ -493,7 +493,7 @@ "nodeType": "FunctionCall", "src": "604:55:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_PersonalEconomy_$233", + "typeIdentifier": "t_contract$_PersonalEconomy_$239", "typeString": "contract PersonalEconomy" } }, @@ -503,7 +503,7 @@ "typeString": "address" } }, - "id": 270, + "id": 276, "nodeType": "ExpressionStatement", "src": "589:70:3" }, @@ -513,11 +513,11 @@ "arguments": [ { "argumentTypes": null, - "id": 272, + "id": 278, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 258, + "referencedDeclaration": 264, "src": "687:12:3", "typeDescriptions": { "typeIdentifier": "t_address", @@ -532,7 +532,7 @@ "typeString": "address" } ], - "id": 271, + "id": 277, "name": "register", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -543,7 +543,7 @@ "typeString": "function (address)" } }, - "id": 273, + "id": 279, "isConstant": false, "isLValue": false, "isPure": false, @@ -557,7 +557,7 @@ "typeString": "tuple()" } }, - "id": 274, + "id": 280, "nodeType": "ExpressionStatement", "src": "678:22:3" }, @@ -567,11 +567,11 @@ "arguments": [ { "argumentTypes": null, - "id": 276, + "id": 282, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 258, + "referencedDeclaration": 264, "src": "723:12:3", "typeDescriptions": { "typeIdentifier": "t_address", @@ -582,18 +582,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 277, + "id": 283, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, + "referencedDeclaration": 1622, "src": "737:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 278, + "id": 284, "isConstant": false, "isLValue": false, "isPure": false, @@ -609,11 +609,11 @@ }, { "argumentTypes": null, - "id": 279, + "id": 285, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1297, + "referencedDeclaration": 1624, "src": "749:3:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -622,11 +622,11 @@ }, { "argumentTypes": null, - "id": 280, + "id": 286, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 253, + "referencedDeclaration": 259, "src": "754:5:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -653,18 +653,18 @@ "typeString": "string memory" } ], - "id": 275, + "id": 281, "name": "Created", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 249, + "referencedDeclaration": 255, "src": "715:7:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (address,address,uint256,string memory)" } }, - "id": 281, + "id": 287, "isConstant": false, "isLValue": false, "isPure": false, @@ -678,14 +678,14 @@ "typeString": "tuple()" } }, - "id": 282, + "id": 288, "nodeType": "EmitStatement", "src": "710:50:3" } ] }, "documentation": "@dev Allows verified creation of custom token.\n @param _name String for token name.\n @param _symbol String for token symbol.\n @return Returns token address.", - "id": 284, + "id": 290, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -693,15 +693,15 @@ "name": "create", "nodeType": "FunctionDefinition", "parameters": { - "id": 256, + "id": 262, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 251, + "id": 257, "name": "_mhash", "nodeType": "VariableDeclaration", - "scope": 284, + "scope": 290, "src": "475:14:3", "stateVariable": false, "storageLocation": "default", @@ -710,7 +710,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 250, + "id": 256, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "475:7:3", @@ -724,10 +724,10 @@ }, { "constant": false, - "id": 253, + "id": 259, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 284, + "scope": 290, "src": "491:12:3", "stateVariable": false, "storageLocation": "default", @@ -736,7 +736,7 @@ "typeString": "string" }, "typeName": { - "id": 252, + "id": 258, "name": "string", "nodeType": "ElementaryTypeName", "src": "491:6:3", @@ -750,10 +750,10 @@ }, { "constant": false, - "id": 255, + "id": 261, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 284, + "scope": 290, "src": "505:14:3", "stateVariable": false, "storageLocation": "default", @@ -762,7 +762,7 @@ "typeString": "string" }, "typeName": { - "id": 254, + "id": 260, "name": "string", "nodeType": "ElementaryTypeName", "src": "505:6:3", @@ -779,15 +779,15 @@ }, "payable": false, "returnParameters": { - "id": 259, + "id": 265, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 258, + "id": 264, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 284, + "scope": 290, "src": "553:20:3", "stateVariable": false, "storageLocation": "default", @@ -796,7 +796,7 @@ "typeString": "address" }, "typeName": { - "id": 257, + "id": 263, "name": "address", "nodeType": "ElementaryTypeName", "src": "553:7:3", @@ -811,31 +811,31 @@ ], "src": "552:22:3" }, - "scope": 285, + "scope": 291, "src": "459:308:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 286, + "scope": 292, "src": "83:686:3" } ], "src": "0:770:3" }, "legacyAST": { - "absolutePath": "/home/achill/Arena_Master/Arena/contracts/PersonalEconomyFactory.sol", + "absolutePath": "/home/volt/workspaces/convergentcx/Arena/contracts/PersonalEconomyFactory.sol", "exportedSymbols": { "PersonalEconomyFactory": [ - 285 + 291 ] }, - "id": 286, + "id": 292, "nodeType": "SourceUnit", "nodes": [ { - "id": 235, + "id": 241, "literals": [ "solidity", "^", @@ -846,23 +846,23 @@ "src": "0:24:3" }, { - "absolutePath": "/home/achill/Arena_Master/Arena/contracts/Factory.sol", + "absolutePath": "/home/volt/workspaces/convergentcx/Arena/contracts/Factory.sol", "file": "./Factory.sol", - "id": 236, + "id": 242, "nodeType": "ImportDirective", - "scope": 286, + "scope": 292, "sourceUnit": 49, "src": "26:23:3", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "/home/achill/Arena_Master/Arena/contracts/PersonalEconomy.sol", + "absolutePath": "/home/volt/workspaces/convergentcx/Arena/contracts/PersonalEconomy.sol", "file": "./PersonalEconomy.sol", - "id": 237, + "id": 243, "nodeType": "ImportDirective", - "scope": 286, - "sourceUnit": 234, + "scope": 292, + "sourceUnit": 240, "src": "50:31:3", "symbolAliases": [], "unitAlias": "" @@ -873,7 +873,7 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 238, + "id": 244, "name": "Factory", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 48, @@ -883,21 +883,21 @@ "typeString": "contract Factory" } }, - "id": 239, + "id": 245, "nodeType": "InheritanceSpecifier", "src": "118:7:3" } ], "contractDependencies": [ 48, - 233 + 239 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 285, + "id": 291, "linearizedBaseContracts": [ - 285, + 291, 48 ], "name": "PersonalEconomyFactory", @@ -906,20 +906,20 @@ { "anonymous": false, "documentation": null, - "id": 249, + "id": 255, "name": "Created", "nodeType": "EventDefinition", "parameters": { - "id": 248, + "id": 254, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 241, + "id": 247, "indexed": false, "name": "token_address", "nodeType": "VariableDeclaration", - "scope": 249, + "scope": 255, "src": "147:21:3", "stateVariable": false, "storageLocation": "default", @@ -928,7 +928,7 @@ "typeString": "address" }, "typeName": { - "id": 240, + "id": 246, "name": "address", "nodeType": "ElementaryTypeName", "src": "147:7:3", @@ -942,11 +942,11 @@ }, { "constant": false, - "id": 243, + "id": 249, "indexed": true, "name": "owner_address", "nodeType": "VariableDeclaration", - "scope": 249, + "scope": 255, "src": "170:29:3", "stateVariable": false, "storageLocation": "default", @@ -955,7 +955,7 @@ "typeString": "address" }, "typeName": { - "id": 242, + "id": 248, "name": "address", "nodeType": "ElementaryTypeName", "src": "170:7:3", @@ -969,11 +969,11 @@ }, { "constant": false, - "id": 245, + "id": 251, "indexed": false, "name": "time", "nodeType": "VariableDeclaration", - "scope": 249, + "scope": 255, "src": "201:12:3", "stateVariable": false, "storageLocation": "default", @@ -982,7 +982,7 @@ "typeString": "uint256" }, "typeName": { - "id": 244, + "id": 250, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "201:7:3", @@ -996,11 +996,11 @@ }, { "constant": false, - "id": 247, + "id": 253, "indexed": false, "name": "name", "nodeType": "VariableDeclaration", - "scope": 249, + "scope": 255, "src": "215:11:3", "stateVariable": false, "storageLocation": "default", @@ -1009,7 +1009,7 @@ "typeString": "string" }, "typeName": { - "id": 246, + "id": 252, "name": "string", "nodeType": "ElementaryTypeName", "src": "215:6:3", @@ -1028,25 +1028,25 @@ }, { "body": { - "id": 283, + "id": 289, "nodeType": "Block", "src": "579:188:3", "statements": [ { "expression": { "argumentTypes": null, - "id": 269, + "id": 275, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 260, + "id": 266, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 258, + "referencedDeclaration": 264, "src": "589:12:3", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1060,11 +1060,11 @@ "arguments": [ { "argumentTypes": null, - "id": 263, + "id": 269, "name": "_mhash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 251, + "referencedDeclaration": 257, "src": "624:6:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -1073,11 +1073,11 @@ }, { "argumentTypes": null, - "id": 264, + "id": 270, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 253, + "referencedDeclaration": 259, "src": "632:5:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -1086,11 +1086,11 @@ }, { "argumentTypes": null, - "id": 265, + "id": 271, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 255, + "referencedDeclaration": 261, "src": "639:7:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -1101,18 +1101,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 266, + "id": 272, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, + "referencedDeclaration": 1622, "src": "648:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 267, + "id": 273, "isConstant": false, "isLValue": false, "isPure": false, @@ -1146,7 +1146,7 @@ "typeString": "address" } ], - "id": 262, + "id": 268, "isConstant": false, "isLValue": false, "isPure": false, @@ -1154,23 +1154,23 @@ "nodeType": "NewExpression", "src": "604:19:3", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$returns$_t_contract$_PersonalEconomy_$233_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$returns$_t_contract$_PersonalEconomy_$239_$", "typeString": "function (bytes32,string memory,string memory,address) returns (contract PersonalEconomy)" }, "typeName": { "contractScope": null, - "id": 261, + "id": 267, "name": "PersonalEconomy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 233, + "referencedDeclaration": 239, "src": "608:15:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_PersonalEconomy_$233", + "typeIdentifier": "t_contract$_PersonalEconomy_$239", "typeString": "contract PersonalEconomy" } } }, - "id": 268, + "id": 274, "isConstant": false, "isLValue": false, "isPure": false, @@ -1180,7 +1180,7 @@ "nodeType": "FunctionCall", "src": "604:55:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_PersonalEconomy_$233", + "typeIdentifier": "t_contract$_PersonalEconomy_$239", "typeString": "contract PersonalEconomy" } }, @@ -1190,7 +1190,7 @@ "typeString": "address" } }, - "id": 270, + "id": 276, "nodeType": "ExpressionStatement", "src": "589:70:3" }, @@ -1200,11 +1200,11 @@ "arguments": [ { "argumentTypes": null, - "id": 272, + "id": 278, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 258, + "referencedDeclaration": 264, "src": "687:12:3", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1219,7 +1219,7 @@ "typeString": "address" } ], - "id": 271, + "id": 277, "name": "register", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1230,7 +1230,7 @@ "typeString": "function (address)" } }, - "id": 273, + "id": 279, "isConstant": false, "isLValue": false, "isPure": false, @@ -1244,7 +1244,7 @@ "typeString": "tuple()" } }, - "id": 274, + "id": 280, "nodeType": "ExpressionStatement", "src": "678:22:3" }, @@ -1254,11 +1254,11 @@ "arguments": [ { "argumentTypes": null, - "id": 276, + "id": 282, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 258, + "referencedDeclaration": 264, "src": "723:12:3", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1269,18 +1269,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 277, + "id": 283, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, + "referencedDeclaration": 1622, "src": "737:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 278, + "id": 284, "isConstant": false, "isLValue": false, "isPure": false, @@ -1296,11 +1296,11 @@ }, { "argumentTypes": null, - "id": 279, + "id": 285, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1297, + "referencedDeclaration": 1624, "src": "749:3:3", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1309,11 +1309,11 @@ }, { "argumentTypes": null, - "id": 280, + "id": 286, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 253, + "referencedDeclaration": 259, "src": "754:5:3", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", @@ -1340,18 +1340,18 @@ "typeString": "string memory" } ], - "id": 275, + "id": 281, "name": "Created", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 249, + "referencedDeclaration": 255, "src": "715:7:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (address,address,uint256,string memory)" } }, - "id": 281, + "id": 287, "isConstant": false, "isLValue": false, "isPure": false, @@ -1365,14 +1365,14 @@ "typeString": "tuple()" } }, - "id": 282, + "id": 288, "nodeType": "EmitStatement", "src": "710:50:3" } ] }, "documentation": "@dev Allows verified creation of custom token.\n @param _name String for token name.\n @param _symbol String for token symbol.\n @return Returns token address.", - "id": 284, + "id": 290, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1380,15 +1380,15 @@ "name": "create", "nodeType": "FunctionDefinition", "parameters": { - "id": 256, + "id": 262, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 251, + "id": 257, "name": "_mhash", "nodeType": "VariableDeclaration", - "scope": 284, + "scope": 290, "src": "475:14:3", "stateVariable": false, "storageLocation": "default", @@ -1397,7 +1397,7 @@ "typeString": "bytes32" }, "typeName": { - "id": 250, + "id": 256, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "475:7:3", @@ -1411,10 +1411,10 @@ }, { "constant": false, - "id": 253, + "id": 259, "name": "_name", "nodeType": "VariableDeclaration", - "scope": 284, + "scope": 290, "src": "491:12:3", "stateVariable": false, "storageLocation": "default", @@ -1423,7 +1423,7 @@ "typeString": "string" }, "typeName": { - "id": 252, + "id": 258, "name": "string", "nodeType": "ElementaryTypeName", "src": "491:6:3", @@ -1437,10 +1437,10 @@ }, { "constant": false, - "id": 255, + "id": 261, "name": "_symbol", "nodeType": "VariableDeclaration", - "scope": 284, + "scope": 290, "src": "505:14:3", "stateVariable": false, "storageLocation": "default", @@ -1449,7 +1449,7 @@ "typeString": "string" }, "typeName": { - "id": 254, + "id": 260, "name": "string", "nodeType": "ElementaryTypeName", "src": "505:6:3", @@ -1466,15 +1466,15 @@ }, "payable": false, "returnParameters": { - "id": 259, + "id": 265, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 258, + "id": 264, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 284, + "scope": 290, "src": "553:20:3", "stateVariable": false, "storageLocation": "default", @@ -1483,7 +1483,7 @@ "typeString": "address" }, "typeName": { - "id": 257, + "id": 263, "name": "address", "nodeType": "ElementaryTypeName", "src": "553:7:3", @@ -1498,14 +1498,14 @@ ], "src": "552:22:3" }, - "scope": 285, + "scope": 291, "src": "459:308:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 286, + "scope": 292, "src": "83:686:3" } ], @@ -1516,15 +1516,21 @@ "version": "0.4.25+commit.59dbf8f1.Emscripten.clang" }, "networks": { - "1544898413424": { + "1545012223694": { + "events": {}, + "links": {}, + "address": "0xda759FeD9E4cDA2d841Ecc7ac8C26bb2Be9e9365", + "transactionHash": "0xf1f3a7a0f3db0eee9e114d382183ab43bef0494ee192a802b8a93a78eb0a14e6" + }, + "1545014466140": { "events": {}, "links": {}, - "address": "0x32824CF8C6f2Ed58A3584379D34e5c2f0e4525ba", - "transactionHash": "0x1eed1ce9d8d1ffa470360a7f329da03394cac417996e4d0b773f99b84a2883fc" + "address": "0xE4b47C47F8438C45790049629E0d2B22b2B55CC3", + "transactionHash": "0x310d9ecfd263b4264f94ffaaf5586616b831597dfdb553418387d9cf6ec43af5" } }, "schemaVersion": "3.0.0-beta.1", - "updatedAt": "2018-12-16T19:14:52.066Z", + "updatedAt": "2018-12-17T02:42:21.227Z", "devdoc": { "methods": { "create(bytes32,string,string)": { diff --git a/src/build/contracts/SafeMath.json b/src/build/contracts/SafeMath.json index 9631929..a325655 100644 --- a/src/build/contracts/SafeMath.json +++ b/src/build/contracts/SafeMath.json @@ -1,24 +1,24 @@ { "contractName": "SafeMath", "abi": [], - "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820ed2e8442f9982a43e2504067fa63a2f64a13c7ffba3323ae30639e406b20e54c0029", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820ed2e8442f9982a43e2504067fa63a2f64a13c7ffba3323ae30639e406b20e54c0029", - "sourceMap": "117:1531:6:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", - "deployedSourceMap": "117:1531:6:-;;;;;;;;", - "source": "pragma solidity ^0.4.24;\n\n/**\n * @title SafeMath\n * @dev Math operations with safety checks that revert on error\n */\nlibrary SafeMath {\n\n /**\n * @dev Multiplies two numbers, reverts on overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\n if (a == 0) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b);\n\n return c;\n }\n\n /**\n * @dev Integer division of two numbers truncating the quotient, reverts on division by zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0); // Solidity only automatically asserts when dividing by 0\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a);\n uint256 c = a - b;\n\n return c;\n }\n\n /**\n * @dev Adds two numbers, reverts on overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a);\n\n return c;\n }\n\n /**\n * @dev Divides two numbers and returns the remainder (unsigned integer modulo),\n * reverts when dividing by zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b != 0);\n return a % b;\n }\n}\n", - "sourcePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058201a29d23570ccf011d8d8a5aa81a63588d3aebfc577a0adefbffdb2f45c6ad1e40029", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a723058201a29d23570ccf011d8d8a5aa81a63588d3aebfc577a0adefbffdb2f45c6ad1e40029", + "sourceMap": "118:1531:6:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24", + "deployedSourceMap": "118:1531:6:-;;;;;;;;", + "source": "pragma solidity ^0.4.24;\n\n\n/**\n * @title SafeMath\n * @dev Math operations with safety checks that revert on error\n */\nlibrary SafeMath {\n\n /**\n * @dev Multiplies two numbers, reverts on overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\n if (a == 0) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b);\n\n return c;\n }\n\n /**\n * @dev Integer division of two numbers truncating the quotient, reverts on division by zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0); // Solidity only automatically asserts when dividing by 0\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a);\n uint256 c = a - b;\n\n return c;\n }\n\n /**\n * @dev Adds two numbers, reverts on overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a);\n\n return c;\n }\n\n /**\n * @dev Divides two numbers and returns the remainder (unsigned integer modulo),\n * reverts when dividing by zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b != 0);\n return a % b;\n }\n}\n", + "sourcePath": "openzeppelin-eth/contracts/math/SafeMath.sol", "ast": { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "absolutePath": "openzeppelin-eth/contracts/math/SafeMath.sol", "exportedSymbols": { "SafeMath": [ - 709 + 851 ] }, - "id": 710, + "id": 852, "nodeType": "SourceUnit", "nodes": [ { - "id": 583, + "id": 725, "literals": [ "solidity", "^", @@ -34,18 +34,18 @@ "contractKind": "library", "documentation": "@title SafeMath\n@dev Math operations with safety checks that revert on error", "fullyImplemented": true, - "id": 709, + "id": 851, "linearizedBaseContracts": [ - 709 + 851 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 615, + "id": 757, "nodeType": "Block", - "src": "271:314:6", + "src": "272:314:6", "statements": [ { "condition": { @@ -54,19 +54,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 594, + "id": 736, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 592, + "id": 734, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 585, - "src": "486:1:6", + "referencedDeclaration": 727, + "src": "487:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -77,14 +77,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 593, + "id": 735, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "491:1:6", + "src": "492:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -92,33 +92,33 @@ }, "value": "0" }, - "src": "486:6:6", + "src": "487:6:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 598, + "id": 740, "nodeType": "IfStatement", - "src": "482:35:6", + "src": "483:35:6", "trueBody": { - "id": 597, + "id": 739, "nodeType": "Block", - "src": "494:23:6", + "src": "495:23:6", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "30", - "id": 595, + "id": 737, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "509:1:6", + "src": "510:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -126,26 +126,26 @@ }, "value": "0" }, - "functionReturnParameters": 591, - "id": 596, + "functionReturnParameters": 733, + "id": 738, "nodeType": "Return", - "src": "502:8:6" + "src": "503:8:6" } ] } }, { "assignments": [ - 600 + 742 ], "declarations": [ { "constant": false, - "id": 600, + "id": 742, "name": "c", "nodeType": "VariableDeclaration", - "scope": 616, - "src": "523:9:6", + "scope": 758, + "src": "524:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -153,10 +153,10 @@ "typeString": "uint256" }, "typeName": { - "id": 599, + "id": 741, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "523:7:6", + "src": "524:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -166,26 +166,26 @@ "visibility": "internal" } ], - "id": 604, + "id": 746, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 603, + "id": 745, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 601, + "id": 743, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 585, - "src": "535:1:6", + "referencedDeclaration": 727, + "src": "536:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -195,25 +195,25 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 602, + "id": 744, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 587, - "src": "539:1:6", + "referencedDeclaration": 729, + "src": "540:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "535:5:6", + "src": "536:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "523:17:6" + "src": "524:17:6" }, { "expression": { @@ -225,7 +225,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 610, + "id": 752, "isConstant": false, "isLValue": false, "isPure": false, @@ -236,19 +236,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 608, + "id": 750, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 606, + "id": 748, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "554:1:6", + "referencedDeclaration": 742, + "src": "555:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -258,18 +258,18 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 607, + "id": 749, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 585, - "src": "558:1:6", + "referencedDeclaration": 727, + "src": "559:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "554:5:6", + "src": "555:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -279,18 +279,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 609, + "id": 751, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 587, - "src": "563:1:6", + "referencedDeclaration": 729, + "src": "564:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "554:10:6", + "src": "555:10:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -304,21 +304,21 @@ "typeString": "bool" } ], - "id": 605, + "id": 747, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "546:7:6", + "referencedDeclaration": 1625, + "src": "547:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 611, + "id": 753, "isConstant": false, "isLValue": false, "isPure": false, @@ -326,39 +326,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "546:19:6", + "src": "547:19:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 612, + "id": 754, "nodeType": "ExpressionStatement", - "src": "546:19:6" + "src": "547:19:6" }, { "expression": { "argumentTypes": null, - "id": 613, + "id": 755, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "579:1:6", + "referencedDeclaration": 742, + "src": "580:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 591, - "id": 614, + "functionReturnParameters": 733, + "id": 756, "nodeType": "Return", - "src": "572:8:6" + "src": "573:8:6" } ] }, "documentation": "@dev Multiplies two numbers, reverts on overflow.", - "id": 616, + "id": 758, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -366,16 +366,16 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 588, + "id": 730, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 585, + "id": 727, "name": "a", "nodeType": "VariableDeclaration", - "scope": 616, - "src": "217:9:6", + "scope": 758, + "src": "218:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -383,10 +383,10 @@ "typeString": "uint256" }, "typeName": { - "id": 584, + "id": 726, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "217:7:6", + "src": "218:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -397,11 +397,11 @@ }, { "constant": false, - "id": 587, + "id": 729, "name": "b", "nodeType": "VariableDeclaration", - "scope": 616, - "src": "228:9:6", + "scope": 758, + "src": "229:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -409,10 +409,10 @@ "typeString": "uint256" }, "typeName": { - "id": 586, + "id": 728, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "228:7:6", + "src": "229:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -422,20 +422,20 @@ "visibility": "internal" } ], - "src": "216:22:6" + "src": "217:22:6" }, "payable": false, "returnParameters": { - "id": 591, + "id": 733, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 590, + "id": 732, "name": "", "nodeType": "VariableDeclaration", - "scope": 616, - "src": "262:7:6", + "scope": 758, + "src": "263:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -443,10 +443,10 @@ "typeString": "uint256" }, "typeName": { - "id": 589, + "id": 731, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "262:7:6", + "src": "263:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -456,19 +456,19 @@ "visibility": "internal" } ], - "src": "261:9:6" + "src": "262:9:6" }, - "scope": 709, - "src": "204:381:6", + "scope": 851, + "src": "205:381:6", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 639, + "id": 781, "nodeType": "Block", - "src": "762:203:6", + "src": "763:203:6", "statements": [ { "expression": { @@ -480,19 +480,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 628, + "id": 770, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 626, + "id": 768, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 620, - "src": "776:1:6", + "referencedDeclaration": 762, + "src": "777:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -503,14 +503,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 627, + "id": 769, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "780:1:6", + "src": "781:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -518,7 +518,7 @@ }, "value": "0" }, - "src": "776:5:6", + "src": "777:5:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -532,21 +532,21 @@ "typeString": "bool" } ], - "id": 625, + "id": 767, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "768:7:6", + "referencedDeclaration": 1625, + "src": "769:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 629, + "id": 771, "isConstant": false, "isLValue": false, "isPure": false, @@ -554,28 +554,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "768:14:6", + "src": "769:14:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 630, + "id": 772, "nodeType": "ExpressionStatement", - "src": "768:14:6" + "src": "769:14:6" }, { "assignments": [ - 632 + 774 ], "declarations": [ { "constant": false, - "id": 632, + "id": 774, "name": "c", "nodeType": "VariableDeclaration", - "scope": 640, - "src": "846:9:6", + "scope": 782, + "src": "847:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -583,10 +583,10 @@ "typeString": "uint256" }, "typeName": { - "id": 631, + "id": 773, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "846:7:6", + "src": "847:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -596,26 +596,26 @@ "visibility": "internal" } ], - "id": 636, + "id": 778, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 635, + "id": 777, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 633, + "id": 775, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 618, - "src": "858:1:6", + "referencedDeclaration": 760, + "src": "859:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -625,49 +625,49 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 634, + "id": 776, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 620, - "src": "862:1:6", + "referencedDeclaration": 762, + "src": "863:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "858:5:6", + "src": "859:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "846:17:6" + "src": "847:17:6" }, { "expression": { "argumentTypes": null, - "id": 637, + "id": 779, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 632, - "src": "959:1:6", + "referencedDeclaration": 774, + "src": "960:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 624, - "id": 638, + "functionReturnParameters": 766, + "id": 780, "nodeType": "Return", - "src": "952:8:6" + "src": "953:8:6" } ] }, "documentation": "@dev Integer division of two numbers truncating the quotient, reverts on division by zero.", - "id": 640, + "id": 782, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -675,16 +675,16 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 621, + "id": 763, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 618, + "id": 760, "name": "a", "nodeType": "VariableDeclaration", - "scope": 640, - "src": "708:9:6", + "scope": 782, + "src": "709:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -692,10 +692,10 @@ "typeString": "uint256" }, "typeName": { - "id": 617, + "id": 759, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "708:7:6", + "src": "709:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -706,11 +706,11 @@ }, { "constant": false, - "id": 620, + "id": 762, "name": "b", "nodeType": "VariableDeclaration", - "scope": 640, - "src": "719:9:6", + "scope": 782, + "src": "720:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -718,10 +718,10 @@ "typeString": "uint256" }, "typeName": { - "id": 619, + "id": 761, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "719:7:6", + "src": "720:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -731,20 +731,20 @@ "visibility": "internal" } ], - "src": "707:22:6" + "src": "708:22:6" }, "payable": false, "returnParameters": { - "id": 624, + "id": 766, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 623, + "id": 765, "name": "", "nodeType": "VariableDeclaration", - "scope": 640, - "src": "753:7:6", + "scope": 782, + "src": "754:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -752,10 +752,10 @@ "typeString": "uint256" }, "typeName": { - "id": 622, + "id": 764, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "753:7:6", + "src": "754:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -765,19 +765,19 @@ "visibility": "internal" } ], - "src": "752:9:6" + "src": "753:9:6" }, - "scope": 709, - "src": "695:270:6", + "scope": 851, + "src": "696:270:6", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 663, + "id": 805, "nodeType": "Block", - "src": "1145:64:6", + "src": "1146:64:6", "statements": [ { "expression": { @@ -789,19 +789,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 652, + "id": 794, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 650, + "id": 792, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "1159:1:6", + "referencedDeclaration": 786, + "src": "1160:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -811,18 +811,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 651, + "id": 793, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "1164:1:6", + "referencedDeclaration": 784, + "src": "1165:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1159:6:6", + "src": "1160:6:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -836,21 +836,21 @@ "typeString": "bool" } ], - "id": 649, + "id": 791, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "1151:7:6", + "referencedDeclaration": 1625, + "src": "1152:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 653, + "id": 795, "isConstant": false, "isLValue": false, "isPure": false, @@ -858,28 +858,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1151:15:6", + "src": "1152:15:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 654, + "id": 796, "nodeType": "ExpressionStatement", - "src": "1151:15:6" + "src": "1152:15:6" }, { "assignments": [ - 656 + 798 ], "declarations": [ { "constant": false, - "id": 656, + "id": 798, "name": "c", "nodeType": "VariableDeclaration", - "scope": 664, - "src": "1172:9:6", + "scope": 806, + "src": "1173:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -887,10 +887,10 @@ "typeString": "uint256" }, "typeName": { - "id": 655, + "id": 797, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1172:7:6", + "src": "1173:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -900,26 +900,26 @@ "visibility": "internal" } ], - "id": 660, + "id": 802, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 659, + "id": 801, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 657, + "id": 799, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "1184:1:6", + "referencedDeclaration": 784, + "src": "1185:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -929,49 +929,49 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 658, + "id": 800, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "1188:1:6", + "referencedDeclaration": 786, + "src": "1189:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1184:5:6", + "src": "1185:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1172:17:6" + "src": "1173:17:6" }, { "expression": { "argumentTypes": null, - "id": 661, + "id": 803, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 656, - "src": "1203:1:6", + "referencedDeclaration": 798, + "src": "1204:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 648, - "id": 662, + "functionReturnParameters": 790, + "id": 804, "nodeType": "Return", - "src": "1196:8:6" + "src": "1197:8:6" } ] }, "documentation": "@dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).", - "id": 664, + "id": 806, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -979,16 +979,16 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 645, + "id": 787, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 642, + "id": 784, "name": "a", "nodeType": "VariableDeclaration", - "scope": 664, - "src": "1091:9:6", + "scope": 806, + "src": "1092:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -996,10 +996,10 @@ "typeString": "uint256" }, "typeName": { - "id": 641, + "id": 783, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1091:7:6", + "src": "1092:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1010,11 +1010,11 @@ }, { "constant": false, - "id": 644, + "id": 786, "name": "b", "nodeType": "VariableDeclaration", - "scope": 664, - "src": "1102:9:6", + "scope": 806, + "src": "1103:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1022,10 +1022,10 @@ "typeString": "uint256" }, "typeName": { - "id": 643, + "id": 785, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1102:7:6", + "src": "1103:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1035,20 +1035,20 @@ "visibility": "internal" } ], - "src": "1090:22:6" + "src": "1091:22:6" }, "payable": false, "returnParameters": { - "id": 648, + "id": 790, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 647, + "id": 789, "name": "", "nodeType": "VariableDeclaration", - "scope": 664, - "src": "1136:7:6", + "scope": 806, + "src": "1137:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1056,10 +1056,10 @@ "typeString": "uint256" }, "typeName": { - "id": 646, + "id": 788, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1136:7:6", + "src": "1137:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1069,32 +1069,32 @@ "visibility": "internal" } ], - "src": "1135:9:6" + "src": "1136:9:6" }, - "scope": 709, - "src": "1078:131:6", + "scope": 851, + "src": "1079:131:6", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 687, + "id": 829, "nodeType": "Block", - "src": "1339:64:6", + "src": "1340:64:6", "statements": [ { "assignments": [ - 674 + 816 ], "declarations": [ { "constant": false, - "id": 674, + "id": 816, "name": "c", "nodeType": "VariableDeclaration", - "scope": 688, - "src": "1345:9:6", + "scope": 830, + "src": "1346:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1102,10 +1102,10 @@ "typeString": "uint256" }, "typeName": { - "id": 673, + "id": 815, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1345:7:6", + "src": "1346:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1115,26 +1115,26 @@ "visibility": "internal" } ], - "id": 678, + "id": 820, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 677, + "id": 819, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 675, + "id": 817, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "1357:1:6", + "referencedDeclaration": 808, + "src": "1358:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1144,25 +1144,25 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 676, + "id": 818, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "1361:1:6", + "referencedDeclaration": 810, + "src": "1362:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1357:5:6", + "src": "1358:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1345:17:6" + "src": "1346:17:6" }, { "expression": { @@ -1174,19 +1174,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 682, + "id": 824, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 680, + "id": 822, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 674, - "src": "1376:1:6", + "referencedDeclaration": 816, + "src": "1377:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1196,18 +1196,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 681, + "id": 823, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "1381:1:6", + "referencedDeclaration": 808, + "src": "1382:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1376:6:6", + "src": "1377:6:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1221,21 +1221,21 @@ "typeString": "bool" } ], - "id": 679, + "id": 821, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "1368:7:6", + "referencedDeclaration": 1625, + "src": "1369:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 683, + "id": 825, "isConstant": false, "isLValue": false, "isPure": false, @@ -1243,39 +1243,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1368:15:6", + "src": "1369:15:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 684, + "id": 826, "nodeType": "ExpressionStatement", - "src": "1368:15:6" + "src": "1369:15:6" }, { "expression": { "argumentTypes": null, - "id": 685, + "id": 827, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 674, - "src": "1397:1:6", + "referencedDeclaration": 816, + "src": "1398:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 672, - "id": 686, + "functionReturnParameters": 814, + "id": 828, "nodeType": "Return", - "src": "1390:8:6" + "src": "1391:8:6" } ] }, "documentation": "@dev Adds two numbers, reverts on overflow.", - "id": 688, + "id": 830, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1283,16 +1283,16 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 669, + "id": 811, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 666, + "id": 808, "name": "a", "nodeType": "VariableDeclaration", - "scope": 688, - "src": "1285:9:6", + "scope": 830, + "src": "1286:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1300,10 +1300,10 @@ "typeString": "uint256" }, "typeName": { - "id": 665, + "id": 807, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1285:7:6", + "src": "1286:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1314,11 +1314,11 @@ }, { "constant": false, - "id": 668, + "id": 810, "name": "b", "nodeType": "VariableDeclaration", - "scope": 688, - "src": "1296:9:6", + "scope": 830, + "src": "1297:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1326,10 +1326,10 @@ "typeString": "uint256" }, "typeName": { - "id": 667, + "id": 809, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1296:7:6", + "src": "1297:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1339,20 +1339,20 @@ "visibility": "internal" } ], - "src": "1284:22:6" + "src": "1285:22:6" }, "payable": false, "returnParameters": { - "id": 672, + "id": 814, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 671, + "id": 813, "name": "", "nodeType": "VariableDeclaration", - "scope": 688, - "src": "1330:7:6", + "scope": 830, + "src": "1331:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1360,10 +1360,10 @@ "typeString": "uint256" }, "typeName": { - "id": 670, + "id": 812, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1330:7:6", + "src": "1331:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1373,19 +1373,19 @@ "visibility": "internal" } ], - "src": "1329:9:6" + "src": "1330:9:6" }, - "scope": 709, - "src": "1272:131:6", + "scope": 851, + "src": "1273:131:6", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 707, + "id": 849, "nodeType": "Block", - "src": "1602:44:6", + "src": "1603:44:6", "statements": [ { "expression": { @@ -1397,19 +1397,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 700, + "id": 842, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 698, + "id": 840, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "1616:1:6", + "referencedDeclaration": 834, + "src": "1617:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1420,14 +1420,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 699, + "id": 841, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1621:1:6", + "src": "1622:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1435,7 +1435,7 @@ }, "value": "0" }, - "src": "1616:6:6", + "src": "1617:6:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1449,21 +1449,21 @@ "typeString": "bool" } ], - "id": 697, + "id": 839, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "1608:7:6", + "referencedDeclaration": 1625, + "src": "1609:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 701, + "id": 843, "isConstant": false, "isLValue": false, "isPure": false, @@ -1471,15 +1471,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1608:15:6", + "src": "1609:15:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 702, + "id": 844, "nodeType": "ExpressionStatement", - "src": "1608:15:6" + "src": "1609:15:6" }, { "expression": { @@ -1488,19 +1488,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 705, + "id": 847, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 703, + "id": 845, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 690, - "src": "1636:1:6", + "referencedDeclaration": 832, + "src": "1637:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1510,32 +1510,32 @@ "operator": "%", "rightExpression": { "argumentTypes": null, - "id": 704, + "id": 846, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "1640:1:6", + "referencedDeclaration": 834, + "src": "1641:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1636:5:6", + "src": "1637:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 696, - "id": 706, + "functionReturnParameters": 838, + "id": 848, "nodeType": "Return", - "src": "1629:12:6" + "src": "1630:12:6" } ] }, "documentation": "@dev Divides two numbers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.", - "id": 708, + "id": 850, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1543,16 +1543,16 @@ "name": "mod", "nodeType": "FunctionDefinition", "parameters": { - "id": 693, + "id": 835, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 690, + "id": 832, "name": "a", "nodeType": "VariableDeclaration", - "scope": 708, - "src": "1548:9:6", + "scope": 850, + "src": "1549:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1560,10 +1560,10 @@ "typeString": "uint256" }, "typeName": { - "id": 689, + "id": 831, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1548:7:6", + "src": "1549:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1574,11 +1574,11 @@ }, { "constant": false, - "id": 692, + "id": 834, "name": "b", "nodeType": "VariableDeclaration", - "scope": 708, - "src": "1559:9:6", + "scope": 850, + "src": "1560:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1586,10 +1586,10 @@ "typeString": "uint256" }, "typeName": { - "id": 691, + "id": 833, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1559:7:6", + "src": "1560:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1599,20 +1599,20 @@ "visibility": "internal" } ], - "src": "1547:22:6" + "src": "1548:22:6" }, "payable": false, "returnParameters": { - "id": 696, + "id": 838, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 695, + "id": 837, "name": "", "nodeType": "VariableDeclaration", - "scope": 708, - "src": "1593:7:6", + "scope": 850, + "src": "1594:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1620,10 +1620,10 @@ "typeString": "uint256" }, "typeName": { - "id": 694, + "id": 836, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1593:7:6", + "src": "1594:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1633,33 +1633,33 @@ "visibility": "internal" } ], - "src": "1592:9:6" + "src": "1593:9:6" }, - "scope": 709, - "src": "1535:111:6", + "scope": 851, + "src": "1536:111:6", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 710, - "src": "117:1531:6" + "scope": 852, + "src": "118:1531:6" } ], - "src": "0:1649:6" + "src": "0:1650:6" }, "legacyAST": { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", + "absolutePath": "openzeppelin-eth/contracts/math/SafeMath.sol", "exportedSymbols": { "SafeMath": [ - 709 + 851 ] }, - "id": 710, + "id": 852, "nodeType": "SourceUnit", "nodes": [ { - "id": 583, + "id": 725, "literals": [ "solidity", "^", @@ -1675,18 +1675,18 @@ "contractKind": "library", "documentation": "@title SafeMath\n@dev Math operations with safety checks that revert on error", "fullyImplemented": true, - "id": 709, + "id": 851, "linearizedBaseContracts": [ - 709 + 851 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 615, + "id": 757, "nodeType": "Block", - "src": "271:314:6", + "src": "272:314:6", "statements": [ { "condition": { @@ -1695,19 +1695,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 594, + "id": 736, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 592, + "id": 734, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 585, - "src": "486:1:6", + "referencedDeclaration": 727, + "src": "487:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1718,14 +1718,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 593, + "id": 735, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "491:1:6", + "src": "492:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1733,33 +1733,33 @@ }, "value": "0" }, - "src": "486:6:6", + "src": "487:6:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 598, + "id": 740, "nodeType": "IfStatement", - "src": "482:35:6", + "src": "483:35:6", "trueBody": { - "id": 597, + "id": 739, "nodeType": "Block", - "src": "494:23:6", + "src": "495:23:6", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "30", - "id": 595, + "id": 737, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "509:1:6", + "src": "510:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1767,26 +1767,26 @@ }, "value": "0" }, - "functionReturnParameters": 591, - "id": 596, + "functionReturnParameters": 733, + "id": 738, "nodeType": "Return", - "src": "502:8:6" + "src": "503:8:6" } ] } }, { "assignments": [ - 600 + 742 ], "declarations": [ { "constant": false, - "id": 600, + "id": 742, "name": "c", "nodeType": "VariableDeclaration", - "scope": 616, - "src": "523:9:6", + "scope": 758, + "src": "524:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1794,10 +1794,10 @@ "typeString": "uint256" }, "typeName": { - "id": 599, + "id": 741, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "523:7:6", + "src": "524:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1807,26 +1807,26 @@ "visibility": "internal" } ], - "id": 604, + "id": 746, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 603, + "id": 745, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 601, + "id": 743, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 585, - "src": "535:1:6", + "referencedDeclaration": 727, + "src": "536:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1836,25 +1836,25 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 602, + "id": 744, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 587, - "src": "539:1:6", + "referencedDeclaration": 729, + "src": "540:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "535:5:6", + "src": "536:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "523:17:6" + "src": "524:17:6" }, { "expression": { @@ -1866,7 +1866,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 610, + "id": 752, "isConstant": false, "isLValue": false, "isPure": false, @@ -1877,19 +1877,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 608, + "id": 750, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 606, + "id": 748, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "554:1:6", + "referencedDeclaration": 742, + "src": "555:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1899,18 +1899,18 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 607, + "id": 749, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 585, - "src": "558:1:6", + "referencedDeclaration": 727, + "src": "559:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "554:5:6", + "src": "555:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1920,18 +1920,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 609, + "id": 751, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 587, - "src": "563:1:6", + "referencedDeclaration": 729, + "src": "564:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "554:10:6", + "src": "555:10:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1945,21 +1945,21 @@ "typeString": "bool" } ], - "id": 605, + "id": 747, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "546:7:6", + "referencedDeclaration": 1625, + "src": "547:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 611, + "id": 753, "isConstant": false, "isLValue": false, "isPure": false, @@ -1967,39 +1967,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "546:19:6", + "src": "547:19:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 612, + "id": 754, "nodeType": "ExpressionStatement", - "src": "546:19:6" + "src": "547:19:6" }, { "expression": { "argumentTypes": null, - "id": 613, + "id": 755, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "579:1:6", + "referencedDeclaration": 742, + "src": "580:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 591, - "id": 614, + "functionReturnParameters": 733, + "id": 756, "nodeType": "Return", - "src": "572:8:6" + "src": "573:8:6" } ] }, "documentation": "@dev Multiplies two numbers, reverts on overflow.", - "id": 616, + "id": 758, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2007,16 +2007,16 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 588, + "id": 730, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 585, + "id": 727, "name": "a", "nodeType": "VariableDeclaration", - "scope": 616, - "src": "217:9:6", + "scope": 758, + "src": "218:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2024,10 +2024,10 @@ "typeString": "uint256" }, "typeName": { - "id": 584, + "id": 726, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "217:7:6", + "src": "218:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2038,11 +2038,11 @@ }, { "constant": false, - "id": 587, + "id": 729, "name": "b", "nodeType": "VariableDeclaration", - "scope": 616, - "src": "228:9:6", + "scope": 758, + "src": "229:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2050,10 +2050,10 @@ "typeString": "uint256" }, "typeName": { - "id": 586, + "id": 728, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "228:7:6", + "src": "229:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2063,20 +2063,20 @@ "visibility": "internal" } ], - "src": "216:22:6" + "src": "217:22:6" }, "payable": false, "returnParameters": { - "id": 591, + "id": 733, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 590, + "id": 732, "name": "", "nodeType": "VariableDeclaration", - "scope": 616, - "src": "262:7:6", + "scope": 758, + "src": "263:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2084,10 +2084,10 @@ "typeString": "uint256" }, "typeName": { - "id": 589, + "id": 731, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "262:7:6", + "src": "263:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2097,19 +2097,19 @@ "visibility": "internal" } ], - "src": "261:9:6" + "src": "262:9:6" }, - "scope": 709, - "src": "204:381:6", + "scope": 851, + "src": "205:381:6", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 639, + "id": 781, "nodeType": "Block", - "src": "762:203:6", + "src": "763:203:6", "statements": [ { "expression": { @@ -2121,19 +2121,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 628, + "id": 770, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 626, + "id": 768, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 620, - "src": "776:1:6", + "referencedDeclaration": 762, + "src": "777:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2144,14 +2144,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 627, + "id": 769, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "780:1:6", + "src": "781:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2159,7 +2159,7 @@ }, "value": "0" }, - "src": "776:5:6", + "src": "777:5:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2173,21 +2173,21 @@ "typeString": "bool" } ], - "id": 625, + "id": 767, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "768:7:6", + "referencedDeclaration": 1625, + "src": "769:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 629, + "id": 771, "isConstant": false, "isLValue": false, "isPure": false, @@ -2195,28 +2195,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "768:14:6", + "src": "769:14:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 630, + "id": 772, "nodeType": "ExpressionStatement", - "src": "768:14:6" + "src": "769:14:6" }, { "assignments": [ - 632 + 774 ], "declarations": [ { "constant": false, - "id": 632, + "id": 774, "name": "c", "nodeType": "VariableDeclaration", - "scope": 640, - "src": "846:9:6", + "scope": 782, + "src": "847:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2224,10 +2224,10 @@ "typeString": "uint256" }, "typeName": { - "id": 631, + "id": 773, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "846:7:6", + "src": "847:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2237,26 +2237,26 @@ "visibility": "internal" } ], - "id": 636, + "id": 778, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 635, + "id": 777, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 633, + "id": 775, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 618, - "src": "858:1:6", + "referencedDeclaration": 760, + "src": "859:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2266,49 +2266,49 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 634, + "id": 776, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 620, - "src": "862:1:6", + "referencedDeclaration": 762, + "src": "863:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "858:5:6", + "src": "859:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "846:17:6" + "src": "847:17:6" }, { "expression": { "argumentTypes": null, - "id": 637, + "id": 779, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 632, - "src": "959:1:6", + "referencedDeclaration": 774, + "src": "960:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 624, - "id": 638, + "functionReturnParameters": 766, + "id": 780, "nodeType": "Return", - "src": "952:8:6" + "src": "953:8:6" } ] }, "documentation": "@dev Integer division of two numbers truncating the quotient, reverts on division by zero.", - "id": 640, + "id": 782, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2316,16 +2316,16 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 621, + "id": 763, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 618, + "id": 760, "name": "a", "nodeType": "VariableDeclaration", - "scope": 640, - "src": "708:9:6", + "scope": 782, + "src": "709:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2333,10 +2333,10 @@ "typeString": "uint256" }, "typeName": { - "id": 617, + "id": 759, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "708:7:6", + "src": "709:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2347,11 +2347,11 @@ }, { "constant": false, - "id": 620, + "id": 762, "name": "b", "nodeType": "VariableDeclaration", - "scope": 640, - "src": "719:9:6", + "scope": 782, + "src": "720:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2359,10 +2359,10 @@ "typeString": "uint256" }, "typeName": { - "id": 619, + "id": 761, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "719:7:6", + "src": "720:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2372,20 +2372,20 @@ "visibility": "internal" } ], - "src": "707:22:6" + "src": "708:22:6" }, "payable": false, "returnParameters": { - "id": 624, + "id": 766, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 623, + "id": 765, "name": "", "nodeType": "VariableDeclaration", - "scope": 640, - "src": "753:7:6", + "scope": 782, + "src": "754:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2393,10 +2393,10 @@ "typeString": "uint256" }, "typeName": { - "id": 622, + "id": 764, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "753:7:6", + "src": "754:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2406,19 +2406,19 @@ "visibility": "internal" } ], - "src": "752:9:6" + "src": "753:9:6" }, - "scope": 709, - "src": "695:270:6", + "scope": 851, + "src": "696:270:6", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 663, + "id": 805, "nodeType": "Block", - "src": "1145:64:6", + "src": "1146:64:6", "statements": [ { "expression": { @@ -2430,19 +2430,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 652, + "id": 794, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 650, + "id": 792, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "1159:1:6", + "referencedDeclaration": 786, + "src": "1160:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2452,18 +2452,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 651, + "id": 793, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "1164:1:6", + "referencedDeclaration": 784, + "src": "1165:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1159:6:6", + "src": "1160:6:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2477,21 +2477,21 @@ "typeString": "bool" } ], - "id": 649, + "id": 791, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "1151:7:6", + "referencedDeclaration": 1625, + "src": "1152:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 653, + "id": 795, "isConstant": false, "isLValue": false, "isPure": false, @@ -2499,28 +2499,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1151:15:6", + "src": "1152:15:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 654, + "id": 796, "nodeType": "ExpressionStatement", - "src": "1151:15:6" + "src": "1152:15:6" }, { "assignments": [ - 656 + 798 ], "declarations": [ { "constant": false, - "id": 656, + "id": 798, "name": "c", "nodeType": "VariableDeclaration", - "scope": 664, - "src": "1172:9:6", + "scope": 806, + "src": "1173:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2528,10 +2528,10 @@ "typeString": "uint256" }, "typeName": { - "id": 655, + "id": 797, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1172:7:6", + "src": "1173:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2541,26 +2541,26 @@ "visibility": "internal" } ], - "id": 660, + "id": 802, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 659, + "id": 801, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 657, + "id": 799, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "1184:1:6", + "referencedDeclaration": 784, + "src": "1185:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2570,49 +2570,49 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 658, + "id": 800, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "1188:1:6", + "referencedDeclaration": 786, + "src": "1189:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1184:5:6", + "src": "1185:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1172:17:6" + "src": "1173:17:6" }, { "expression": { "argumentTypes": null, - "id": 661, + "id": 803, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 656, - "src": "1203:1:6", + "referencedDeclaration": 798, + "src": "1204:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 648, - "id": 662, + "functionReturnParameters": 790, + "id": 804, "nodeType": "Return", - "src": "1196:8:6" + "src": "1197:8:6" } ] }, "documentation": "@dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).", - "id": 664, + "id": 806, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2620,16 +2620,16 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 645, + "id": 787, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 642, + "id": 784, "name": "a", "nodeType": "VariableDeclaration", - "scope": 664, - "src": "1091:9:6", + "scope": 806, + "src": "1092:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2637,10 +2637,10 @@ "typeString": "uint256" }, "typeName": { - "id": 641, + "id": 783, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1091:7:6", + "src": "1092:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2651,11 +2651,11 @@ }, { "constant": false, - "id": 644, + "id": 786, "name": "b", "nodeType": "VariableDeclaration", - "scope": 664, - "src": "1102:9:6", + "scope": 806, + "src": "1103:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2663,10 +2663,10 @@ "typeString": "uint256" }, "typeName": { - "id": 643, + "id": 785, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1102:7:6", + "src": "1103:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2676,20 +2676,20 @@ "visibility": "internal" } ], - "src": "1090:22:6" + "src": "1091:22:6" }, "payable": false, "returnParameters": { - "id": 648, + "id": 790, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 647, + "id": 789, "name": "", "nodeType": "VariableDeclaration", - "scope": 664, - "src": "1136:7:6", + "scope": 806, + "src": "1137:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2697,10 +2697,10 @@ "typeString": "uint256" }, "typeName": { - "id": 646, + "id": 788, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1136:7:6", + "src": "1137:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2710,32 +2710,32 @@ "visibility": "internal" } ], - "src": "1135:9:6" + "src": "1136:9:6" }, - "scope": 709, - "src": "1078:131:6", + "scope": 851, + "src": "1079:131:6", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 687, + "id": 829, "nodeType": "Block", - "src": "1339:64:6", + "src": "1340:64:6", "statements": [ { "assignments": [ - 674 + 816 ], "declarations": [ { "constant": false, - "id": 674, + "id": 816, "name": "c", "nodeType": "VariableDeclaration", - "scope": 688, - "src": "1345:9:6", + "scope": 830, + "src": "1346:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2743,10 +2743,10 @@ "typeString": "uint256" }, "typeName": { - "id": 673, + "id": 815, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1345:7:6", + "src": "1346:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2756,26 +2756,26 @@ "visibility": "internal" } ], - "id": 678, + "id": 820, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 677, + "id": 819, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 675, + "id": 817, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "1357:1:6", + "referencedDeclaration": 808, + "src": "1358:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2785,25 +2785,25 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 676, + "id": 818, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 668, - "src": "1361:1:6", + "referencedDeclaration": 810, + "src": "1362:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1357:5:6", + "src": "1358:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1345:17:6" + "src": "1346:17:6" }, { "expression": { @@ -2815,19 +2815,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 682, + "id": 824, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 680, + "id": 822, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 674, - "src": "1376:1:6", + "referencedDeclaration": 816, + "src": "1377:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2837,18 +2837,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 681, + "id": 823, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "1381:1:6", + "referencedDeclaration": 808, + "src": "1382:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1376:6:6", + "src": "1377:6:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2862,21 +2862,21 @@ "typeString": "bool" } ], - "id": 679, + "id": 821, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "1368:7:6", + "referencedDeclaration": 1625, + "src": "1369:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 683, + "id": 825, "isConstant": false, "isLValue": false, "isPure": false, @@ -2884,39 +2884,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1368:15:6", + "src": "1369:15:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 684, + "id": 826, "nodeType": "ExpressionStatement", - "src": "1368:15:6" + "src": "1369:15:6" }, { "expression": { "argumentTypes": null, - "id": 685, + "id": 827, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 674, - "src": "1397:1:6", + "referencedDeclaration": 816, + "src": "1398:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 672, - "id": 686, + "functionReturnParameters": 814, + "id": 828, "nodeType": "Return", - "src": "1390:8:6" + "src": "1391:8:6" } ] }, "documentation": "@dev Adds two numbers, reverts on overflow.", - "id": 688, + "id": 830, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2924,16 +2924,16 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 669, + "id": 811, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 666, + "id": 808, "name": "a", "nodeType": "VariableDeclaration", - "scope": 688, - "src": "1285:9:6", + "scope": 830, + "src": "1286:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2941,10 +2941,10 @@ "typeString": "uint256" }, "typeName": { - "id": 665, + "id": 807, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1285:7:6", + "src": "1286:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2955,11 +2955,11 @@ }, { "constant": false, - "id": 668, + "id": 810, "name": "b", "nodeType": "VariableDeclaration", - "scope": 688, - "src": "1296:9:6", + "scope": 830, + "src": "1297:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2967,10 +2967,10 @@ "typeString": "uint256" }, "typeName": { - "id": 667, + "id": 809, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1296:7:6", + "src": "1297:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2980,20 +2980,20 @@ "visibility": "internal" } ], - "src": "1284:22:6" + "src": "1285:22:6" }, "payable": false, "returnParameters": { - "id": 672, + "id": 814, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 671, + "id": 813, "name": "", "nodeType": "VariableDeclaration", - "scope": 688, - "src": "1330:7:6", + "scope": 830, + "src": "1331:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3001,10 +3001,10 @@ "typeString": "uint256" }, "typeName": { - "id": 670, + "id": 812, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1330:7:6", + "src": "1331:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3014,19 +3014,19 @@ "visibility": "internal" } ], - "src": "1329:9:6" + "src": "1330:9:6" }, - "scope": 709, - "src": "1272:131:6", + "scope": 851, + "src": "1273:131:6", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 707, + "id": 849, "nodeType": "Block", - "src": "1602:44:6", + "src": "1603:44:6", "statements": [ { "expression": { @@ -3038,19 +3038,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 700, + "id": 842, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 698, + "id": 840, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "1616:1:6", + "referencedDeclaration": 834, + "src": "1617:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3061,14 +3061,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 699, + "id": 841, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1621:1:6", + "src": "1622:1:6", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3076,7 +3076,7 @@ }, "value": "0" }, - "src": "1616:6:6", + "src": "1617:6:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3090,21 +3090,21 @@ "typeString": "bool" } ], - "id": 697, + "id": 839, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1298, - "src": "1608:7:6", + "referencedDeclaration": 1625, + "src": "1609:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 701, + "id": 843, "isConstant": false, "isLValue": false, "isPure": false, @@ -3112,15 +3112,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1608:15:6", + "src": "1609:15:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 702, + "id": 844, "nodeType": "ExpressionStatement", - "src": "1608:15:6" + "src": "1609:15:6" }, { "expression": { @@ -3129,19 +3129,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 705, + "id": 847, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 703, + "id": 845, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 690, - "src": "1636:1:6", + "referencedDeclaration": 832, + "src": "1637:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3151,32 +3151,32 @@ "operator": "%", "rightExpression": { "argumentTypes": null, - "id": 704, + "id": 846, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 692, - "src": "1640:1:6", + "referencedDeclaration": 834, + "src": "1641:1:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1636:5:6", + "src": "1637:5:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 696, - "id": 706, + "functionReturnParameters": 838, + "id": 848, "nodeType": "Return", - "src": "1629:12:6" + "src": "1630:12:6" } ] }, "documentation": "@dev Divides two numbers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.", - "id": 708, + "id": 850, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3184,16 +3184,16 @@ "name": "mod", "nodeType": "FunctionDefinition", "parameters": { - "id": 693, + "id": 835, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 690, + "id": 832, "name": "a", "nodeType": "VariableDeclaration", - "scope": 708, - "src": "1548:9:6", + "scope": 850, + "src": "1549:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3201,10 +3201,10 @@ "typeString": "uint256" }, "typeName": { - "id": 689, + "id": 831, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1548:7:6", + "src": "1549:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3215,11 +3215,11 @@ }, { "constant": false, - "id": 692, + "id": 834, "name": "b", "nodeType": "VariableDeclaration", - "scope": 708, - "src": "1559:9:6", + "scope": 850, + "src": "1560:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3227,10 +3227,10 @@ "typeString": "uint256" }, "typeName": { - "id": 691, + "id": 833, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1559:7:6", + "src": "1560:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3240,20 +3240,20 @@ "visibility": "internal" } ], - "src": "1547:22:6" + "src": "1548:22:6" }, "payable": false, "returnParameters": { - "id": 696, + "id": 838, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 695, + "id": 837, "name": "", "nodeType": "VariableDeclaration", - "scope": 708, - "src": "1593:7:6", + "scope": 850, + "src": "1594:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3261,10 +3261,10 @@ "typeString": "uint256" }, "typeName": { - "id": 694, + "id": 836, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1593:7:6", + "src": "1594:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3274,20 +3274,20 @@ "visibility": "internal" } ], - "src": "1592:9:6" + "src": "1593:9:6" }, - "scope": 709, - "src": "1535:111:6", + "scope": 851, + "src": "1536:111:6", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 710, - "src": "117:1531:6" + "scope": 852, + "src": "118:1531:6" } ], - "src": "0:1649:6" + "src": "0:1650:6" }, "compiler": { "name": "solc", @@ -3295,7 +3295,7 @@ }, "networks": {}, "schemaVersion": "3.0.0-beta.1", - "updatedAt": "2018-12-16T19:14:46.485Z", + "updatedAt": "2018-12-17T02:12:29.701Z", "devdoc": { "methods": {}, "title": "SafeMath" diff --git a/src/build/contracts/SpreadEther.json b/src/build/contracts/SpreadEther.json new file mode 100644 index 0000000..ea49db7 --- /dev/null +++ b/src/build/contracts/SpreadEther.json @@ -0,0 +1,7154 @@ +{ + "contractName": "SpreadEther", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "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": "buyExponent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "buyInverseSlope", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "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": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "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": "renounceOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "isOwner", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "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": true, + "inputs": [], + "name": "sellInverseSlope", + "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" + }, + { + "constant": true, + "inputs": [], + "name": "sellExponent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "reserve", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "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" + }, + { + "constant": false, + "inputs": [ + { + "name": "tokens", + "type": "uint256" + } + ], + "name": "sell", + "outputs": [ + { + "name": "rewarded", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "payout", + "type": "uint256" + }, + { + "indexed": true, + "name": "timestamp", + "type": "uint256" + } + ], + "name": "Payout", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "paid", + "type": "uint256" + }, + { + "indexed": true, + "name": "when", + "type": "uint256" + } + ], + "name": "CurveBuy", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "name": "rewarded", + "type": "uint256" + }, + { + "indexed": true, + "name": "when", + "type": "uint256" + } + ], + "name": "CurveSell", + "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" + }, + { + "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" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + } + ], + "name": "OwnershipRenounced", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "symbol", + "type": "string" + }, + { + "name": "decimals", + "type": "uint8" + } + ], + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "symbol", + "type": "string" + }, + { + "name": "decimals", + "type": "uint8" + }, + { + "name": "_buyExponent", + "type": "uint256" + }, + { + "name": "_sellExponent", + "type": "uint256" + }, + { + "name": "_buyInverseSlope", + "type": "uint256" + }, + { + "name": "_sellInverseSlope", + "type": "uint256" + } + ], + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "sender", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "toX", + "type": "uint256" + } + ], + "name": "spread", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "tokens", + "type": "uint256" + } + ], + "name": "price", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "tokens", + "type": "uint256" + } + ], + "name": "buy", + "outputs": [ + { + "name": "paid", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "tokens", + "type": "uint256" + } + ], + "name": "reward", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b506128ce806100206000396000f30060806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461016f578063095ea7b3146101ff578063112d37581461026457806314a962b61461028f5780631624f6c6146102ba57806318160ddd1461037657806323b872dd146103a157806326a49e3714610426578063313ce56714610467578063395093511461049857806356885ba1146104fd578063638769f5146105e157806370a0823114610622578063715018a6146106795780638da5cb5b146106905780638f32d59b146106e757806395d89b4114610716578063a457c2d7146107a6578063a78d0ed01461080b578063a9059cbb14610836578063a9fb763c1461089b578063aa69a909146108dc578063c4d66de814610907578063cd3293de1461094a578063d96a094a14610975578063dd62ed3e146109a9578063e4849b3214610a20578063f2fde38b14610a61575b600080fd5b34801561017b57600080fd5b50610184610aa4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c45780820151818401526020810190506101a9565b50505050905090810190601f1680156101f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020b57600080fd5b5061024a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b46565b604051808215151515815260200191505060405180910390f35b34801561027057600080fd5b50610279610c73565b6040518082815260200191505060405180910390f35b34801561029b57600080fd5b506102a4610c79565b6040518082815260200191505060405180910390f35b3480156102c657600080fd5b50610374600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610c7f565b005b34801561038257600080fd5b5061038b610dc2565b6040518082815260200191505060405180910390f35b3480156103ad57600080fd5b5061040c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dcc565b604051808215151515815260200191505060405180910390f35b34801561043257600080fd5b5061045160048036038101908080359060200190929190505050610f7e565b6040518082815260200191505060405180910390f35b34801561047357600080fd5b5061047c610fc3565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104a457600080fd5b506104e3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fda565b604051808215151515815260200191505060405180910390f35b34801561050957600080fd5b506105df600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611211565b005b3480156105ed57600080fd5b5061060c6004803603810190808035906020019092919050505061137d565b6040518082815260200191505060405180910390f35b34801561062e57600080fd5b50610663600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113c0565b6040518082815260200191505060405180910390f35b34801561068557600080fd5b5061068e611409565b005b34801561069c57600080fd5b506106a56114c5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106f357600080fd5b506106fc6114ef565b604051808215151515815260200191505060405180910390f35b34801561072257600080fd5b5061072b611547565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561076b578082015181840152602081019050610750565b50505050905090810190601f1680156107985780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156107b257600080fd5b506107f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115e9565b604051808215151515815260200191505060405180910390f35b34801561081757600080fd5b50610820611820565b6040518082815260200191505060405180910390f35b34801561084257600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611826565b604051808215151515815260200191505060405180910390f35b3480156108a757600080fd5b506108c66004803603810190808035906020019092919050505061183d565b6040518082815260200191505060405180910390f35b3480156108e857600080fd5b506108f1611882565b6040518082815260200191505060405180910390f35b34801561091357600080fd5b50610948600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611888565b005b34801561095657600080fd5b5061095f6119ff565b6040518082815260200191505060405180910390f35b61099360048036038101908080359060200190929190505050611a05565b6040518082815260200191505060405180910390f35b3480156109b557600080fd5b50610a0a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af8565b6040518082815260200191505060405180910390f35b348015610a2c57600080fd5b50610a4b60048036038101908080359060200190929190505050611b7f565b6040518082815260200191505060405180910390f35b348015610a6d57600080fd5b50610aa2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d80565b005b6060609b8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b3c5780601f10610b1157610100808354040283529160200191610b3c565b820191906000526020600020905b815481529060010190602001808311610b1f57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610b8357600080fd5b81606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60d15481565b60d35481565b60008060019054906101000a900460ff1680610c9f5750610c9e611d9f565b5b80610cb657506000809054906101000a900460ff16155b1515610d50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff021916908315150217905550610da2848484611db0565b80600060016101000a81548160ff02191690831515021790555050505050565b6000606854905090565b6000606760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610e5957600080fd5b610ee882606760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3190919063ffffffff16565b606760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f73848484611f52565b600190509392505050565b6000610fbc60d054610fae610fa385610f95610dc2565b61217090919063ffffffff16565b60d15460d354612191565b611f3190919063ffffffff16565b9050919050565b6000609d60009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561101757600080fd5b6110a682606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461217090919063ffffffff16565b606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008060019054906101000a900460ff16806112315750611230611d9f565b5b8061124857506000809054906101000a900460ff16155b15156112e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555061133233611888565b61133d888888610c7f565b8460d1819055508360d2819055508260d3819055508160d48190555080600060016101000a81548160ff0219169083151502179055505050505050505050565b60008060006113918460d15460d354612191565b91506113a28460d25460d454612191565b90506113b78183611f3190919063ffffffff16565b92505050919050565b6000606660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6114116114ef565b151561141c57600080fd5b603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6060609c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115df5780601f106115b4576101008083540402835291602001916115df565b820191906000526020600020905b8154815290600101906020018083116115c257829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561162657600080fd5b6116b582606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3190919063ffffffff16565b606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60d45481565b6000611833338484611f52565b6001905092915050565b600061187b61186a61185f84611851610dc2565b611f3190919063ffffffff16565b60d25460d454612191565b60d054611f3190919063ffffffff16565b9050919050565b60d25481565b60008060019054906101000a900460ff16806118a857506118a7611d9f565b5b806118bf57506000809054906101000a900460ff16155b1515611959576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548160ff0219169083151502179055505050565b60d05481565b600080600080611a1b611a16610dc2565b61137d565b9250611a26856121f5565b9350611a38611a33610dc2565b61137d565b9150611a4d8383611f3190919063ffffffff16565b9050611a648160d054611f3190919063ffffffff16565b60d081905550611a726114c5565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ab7573d6000803e3d6000fd5b50427f698e6ae5d786c1b7ebbb3f65f5c53b321f0c2d2cc5de830ede8183fac06ec425826040518082815260200191505060405180910390a2505050919050565b6000606760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008082111515611c1e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d757374207370656e64206e6f6e2d7a65726f20616d6f756e74206f6620746f81526020017f6b656e732e00000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81611c28336113c0565b10151515611cc4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f53656e64657220646f6573206e6f74206861766520656e6f75676820746f6b6581526020017f6e7320746f207370656e642e000000000000000000000000000000000000000081525060400191505060405180910390fd5b611ccd8261183d565b9050611ce48160d054611f3190919063ffffffff16565b60d081905550611cf43383612409565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d3a573d6000803e3d6000fd5b50427f5501bc527b3cba3e6befc13767fc7728d2de83aad635948271290a5ebd9653018383604051808381526020018281526020019250505060405180910390a2919050565b611d886114ef565b1515611d9357600080fd5b611d9c81612597565b50565b600080303b90506000811491505090565b60008060019054906101000a900460ff1680611dd05750611dcf611d9f565b5b80611de757506000809054906101000a900460ff16155b1515611e81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555083609b9080519060200190611ede9291906127fd565b5082609c9080519060200190611ef59291906127fd565b5081609d60006101000a81548160ff021916908360ff16021790555080600060016101000a81548160ff02191690831515021790555050505050565b600080838311151515611f4357600080fd5b82840390508091505092915050565b606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611fa057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611fdc57600080fd5b61202e81606660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3190919063ffffffff16565b606660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120c381606660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461217090919063ffffffff16565b606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080828401905083811015151561218757600080fd5b8091505092915050565b6000806121a860018561217090919063ffffffff16565b90506121eb670de0b6b3a76400006121dd856121cf85868b0a61269390919063ffffffff16565b61269390919063ffffffff16565b61269390919063ffffffff16565b9150509392505050565b60008082111515612294576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742072657175657374206e6f6e2d7a65726f20616d6f756e74206f662081526020017f746f6b656e732e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61229d82610f7e565b905080341015151561233d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f446964206e6f742073656e6420656e6f75676820657468657220746f2062757981526020017f210000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6123528160d05461217090919063ffffffff16565b60d08190555061236233836126bd565b803411156123c4573373ffffffffffffffffffffffffffffffffffffffff166108fc6123978334611f3190919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156123c2573d6000803e3d6000fd5b505b427fef06a9ba77137aabff72e359d8cc6f2af40b4135811720e6efe22ae19692b5978383604051808381526020018281526020019250505060405180910390a2919050565b60008273ffffffffffffffffffffffffffffffffffffffff161415151561242f57600080fd5b606660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561247d57600080fd5b61249281606854611f3190919063ffffffff16565b6068819055506124ea81606660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3190919063ffffffff16565b606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156125d357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000831115156126a557600080fd5b82848115156126b057fe5b0490508091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff16141515156126e357600080fd5b6126f88160685461217090919063ffffffff16565b60688190555061275081606660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461217090919063ffffffff16565b606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061283e57805160ff191683800117855561286c565b8280016001018555821561286c579182015b8281111561286b578251825591602001919060010190612850565b5b509050612879919061287d565b5090565b61289f91905b8082111561289b576000816000905550600101612883565b5090565b905600a165627a7a723058203823a226cb77256bc2ee0f665fafa1babce91023ae2a01344e03e60757fa18a10029", + "deployedBytecode": "0x60806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461016f578063095ea7b3146101ff578063112d37581461026457806314a962b61461028f5780631624f6c6146102ba57806318160ddd1461037657806323b872dd146103a157806326a49e3714610426578063313ce56714610467578063395093511461049857806356885ba1146104fd578063638769f5146105e157806370a0823114610622578063715018a6146106795780638da5cb5b146106905780638f32d59b146106e757806395d89b4114610716578063a457c2d7146107a6578063a78d0ed01461080b578063a9059cbb14610836578063a9fb763c1461089b578063aa69a909146108dc578063c4d66de814610907578063cd3293de1461094a578063d96a094a14610975578063dd62ed3e146109a9578063e4849b3214610a20578063f2fde38b14610a61575b600080fd5b34801561017b57600080fd5b50610184610aa4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c45780820151818401526020810190506101a9565b50505050905090810190601f1680156101f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020b57600080fd5b5061024a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b46565b604051808215151515815260200191505060405180910390f35b34801561027057600080fd5b50610279610c73565b6040518082815260200191505060405180910390f35b34801561029b57600080fd5b506102a4610c79565b6040518082815260200191505060405180910390f35b3480156102c657600080fd5b50610374600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610c7f565b005b34801561038257600080fd5b5061038b610dc2565b6040518082815260200191505060405180910390f35b3480156103ad57600080fd5b5061040c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610dcc565b604051808215151515815260200191505060405180910390f35b34801561043257600080fd5b5061045160048036038101908080359060200190929190505050610f7e565b6040518082815260200191505060405180910390f35b34801561047357600080fd5b5061047c610fc3565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104a457600080fd5b506104e3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610fda565b604051808215151515815260200191505060405180910390f35b34801561050957600080fd5b506105df600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050611211565b005b3480156105ed57600080fd5b5061060c6004803603810190808035906020019092919050505061137d565b6040518082815260200191505060405180910390f35b34801561062e57600080fd5b50610663600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113c0565b6040518082815260200191505060405180910390f35b34801561068557600080fd5b5061068e611409565b005b34801561069c57600080fd5b506106a56114c5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106f357600080fd5b506106fc6114ef565b604051808215151515815260200191505060405180910390f35b34801561072257600080fd5b5061072b611547565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561076b578082015181840152602081019050610750565b50505050905090810190601f1680156107985780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156107b257600080fd5b506107f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115e9565b604051808215151515815260200191505060405180910390f35b34801561081757600080fd5b50610820611820565b6040518082815260200191505060405180910390f35b34801561084257600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611826565b604051808215151515815260200191505060405180910390f35b3480156108a757600080fd5b506108c66004803603810190808035906020019092919050505061183d565b6040518082815260200191505060405180910390f35b3480156108e857600080fd5b506108f1611882565b6040518082815260200191505060405180910390f35b34801561091357600080fd5b50610948600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611888565b005b34801561095657600080fd5b5061095f6119ff565b6040518082815260200191505060405180910390f35b61099360048036038101908080359060200190929190505050611a05565b6040518082815260200191505060405180910390f35b3480156109b557600080fd5b50610a0a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af8565b6040518082815260200191505060405180910390f35b348015610a2c57600080fd5b50610a4b60048036038101908080359060200190929190505050611b7f565b6040518082815260200191505060405180910390f35b348015610a6d57600080fd5b50610aa2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d80565b005b6060609b8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b3c5780601f10610b1157610100808354040283529160200191610b3c565b820191906000526020600020905b815481529060010190602001808311610b1f57829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610b8357600080fd5b81606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60d15481565b60d35481565b60008060019054906101000a900460ff1680610c9f5750610c9e611d9f565b5b80610cb657506000809054906101000a900460ff16155b1515610d50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff021916908315150217905550610da2848484611db0565b80600060016101000a81548160ff02191690831515021790555050505050565b6000606854905090565b6000606760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610e5957600080fd5b610ee882606760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3190919063ffffffff16565b606760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f73848484611f52565b600190509392505050565b6000610fbc60d054610fae610fa385610f95610dc2565b61217090919063ffffffff16565b60d15460d354612191565b611f3190919063ffffffff16565b9050919050565b6000609d60009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561101757600080fd5b6110a682606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461217090919063ffffffff16565b606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008060019054906101000a900460ff16806112315750611230611d9f565b5b8061124857506000809054906101000a900460ff16155b15156112e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555061133233611888565b61133d888888610c7f565b8460d1819055508360d2819055508260d3819055508160d48190555080600060016101000a81548160ff0219169083151502179055505050505050505050565b60008060006113918460d15460d354612191565b91506113a28460d25460d454612191565b90506113b78183611f3190919063ffffffff16565b92505050919050565b6000606660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6114116114ef565b151561141c57600080fd5b603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6060609c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115df5780601f106115b4576101008083540402835291602001916115df565b820191906000526020600020905b8154815290600101906020018083116115c257829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561162657600080fd5b6116b582606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3190919063ffffffff16565b606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925606760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60d45481565b6000611833338484611f52565b6001905092915050565b600061187b61186a61185f84611851610dc2565b611f3190919063ffffffff16565b60d25460d454612191565b60d054611f3190919063ffffffff16565b9050919050565b60d25481565b60008060019054906101000a900460ff16806118a857506118a7611d9f565b5b806118bf57506000809054906101000a900460ff16155b1515611959576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555081603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600060016101000a81548160ff0219169083151502179055505050565b60d05481565b600080600080611a1b611a16610dc2565b61137d565b9250611a26856121f5565b9350611a38611a33610dc2565b61137d565b9150611a4d8383611f3190919063ffffffff16565b9050611a648160d054611f3190919063ffffffff16565b60d081905550611a726114c5565b73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ab7573d6000803e3d6000fd5b50427f698e6ae5d786c1b7ebbb3f65f5c53b321f0c2d2cc5de830ede8183fac06ec425826040518082815260200191505060405180910390a2505050919050565b6000606760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008082111515611c1e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d757374207370656e64206e6f6e2d7a65726f20616d6f756e74206f6620746f81526020017f6b656e732e00000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81611c28336113c0565b10151515611cc4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f53656e64657220646f6573206e6f74206861766520656e6f75676820746f6b6581526020017f6e7320746f207370656e642e000000000000000000000000000000000000000081525060400191505060405180910390fd5b611ccd8261183d565b9050611ce48160d054611f3190919063ffffffff16565b60d081905550611cf43383612409565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d3a573d6000803e3d6000fd5b50427f5501bc527b3cba3e6befc13767fc7728d2de83aad635948271290a5ebd9653018383604051808381526020018281526020019250505060405180910390a2919050565b611d886114ef565b1515611d9357600080fd5b611d9c81612597565b50565b600080303b90506000811491505090565b60008060019054906101000a900460ff1680611dd05750611dcf611d9f565b5b80611de757506000809054906101000a900460ff16155b1515611e81576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600060019054906101000a900460ff1690506001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff02191690831515021790555083609b9080519060200190611ede9291906127fd565b5082609c9080519060200190611ef59291906127fd565b5081609d60006101000a81548160ff021916908360ff16021790555080600060016101000a81548160ff02191690831515021790555050505050565b600080838311151515611f4357600080fd5b82840390508091505092915050565b606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611fa057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611fdc57600080fd5b61202e81606660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3190919063ffffffff16565b606660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120c381606660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461217090919063ffffffff16565b606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600080828401905083811015151561218757600080fd5b8091505092915050565b6000806121a860018561217090919063ffffffff16565b90506121eb670de0b6b3a76400006121dd856121cf85868b0a61269390919063ffffffff16565b61269390919063ffffffff16565b61269390919063ffffffff16565b9150509392505050565b60008082111515612294576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742072657175657374206e6f6e2d7a65726f20616d6f756e74206f662081526020017f746f6b656e732e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61229d82610f7e565b905080341015151561233d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f446964206e6f742073656e6420656e6f75676820657468657220746f2062757981526020017f210000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6123528160d05461217090919063ffffffff16565b60d08190555061236233836126bd565b803411156123c4573373ffffffffffffffffffffffffffffffffffffffff166108fc6123978334611f3190919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156123c2573d6000803e3d6000fd5b505b427fef06a9ba77137aabff72e359d8cc6f2af40b4135811720e6efe22ae19692b5978383604051808381526020018281526020019250505060405180910390a2919050565b60008273ffffffffffffffffffffffffffffffffffffffff161415151561242f57600080fd5b606660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561247d57600080fd5b61249281606854611f3190919063ffffffff16565b6068819055506124ea81606660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3190919063ffffffff16565b606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156125d357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000831115156126a557600080fd5b82848115156126b057fe5b0490508091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff16141515156126e357600080fd5b6126f88160685461217090919063ffffffff16565b60688190555061275081606660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461217090919063ffffffff16565b606660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061283e57805160ff191683800117855561286c565b8280016001018555821561286c579182015b8281111561286b578251825591602001919060010190612850565b5b509050612879919061287d565b5090565b61289f91905b8082111561289b576000816000905550600101612883565b5090565b905600a165627a7a723058203823a226cb77256bc2ee0f665fafa1babce91023ae2a01344e03e60757fa18a10029", + "sourceMap": "175:2254:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;175:2254:5;;;;;;;", + "deployedSourceMap": "175:2254:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;666:67:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;666:67:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;666:67:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2446:220:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2446:220:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;247:26:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;247:26:5;;;;;;;;;;;;;;;;;;;;;;;313:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;313:30:5;;;;;;;;;;;;;;;;;;;;;;;538:168:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;538:168:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;702:83:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;702:83:8;;;;;;;;;;;;;;;;;;;;;;;2938:288;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2938:288:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1525:221:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1525:221:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;924:74:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;924:74:9;;;;;;;;;;;;;;;;;;;;;;;;;;;3677:330:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3677:330:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;449:529:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;449:529:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1242:277;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1242:277:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;986:98:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;986:98:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1375:113:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1375:113:7;;;;;;741:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;741:70:7;;;;;;;;;;;;;;;;;;;;;;;;;;;1028:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1028:83:7;;;;;;;;;;;;;;;;;;;;;;;;;;;787:71:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;787:71:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;787:71:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4463:340:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4463:340:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;349:31:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;349:31:5;;;;;;;;;;;;;;;;;;;;;;;1703:127:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1703:127:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2203:224:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2203:224:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;279:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;279:27:5;;;;;;;;;;;;;;;;;;;;;;;605:81:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;605:81:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;359:22:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;359:22:4;;;;;;;;;;;;;;;;;;;;;;;1770:427:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1401:150:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1401:150:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1511:496:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1511:496:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1649:101:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1649:101:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;666:67:9;702:6;723:5;716:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;666:67;:::o;2446:220:8:-;2511:4;2550:1;2531:21;;:7;:21;;;;2523:30;;;;;;;;2592:5;2560:8;:20;2569:10;2560:20;;;;;;;;;;;;;;;:29;2581:7;2560:29;;;;;;;;;;;;;;;:37;;;;2629:7;2608:36;;2617:10;2608:36;;;2638:5;2608:36;;;;;;;;;;;;;;;;;;2657:4;2650:11;;2446:220;;;;:::o;247:26:5:-;;;;:::o;313:30::-;;;;:::o;538:168:4:-;1121:20:11;1016:12;;;;;;;;;;;:31;;;;1032:15;:13;:15::i;:::-;1016:31;:47;;;;1052:11;;;;;;;;;;;1051:12;1016:47;1008:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1144:12;;;;;;;;;;;1121:35;;1177:4;1162:12;;:19;;;;;;;;;;;;;;;;;;1201:4;1187:11;;:18;;;;;;;;;;;;;;;;;;651:48:4;676:4;682:6;690:8;651:24;:48::i;:::-;1235:15:11;1220:12;;:30;;;;;;;;;;;;;;;;;;538:168:4;;;;:::o;702:83:8:-;746:7;768:12;;761:19;;702:83;:::o;2938:288::-;3041:4;3072:8;:14;3081:4;3072:14;;;;;;;;;;;;;;;:26;3087:10;3072:26;;;;;;;;;;;;;;;;3063:5;:35;;3055:44;;;;;;;;3135:37;3166:5;3135:8;:14;3144:4;3135:14;;;;;;;;;;;;;;;:26;3150:10;3135:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;3106:8;:14;3115:4;3106:14;;;;;;;;;;;;;;;:26;3121:10;3106:26;;;;;;;;;;;;;;;:66;;;;3178:26;3188:4;3194:2;3198:5;3178:9;:26::i;:::-;3217:4;3210:11;;2938:288;;;;;:::o;1525:221:5:-;1585:7;1615:124;1731:7;;1615:111;1637:25;1655:6;1637:13;:11;:13::i;:::-;:17;;:25;;;;:::i;:::-;1676:11;;1701:15;;1615:8;:111::i;:::-;:115;;:124;;;;:::i;:::-;1608:131;;1525:221;;;:::o;924:74:9:-;964:5;984:9;;;;;;;;;;;977:16;;924:74;:::o;3677:330:8:-;3777:4;3818:1;3799:21;;:7;:21;;;;3791:30;;;;;;;;3868:45;3902:10;3868:8;:20;3877:10;3868:20;;;;;;;;;;;;;;;:29;3889:7;3868:29;;;;;;;;;;;;;;;;:33;;:45;;;;:::i;:::-;3828:8;:20;3837:10;3828:20;;;;;;;;;;;;;;;:29;3849:7;3828:29;;;;;;;;;;;;;;;:86;;;;3946:7;3925:60;;3934:10;3925:60;;;3955:8;:20;3964:10;3955:20;;;;;;;;;;;;;;;:29;3976:7;3955:29;;;;;;;;;;;;;;;;3925:60;;;;;;;;;;;;;;;;;;3998:4;3991:11;;3677:330;;;;:::o;449:529:5:-;1121:20:11;1016:12;;;;;;;;;;;:31;;;;1032:15;:13;:15::i;:::-;1016:31;:47;;;;1052:11;;;;;;;;;;;1051:12;1016:47;1008:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1144:12;;;;;;;;;;;1121:35;;1177:4;1162:12;;:19;;;;;;;;;;;;;;;;;;1201:4;1187:11;;:18;;;;;;;;;;;;;;;;;;716:30:5;735:10;716:18;:30::i;:::-;756:51;784:4;790:6;798:8;756:27;:51::i;:::-;831:12;817:11;:26;;;;868:13;853:12;:28;;;;909:16;891:15;:34;;;;954:17;935:16;:36;;;;1235:15:11;1220:12;;:30;;;;;;;;;;;;;;;;;;449:529:5;;;;;;;;:::o;1242:277::-;1300:7;1323:19;1398:20;1345:43;1354:3;1359:11;;1372:15;;1345:8;:43::i;:::-;1323:65;;1421:45;1430:3;1435:12;;1449:16;;1421:8;:45::i;:::-;1398:68;;1483:29;1499:12;1483:11;:15;;:29;;;;:::i;:::-;1476:36;;1242:277;;;;;:::o;986:98:8:-;1041:7;1063:9;:16;1073:5;1063:16;;;;;;;;;;;;;;;;1056:23;;986:98;;;:::o;1375:113:7:-;926:9;:7;:9::i;:::-;918:18;;;;;;;;1451:6;;;;;;;;;;;1432:26;;;;;;;;;;;;1481:1;1464:6;;:19;;;;;;;;;;;;;;;;;;1375:113::o;741:70::-;778:7;800:6;;;;;;;;;;;793:13;;741:70;:::o;1028:83::-;1067:4;1100:6;;;;;;;;;;;1086:20;;:10;:20;;;1079:27;;1028:83;:::o;787:71:9:-;825:6;846:7;839:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;787:71;:::o;4463:340:8:-;4568:4;4609:1;4590:21;;:7;:21;;;;4582:30;;;;;;;;4659:50;4693:15;4659:8;:20;4668:10;4659:20;;;;;;;;;;;;;;;:29;4680:7;4659:29;;;;;;;;;;;;;;;;:33;;:50;;;;:::i;:::-;4619:8;:20;4628:10;4619:20;;;;;;;;;;;;;;;:29;4640:7;4619:29;;;;;;;;;;;;;;;:91;;;;4742:7;4721:60;;4730:10;4721:60;;;4751:8;:20;4760:10;4751:20;;;;;;;;;;;;;;;:29;4772:7;4751:29;;;;;;;;;;;;;;;;4721:60;;;;;;;;;;;;;;;;;;4794:4;4787:11;;4463:340;;;;:::o;349:31:5:-;;;;:::o;1703:127:8:-;1764:4;1776:32;1786:10;1798:2;1802:5;1776:9;:32::i;:::-;1821:4;1814:11;;1703:127;;;;:::o;2203:224:5:-;2264:7;2294:126;2306:113;2328:25;2346:6;2328:13;:11;:13::i;:::-;:17;;:25;;;;:::i;:::-;2367:12;;2393:16;;2306:8;:113::i;:::-;2294:7;;:11;;:126;;;;:::i;:::-;2287:133;;2203:224;;;:::o;279:27::-;;;;:::o;605:81:7:-;1121:20:11;1016:12;;;;;;;;;;;:31;;;;1032:15;:13;:15::i;:::-;1016:31;:47;;;;1052:11;;;;;;;;;;;1051:12;1016:47;1008:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1144:12;;;;;;;;;;;1121:35;;1177:4;1162:12;;:19;;;;;;;;;;;;;;;;;;1201:4;1187:11;;:18;;;;;;;;;;;;;;;;;;675:6:7;666;;:15;;;;;;;;;;;;;;;;;;1235::11;1220:12;;:30;;;;;;;;;;;;;;;;;;605:81:7;;:::o;359:22:4:-;;;;:::o;1770:427:5:-;1831:12;1859:20;1947:19;2001:20;1882:21;1889:13;:11;:13::i;:::-;1882:6;:21::i;:::-;1859:44;;1920:17;1930:6;1920:9;:17::i;:::-;1913:24;;1969:21;1976:13;:11;:13::i;:::-;1969:6;:21::i;:::-;1947:43;;2024:29;2040:12;2024:11;:15;;:29;;;;:::i;:::-;2001:52;;2073:25;2085:12;2073:7;;:11;;:25;;;;:::i;:::-;2063:7;:35;;;;2108:7;:5;:7::i;:::-;:16;;:30;2125:12;2108:30;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2108:30:5;2174:15;2153:37;2160:12;2153:37;;;;;;;;;;;;;;;;;;1770:427;;;;;;:::o;1401:150:8:-;1498:7;1522:8;:15;1531:5;1522:15;;;;;;;;;;;;;;;:24;1538:7;1522:24;;;;;;;;;;;;;;;;1515:31;;1401:150;;;;:::o;1511:496:4:-;1565:16;1614:1;1605:6;:10;1597:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1713:6;1688:21;1698:10;1688:9;:21::i;:::-;:31;;1667:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1811:14;1818:6;1811;:14::i;:::-;1800:25;;1845:21;1857:8;1845:7;;:11;;:21;;;;:::i;:::-;1835:7;:31;;;;1876:25;1882:10;1894:6;1876:5;:25::i;:::-;1911:10;:19;;:29;1931:8;1911:29;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1911:29:4;1984:15;1956:44;1966:6;1974:8;1956:44;;;;;;;;;;;;;;;;;;;;;;;;1511:496;;;:::o;1649:101:7:-;926:9;:7;:9::i;:::-;918:18;;;;;;;;1717:28;1736:8;1717:18;:28::i;:::-;1649:101;:::o;1341:467:11:-;1388:4;1729:10;1774:7;1762:20;1756:26;;1802:1;1796:2;:7;1789:14;;1341:467;;:::o;460:154:9:-;1121:20:11;1016:12;;;;;;;;;;;:31;;;;1032:15;:13;:15::i;:::-;1016:31;:47;;;;1052:11;;;;;;;;;;;1051:12;1016:47;1008:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1144:12;;;;;;;;;;;1121:35;;1177:4;1162:12;;:19;;;;;;;;;;;;;;;;;;1201:4;1187:11;;:18;;;;;;;;;;;;;;;;;;557:4:9;549:5;:12;;;;;;;;;;;;:::i;:::-;;577:6;567:7;:16;;;;;;;;;;;;:::i;:::-;;601:8;589:9;;:20;;;;;;;;;;;;;;;;;;1235:15:11;1220:12;;:30;;;;;;;;;;;;;;;;;;460:154:9;;;;:::o;1079:131:6:-;1137:7;1173:9;1165:1;1160;:6;;1152:15;;;;;;;;1189:1;1185;:5;1173:17;;1204:1;1197:8;;1079:131;;;;;:::o;5003:277:8:-;5095:9;:15;5105:4;5095:15;;;;;;;;;;;;;;;;5086:5;:24;;5078:33;;;;;;;;5139:1;5125:16;;:2;:16;;;;5117:25;;;;;;;;5167:26;5187:5;5167:9;:15;5177:4;5167:15;;;;;;;;;;;;;;;;:19;;:26;;;;:::i;:::-;5149:9;:15;5159:4;5149:15;;;;;;;;;;;;;;;:44;;;;5215:24;5233:5;5215:9;:13;5225:2;5215:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;5199:9;:13;5209:2;5199:13;;;;;;;;;;;;;;;:40;;;;5265:2;5250:25;;5259:4;5250:25;;;5269:5;5250:25;;;;;;;;;;;;;;;;;;5003:277;;;:::o;1273:131:6:-;1331:7;1346:9;1362:1;1358;:5;1346:17;;1382:1;1377;:6;;1369:15;;;;;;;;1398:1;1391:8;;1273:131;;;;;:::o;984:252:5:-;1110:7;1129:12;1144:15;1157:1;1144:8;:12;;:15;;;;:::i;:::-;1129:30;;1176:53;1222:6;1176:41;1204:12;1176:23;1194:4;1184;1177:3;:11;1176:17;;:23;;;;:::i;:::-;:27;;:41;;;;:::i;:::-;:45;;:53;;;;:::i;:::-;1169:60;;984:252;;;;;;:::o;948:552:4:-;1009:12;1054:1;1045:6;:10;1037:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1117:13;1123:6;1117:5;:13::i;:::-;1110:20;;1174:4;1161:9;:17;;1140:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1258:17;1270:4;1258:7;;:11;;:17;;;;:::i;:::-;1248:7;:27;;;;1285:25;1291:10;1303:6;1285:5;:25::i;:::-;1368:4;1356:9;:16;1352:87;;;1388:10;:19;;:40;1408:19;1422:4;1408:9;:13;;:19;;;;:::i;:::-;1388:40;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1388:40:4;1352:87;1477:15;1454:39;1463:6;1471:4;1454:39;;;;;;;;;;;;;;;;;;;;;;;;948:552;;;:::o;6060:283:8:-;6142:1;6131:7;:12;;;;6123:21;;;;;;;;6168:9;:18;6178:7;6168:18;;;;;;;;;;;;;;;;6158:6;:28;;6150:37;;;;;;;;6209:24;6226:6;6209:12;;:16;;:24;;;;:::i;:::-;6194:12;:39;;;;6260:30;6283:6;6260:9;:18;6270:7;6260:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;6239:9;:18;6249:7;6239:18;;;;;;;;;;;;;;;:51;;;;6327:1;6301:37;;6310:7;6301:37;;;6331:6;6301:37;;;;;;;;;;;;;;;;;;6060:283;;:::o;1884:169:7:-;1973:1;1953:22;;:8;:22;;;;1945:31;;;;;;;;2016:8;1987:38;;2008:6;;;;;;;;;;;1987:38;;;;;;;;;;;;2040:8;2031:6;;:17;;;;;;;;;;;;;;;;;;1884:169;:::o;696:270:6:-;754:7;847:9;781:1;777;:5;769:14;;;;;;;;863:1;859;:5;;;;;;;;847:17;;960:1;953:8;;696:270;;;;;:::o;5608:239:8:-;5690:1;5679:7;:12;;;;5671:21;;;;;;;;5713:24;5730:6;5713:12;;:16;;:24;;;;:::i;:::-;5698:12;:39;;;;5764:30;5787:6;5764:9;:18;5774:7;5764:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;5743:9;:18;5753:7;5743:18;;;;;;;;;;;;;;;:51;;;;5826:7;5805:37;;5822:1;5805:37;;;5835:6;5805:37;;;;;;;;;;;;;;;;;;5608:239;;:::o;175:2254:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-eth/contracts/ownership/Ownable.sol\";\nimport \"zos-lib/contracts/Initializable.sol\";\n\nimport \"../Reserve/WithEtherReserve.sol\";\n\ncontract SpreadEther is Initializable, Ownable, WithEtherReserve {\n\n uint256 public buyExponent;\n uint256 public sellExponent;\n\n uint256 public buyInverseSlope;\n uint256 public sellInverseSlope;\n\n event Payout(uint256 payout, uint256 indexed timestamp);\n\n function initialize(\n string name,\n string symbol,\n uint8 decimals,\n uint256 _buyExponent,\n uint256 _sellExponent,\n uint256 _buyInverseSlope,\n uint256 _sellInverseSlope\n ) initializer\n public\n {\n Ownable.initialize(msg.sender);\n WithEtherReserve.initialize(name, symbol, decimals);\n buyExponent = _buyExponent;\n sellExponent = _sellExponent;\n buyInverseSlope = _buyInverseSlope;\n sellInverseSlope = _sellInverseSlope;\n }\n\n function integral(\n uint256 toX,\n uint256 exponent,\n uint256 inverseSlope\n ) internal pure returns (uint256) {\n uint256 nexp = exponent.add(1);\n return (toX ** nexp).div(nexp).div(inverseSlope).div(10**18);\n }\n\n function spread(uint256 toX)\n public view returns (uint256)\n {\n uint256 buyIntegral = integral(toX, buyExponent, buyInverseSlope);\n uint256 sellIntegral = integral(toX, sellExponent, sellInverseSlope);\n return buyIntegral.sub(sellIntegral);\n }\n\n function price(uint256 tokens)\n public view returns (uint256)\n {\n return integral(\n totalSupply().add(tokens),\n buyExponent,\n buyInverseSlope\n ).sub(reserve);\n }\n\n /// Overwrite\n function buy(uint256 tokens)\n public payable returns (uint256 paid)\n {\n uint256 spreadBefore = spread(totalSupply());\n paid = super.buy(tokens);\n uint256 spreadAfter = spread(totalSupply());\n\n uint256 spreadPayout = spreadAfter.sub(spreadBefore);\n reserve = reserve.sub(spreadPayout);\n owner().transfer(spreadPayout);\n emit Payout(spreadPayout, block.timestamp);\n }\n\n function reward(uint256 tokens)\n public view returns (uint256)\n {\n return reserve.sub(integral(\n totalSupply().sub(tokens),\n sellExponent,\n sellInverseSlope\n ));\n }\n}\n", + "sourcePath": "@convergent/arc/contracts/Spreads/SpreadEther.sol", + "ast": { + "absolutePath": "@convergent/arc/contracts/Spreads/SpreadEther.sol", + "exportedSymbols": { + "SpreadEther": [ + 723 + ] + }, + "id": 724, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 487, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:5" + }, + { + "absolutePath": "openzeppelin-eth/contracts/ownership/Ownable.sol", + "file": "openzeppelin-eth/contracts/ownership/Ownable.sol", + "id": 488, + "nodeType": "ImportDirective", + "scope": 724, + "sourceUnit": 965, + "src": "26:58:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "zos-lib/contracts/Initializable.sol", + "file": "zos-lib/contracts/Initializable.sol", + "id": 489, + "nodeType": "ImportDirective", + "scope": 724, + "sourceUnit": 1608, + "src": "85:45:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@convergent/arc/contracts/Reserve/WithEtherReserve.sol", + "file": "../Reserve/WithEtherReserve.sol", + "id": 490, + "nodeType": "ImportDirective", + "scope": 724, + "sourceUnit": 486, + "src": "132:41:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 491, + "name": "Initializable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1607, + "src": "199:13:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Initializable_$1607", + "typeString": "contract Initializable" + } + }, + "id": 492, + "nodeType": "InheritanceSpecifier", + "src": "199:13:5" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 493, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 964, + "src": "214:7:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$964", + "typeString": "contract Ownable" + } + }, + "id": 494, + "nodeType": "InheritanceSpecifier", + "src": "214:7:5" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 495, + "name": "WithEtherReserve", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 485, + "src": "223:16:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_WithEtherReserve_$485", + "typeString": "contract WithEtherReserve" + } + }, + "id": 496, + "nodeType": "InheritanceSpecifier", + "src": "223:16:5" + } + ], + "contractDependencies": [ + 485, + 964, + 1415, + 1482, + 1551, + 1607 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 723, + "linearizedBaseContracts": [ + 723, + 485, + 1482, + 1415, + 1551, + 964, + 1607 + ], + "name": "SpreadEther", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 498, + "name": "buyExponent", + "nodeType": "VariableDeclaration", + "scope": 723, + "src": "247:26:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 497, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "247:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 500, + "name": "sellExponent", + "nodeType": "VariableDeclaration", + "scope": 723, + "src": "279:27:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 499, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "279:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 502, + "name": "buyInverseSlope", + "nodeType": "VariableDeclaration", + "scope": 723, + "src": "313:30:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "313:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 504, + "name": "sellInverseSlope", + "nodeType": "VariableDeclaration", + "scope": 723, + "src": "349:31:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 503, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "349:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 510, + "name": "Payout", + "nodeType": "EventDefinition", + "parameters": { + "id": 509, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 506, + "indexed": false, + "name": "payout", + "nodeType": "VariableDeclaration", + "scope": 510, + "src": "400:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 505, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "400:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 508, + "indexed": true, + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 510, + "src": "416:25:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 507, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "416:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "399:43:5" + }, + "src": "387:56:5" + }, + { + "body": { + "id": 560, + "nodeType": "Block", + "src": "706:272:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 532, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "735:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "735:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 529, + "name": "Ownable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 964, + "src": "716:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Ownable_$964_$", + "typeString": "type(contract Ownable)" + } + }, + "id": 531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "initialize", + "nodeType": "MemberAccess", + "referencedDeclaration": 880, + "src": "716:18:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "716:30:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 535, + "nodeType": "ExpressionStatement", + "src": "716:30:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 539, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 512, + "src": "784:4:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 540, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 514, + "src": "790:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 541, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "798:8:5", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "expression": { + "argumentTypes": null, + "id": 536, + "name": "WithEtherReserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "756:16:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_WithEtherReserve_$485_$", + "typeString": "type(contract WithEtherReserve)" + } + }, + "id": 538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "initialize", + "nodeType": "MemberAccess", + "referencedDeclaration": 344, + "src": "756:27:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$__$", + "typeString": "function (string memory,string memory,uint8)" + } + }, + "id": 542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "756:51:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 543, + "nodeType": "ExpressionStatement", + "src": "756:51:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 544, + "name": "buyExponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "817:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 545, + "name": "_buyExponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "831:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "817:26:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 547, + "nodeType": "ExpressionStatement", + "src": "817:26:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 548, + "name": "sellExponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 500, + "src": "853:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 549, + "name": "_sellExponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 520, + "src": "868:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "853:28:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 551, + "nodeType": "ExpressionStatement", + "src": "853:28:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 552, + "name": "buyInverseSlope", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 502, + "src": "891:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 553, + "name": "_buyInverseSlope", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 522, + "src": "909:16:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "891:34:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 555, + "nodeType": "ExpressionStatement", + "src": "891:34:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 556, + "name": "sellInverseSlope", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 504, + "src": "935:16:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 557, + "name": "_sellInverseSlope", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "954:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "935:36:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 559, + "nodeType": "ExpressionStatement", + "src": "935:36:5" + } + ] + }, + "documentation": null, + "id": 561, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 527, + "modifierName": { + "argumentTypes": null, + "id": 526, + "name": "initializer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1588, + "src": "675:11:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "675:11:5" + } + ], + "name": "initialize", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 525, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 512, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 561, + "src": "478:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 511, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "478:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 514, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 561, + "src": "499:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 513, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "499:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 516, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 561, + "src": "522:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 515, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "522:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 518, + "name": "_buyExponent", + "nodeType": "VariableDeclaration", + "scope": 561, + "src": "546:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 517, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "546:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 520, + "name": "_sellExponent", + "nodeType": "VariableDeclaration", + "scope": 561, + "src": "576:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 519, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "576:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 522, + "name": "_buyInverseSlope", + "nodeType": "VariableDeclaration", + "scope": 561, + "src": "607:24:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 521, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "607:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 524, + "name": "_sellInverseSlope", + "nodeType": "VariableDeclaration", + "scope": 561, + "src": "641:25:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 523, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "641:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "468:204:5" + }, + "payable": false, + "returnParameters": { + "id": 528, + "nodeType": "ParameterList", + "parameters": [], + "src": "706:0:5" + }, + "scope": 723, + "src": "449:529:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 595, + "nodeType": "Block", + "src": "1119:117:5", + "statements": [ + { + "assignments": [ + 573 + ], + "declarations": [ + { + "constant": false, + "id": 573, + "name": "nexp", + "nodeType": "VariableDeclaration", + "scope": 596, + "src": "1129:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 572, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1129:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 578, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1157:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "id": 574, + "name": "exponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 565, + "src": "1144:8:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 830, + "src": "1144:12:5", + "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": 577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1144:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1129:30:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "id": 592, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1222:2:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 591, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1226:2:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "1222:6:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 587, + "name": "inverseSlope", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 567, + "src": "1204:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 584, + "name": "nexp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 573, + "src": "1194:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 579, + "name": "toX", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 563, + "src": "1177:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "id": 580, + "name": "nexp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 573, + "src": "1184:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1177:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 582, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1176:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 782, + "src": "1176:17:5", + "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": 585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1176:23:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 782, + "src": "1176:27:5", + "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": 588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1176:41:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 782, + "src": "1176:45:5", + "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": 593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1176:53:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 571, + "id": 594, + "nodeType": "Return", + "src": "1169:60:5" + } + ] + }, + "documentation": null, + "id": 596, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "integral", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 568, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 563, + "name": "toX", + "nodeType": "VariableDeclaration", + "scope": 596, + "src": "1011:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 562, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1011:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 565, + "name": "exponent", + "nodeType": "VariableDeclaration", + "scope": 596, + "src": "1032:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1032:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 567, + "name": "inverseSlope", + "nodeType": "VariableDeclaration", + "scope": 596, + "src": "1058:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 566, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1058:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1001:83:5" + }, + "payable": false, + "returnParameters": { + "id": 571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 570, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 596, + "src": "1110:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 569, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1110:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1109:9:5" + }, + "scope": 723, + "src": "984:252:5", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 624, + "nodeType": "Block", + "src": "1313:206:5", + "statements": [ + { + "assignments": [ + 604 + ], + "declarations": [ + { + "constant": false, + "id": 604, + "name": "buyIntegral", + "nodeType": "VariableDeclaration", + "scope": 625, + "src": "1323:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1323:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 610, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 606, + "name": "toX", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 598, + "src": "1354:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 607, + "name": "buyExponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "1359:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 608, + "name": "buyInverseSlope", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 502, + "src": "1372:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 605, + "name": "integral", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 596, + "src": "1345:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1345:43:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1323:65:5" + }, + { + "assignments": [ + 612 + ], + "declarations": [ + { + "constant": false, + "id": 612, + "name": "sellIntegral", + "nodeType": "VariableDeclaration", + "scope": 625, + "src": "1398:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1398:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 618, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 614, + "name": "toX", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 598, + "src": "1430:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 615, + "name": "sellExponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 500, + "src": "1435:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 616, + "name": "sellInverseSlope", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 504, + "src": "1449:16:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 613, + "name": "integral", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 596, + "src": "1421:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1421:45:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1398:68:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 621, + "name": "sellIntegral", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 612, + "src": "1499:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 619, + "name": "buyIntegral", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 604, + "src": "1483:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 806, + "src": "1483:15:5", + "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": 622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1483:29:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 602, + "id": 623, + "nodeType": "Return", + "src": "1476:36:5" + } + ] + }, + "documentation": null, + "id": 625, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "spread", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 598, + "name": "toX", + "nodeType": "VariableDeclaration", + "scope": 625, + "src": "1258:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 597, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1258:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1257:13:5" + }, + "payable": false, + "returnParameters": { + "id": 602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 601, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 625, + "src": "1300:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1300:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1299:9:5" + }, + "scope": 723, + "src": "1242:277:5", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 645, + "nodeType": "Block", + "src": "1598:148:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 642, + "name": "reserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 308, + "src": "1731:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 636, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "1655:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 633, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 996, + "src": "1637:11:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1637:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 830, + "src": "1637:17:5", + "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": 637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1637:25:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 638, + "name": "buyExponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "1676:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 639, + "name": "buyInverseSlope", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 502, + "src": "1701:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 632, + "name": "integral", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 596, + "src": "1615:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1615:111:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 806, + "src": "1615:115:5", + "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": 643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1615:124:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 631, + "id": 644, + "nodeType": "Return", + "src": "1608:131:5" + } + ] + }, + "documentation": null, + "id": 646, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "price", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 628, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 627, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 646, + "src": "1540:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 626, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1540:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1539:16:5" + }, + "payable": false, + "returnParameters": { + "id": 631, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 630, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 646, + "src": "1585:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 629, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1585:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1584:9:5" + }, + "scope": 723, + "src": "1525:221:5", + "stateMutability": "view", + "superFunction": 351, + "visibility": "public" + }, + { + "body": { + "id": 700, + "nodeType": "Block", + "src": "1849:348:5", + "statements": [ + { + "assignments": [ + 654 + ], + "declarations": [ + { + "constant": false, + "id": 654, + "name": "spreadBefore", + "nodeType": "VariableDeclaration", + "scope": 701, + "src": "1859:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 653, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1859:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 659, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 656, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 996, + "src": "1889:11:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1889:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 655, + "name": "spread", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 625, + "src": "1882:6:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1882:21:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1859:44:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 660, + "name": "paid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 651, + "src": "1913:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 663, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 648, + "src": "1930:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 661, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1654, + "src": "1920:5:5", + "typeDescriptions": { + "typeIdentifier": "t_super$_SpreadEther_$723", + "typeString": "contract super SpreadEther" + } + }, + "id": 662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "buy", + "nodeType": "MemberAccess", + "referencedDeclaration": 425, + "src": "1920:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) returns (uint256)" + } + }, + "id": 664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1920:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1913:24:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 666, + "nodeType": "ExpressionStatement", + "src": "1913:24:5" + }, + { + "assignments": [ + 668 + ], + "declarations": [ + { + "constant": false, + "id": 668, + "name": "spreadAfter", + "nodeType": "VariableDeclaration", + "scope": 701, + "src": "1947:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 667, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1947:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 673, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 670, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 996, + "src": "1976:11:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1976:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 669, + "name": "spread", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 625, + "src": "1969:6:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1969:21:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1947:43:5" + }, + { + "assignments": [ + 675 + ], + "declarations": [ + { + "constant": false, + "id": 675, + "name": "spreadPayout", + "nodeType": "VariableDeclaration", + "scope": 701, + "src": "2001:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 674, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2001:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 680, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 678, + "name": "spreadBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 654, + "src": "2040:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 676, + "name": "spreadAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 668, + "src": "2024:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 806, + "src": "2024:15:5", + "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": 679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2024:29:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2001:52:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 681, + "name": "reserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 308, + "src": "2063:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 684, + "name": "spreadPayout", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 675, + "src": "2085:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 682, + "name": "reserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 308, + "src": "2073:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 806, + "src": "2073:11:5", + "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": 685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2073:25:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2063:35:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 687, + "nodeType": "ExpressionStatement", + "src": "2063:35:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 691, + "name": "spreadPayout", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 675, + "src": "2125:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 688, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "2108:5:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2108:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2108:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2108:30:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 693, + "nodeType": "ExpressionStatement", + "src": "2108:30:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 695, + "name": "spreadPayout", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 675, + "src": "2160:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 696, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1612, + "src": "2174:5:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2174:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 694, + "name": "Payout", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 510, + "src": "2153:6:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2153:37:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 699, + "nodeType": "EmitStatement", + "src": "2148:42:5" + } + ] + }, + "documentation": "Overwrite", + "id": 701, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "buy", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 649, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 648, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 701, + "src": "1783:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 647, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1783:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1782:16:5" + }, + "payable": true, + "returnParameters": { + "id": 652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 651, + "name": "paid", + "nodeType": "VariableDeclaration", + "scope": 701, + "src": "1831:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 650, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1831:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1830:14:5" + }, + "scope": 723, + "src": "1770:427:5", + "stateMutability": "payable", + "superFunction": 425, + "visibility": "public" + }, + { + "body": { + "id": 721, + "nodeType": "Block", + "src": "2277:150:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 714, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "2346:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 711, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 996, + "src": "2328:11:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2328:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 806, + "src": "2328:17:5", + "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": 715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2328:25:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 716, + "name": "sellExponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 500, + "src": "2367:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 717, + "name": "sellInverseSlope", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 504, + "src": "2393:16:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 710, + "name": "integral", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 596, + "src": "2306:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2306:113:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 708, + "name": "reserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 308, + "src": "2294:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 806, + "src": "2294:11:5", + "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": 719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2294:126:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 707, + "id": 720, + "nodeType": "Return", + "src": "2287:133:5" + } + ] + }, + "documentation": null, + "id": 722, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "reward", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 703, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 722, + "src": "2219:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2219:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2218:16:5" + }, + "payable": false, + "returnParameters": { + "id": 707, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 706, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 722, + "src": "2264:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 705, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2264:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2263:9:5" + }, + "scope": 723, + "src": "2203:224:5", + "stateMutability": "view", + "superFunction": 358, + "visibility": "public" + } + ], + "scope": 724, + "src": "175:2254:5" + } + ], + "src": "0:2430:5" + }, + "legacyAST": { + "absolutePath": "@convergent/arc/contracts/Spreads/SpreadEther.sol", + "exportedSymbols": { + "SpreadEther": [ + 723 + ] + }, + "id": 724, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 487, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:5" + }, + { + "absolutePath": "openzeppelin-eth/contracts/ownership/Ownable.sol", + "file": "openzeppelin-eth/contracts/ownership/Ownable.sol", + "id": 488, + "nodeType": "ImportDirective", + "scope": 724, + "sourceUnit": 965, + "src": "26:58:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "zos-lib/contracts/Initializable.sol", + "file": "zos-lib/contracts/Initializable.sol", + "id": 489, + "nodeType": "ImportDirective", + "scope": 724, + "sourceUnit": 1608, + "src": "85:45:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@convergent/arc/contracts/Reserve/WithEtherReserve.sol", + "file": "../Reserve/WithEtherReserve.sol", + "id": 490, + "nodeType": "ImportDirective", + "scope": 724, + "sourceUnit": 486, + "src": "132:41:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 491, + "name": "Initializable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1607, + "src": "199:13:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Initializable_$1607", + "typeString": "contract Initializable" + } + }, + "id": 492, + "nodeType": "InheritanceSpecifier", + "src": "199:13:5" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 493, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 964, + "src": "214:7:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$964", + "typeString": "contract Ownable" + } + }, + "id": 494, + "nodeType": "InheritanceSpecifier", + "src": "214:7:5" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 495, + "name": "WithEtherReserve", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 485, + "src": "223:16:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_WithEtherReserve_$485", + "typeString": "contract WithEtherReserve" + } + }, + "id": 496, + "nodeType": "InheritanceSpecifier", + "src": "223:16:5" + } + ], + "contractDependencies": [ + 485, + 964, + 1415, + 1482, + 1551, + 1607 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 723, + "linearizedBaseContracts": [ + 723, + 485, + 1482, + 1415, + 1551, + 964, + 1607 + ], + "name": "SpreadEther", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 498, + "name": "buyExponent", + "nodeType": "VariableDeclaration", + "scope": 723, + "src": "247:26:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 497, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "247:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 500, + "name": "sellExponent", + "nodeType": "VariableDeclaration", + "scope": 723, + "src": "279:27:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 499, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "279:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 502, + "name": "buyInverseSlope", + "nodeType": "VariableDeclaration", + "scope": 723, + "src": "313:30:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "313:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 504, + "name": "sellInverseSlope", + "nodeType": "VariableDeclaration", + "scope": 723, + "src": "349:31:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 503, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "349:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 510, + "name": "Payout", + "nodeType": "EventDefinition", + "parameters": { + "id": 509, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 506, + "indexed": false, + "name": "payout", + "nodeType": "VariableDeclaration", + "scope": 510, + "src": "400:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 505, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "400:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 508, + "indexed": true, + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 510, + "src": "416:25:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 507, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "416:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "399:43:5" + }, + "src": "387:56:5" + }, + { + "body": { + "id": 560, + "nodeType": "Block", + "src": "706:272:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 532, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "735:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "735:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 529, + "name": "Ownable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 964, + "src": "716:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Ownable_$964_$", + "typeString": "type(contract Ownable)" + } + }, + "id": 531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "initialize", + "nodeType": "MemberAccess", + "referencedDeclaration": 880, + "src": "716:18:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "716:30:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 535, + "nodeType": "ExpressionStatement", + "src": "716:30:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 539, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 512, + "src": "784:4:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 540, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 514, + "src": "790:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 541, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "798:8:5", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "expression": { + "argumentTypes": null, + "id": 536, + "name": "WithEtherReserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 485, + "src": "756:16:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_WithEtherReserve_$485_$", + "typeString": "type(contract WithEtherReserve)" + } + }, + "id": 538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "initialize", + "nodeType": "MemberAccess", + "referencedDeclaration": 344, + "src": "756:27:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$__$", + "typeString": "function (string memory,string memory,uint8)" + } + }, + "id": 542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "756:51:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 543, + "nodeType": "ExpressionStatement", + "src": "756:51:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 544, + "name": "buyExponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "817:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 545, + "name": "_buyExponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "831:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "817:26:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 547, + "nodeType": "ExpressionStatement", + "src": "817:26:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 548, + "name": "sellExponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 500, + "src": "853:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 549, + "name": "_sellExponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 520, + "src": "868:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "853:28:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 551, + "nodeType": "ExpressionStatement", + "src": "853:28:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 552, + "name": "buyInverseSlope", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 502, + "src": "891:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 553, + "name": "_buyInverseSlope", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 522, + "src": "909:16:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "891:34:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 555, + "nodeType": "ExpressionStatement", + "src": "891:34:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 556, + "name": "sellInverseSlope", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 504, + "src": "935:16:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 557, + "name": "_sellInverseSlope", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "954:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "935:36:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 559, + "nodeType": "ExpressionStatement", + "src": "935:36:5" + } + ] + }, + "documentation": null, + "id": 561, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 527, + "modifierName": { + "argumentTypes": null, + "id": 526, + "name": "initializer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1588, + "src": "675:11:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "675:11:5" + } + ], + "name": "initialize", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 525, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 512, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 561, + "src": "478:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 511, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "478:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 514, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 561, + "src": "499:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 513, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "499:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 516, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 561, + "src": "522:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 515, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "522:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 518, + "name": "_buyExponent", + "nodeType": "VariableDeclaration", + "scope": 561, + "src": "546:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 517, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "546:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 520, + "name": "_sellExponent", + "nodeType": "VariableDeclaration", + "scope": 561, + "src": "576:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 519, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "576:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 522, + "name": "_buyInverseSlope", + "nodeType": "VariableDeclaration", + "scope": 561, + "src": "607:24:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 521, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "607:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 524, + "name": "_sellInverseSlope", + "nodeType": "VariableDeclaration", + "scope": 561, + "src": "641:25:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 523, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "641:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "468:204:5" + }, + "payable": false, + "returnParameters": { + "id": 528, + "nodeType": "ParameterList", + "parameters": [], + "src": "706:0:5" + }, + "scope": 723, + "src": "449:529:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 595, + "nodeType": "Block", + "src": "1119:117:5", + "statements": [ + { + "assignments": [ + 573 + ], + "declarations": [ + { + "constant": false, + "id": 573, + "name": "nexp", + "nodeType": "VariableDeclaration", + "scope": 596, + "src": "1129:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 572, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1129:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 578, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1157:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "id": 574, + "name": "exponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 565, + "src": "1144:8:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 830, + "src": "1144:12:5", + "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": 577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1144:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1129:30:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "id": 592, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1222:2:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 591, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1226:2:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "1222:6:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 587, + "name": "inverseSlope", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 567, + "src": "1204:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 584, + "name": "nexp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 573, + "src": "1194:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 579, + "name": "toX", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 563, + "src": "1177:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "id": 580, + "name": "nexp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 573, + "src": "1184:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1177:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 582, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1176:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 782, + "src": "1176:17:5", + "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": 585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1176:23:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 782, + "src": "1176:27:5", + "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": 588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1176:41:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 782, + "src": "1176:45:5", + "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": 593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1176:53:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 571, + "id": 594, + "nodeType": "Return", + "src": "1169:60:5" + } + ] + }, + "documentation": null, + "id": 596, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "integral", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 568, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 563, + "name": "toX", + "nodeType": "VariableDeclaration", + "scope": 596, + "src": "1011:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 562, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1011:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 565, + "name": "exponent", + "nodeType": "VariableDeclaration", + "scope": 596, + "src": "1032:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1032:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 567, + "name": "inverseSlope", + "nodeType": "VariableDeclaration", + "scope": 596, + "src": "1058:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 566, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1058:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1001:83:5" + }, + "payable": false, + "returnParameters": { + "id": 571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 570, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 596, + "src": "1110:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 569, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1110:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1109:9:5" + }, + "scope": 723, + "src": "984:252:5", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 624, + "nodeType": "Block", + "src": "1313:206:5", + "statements": [ + { + "assignments": [ + 604 + ], + "declarations": [ + { + "constant": false, + "id": 604, + "name": "buyIntegral", + "nodeType": "VariableDeclaration", + "scope": 625, + "src": "1323:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1323:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 610, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 606, + "name": "toX", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 598, + "src": "1354:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 607, + "name": "buyExponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "1359:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 608, + "name": "buyInverseSlope", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 502, + "src": "1372:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 605, + "name": "integral", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 596, + "src": "1345:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1345:43:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1323:65:5" + }, + { + "assignments": [ + 612 + ], + "declarations": [ + { + "constant": false, + "id": 612, + "name": "sellIntegral", + "nodeType": "VariableDeclaration", + "scope": 625, + "src": "1398:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1398:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 618, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 614, + "name": "toX", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 598, + "src": "1430:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 615, + "name": "sellExponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 500, + "src": "1435:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 616, + "name": "sellInverseSlope", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 504, + "src": "1449:16:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 613, + "name": "integral", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 596, + "src": "1421:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1421:45:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1398:68:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 621, + "name": "sellIntegral", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 612, + "src": "1499:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 619, + "name": "buyIntegral", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 604, + "src": "1483:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 806, + "src": "1483:15:5", + "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": 622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1483:29:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 602, + "id": 623, + "nodeType": "Return", + "src": "1476:36:5" + } + ] + }, + "documentation": null, + "id": 625, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "spread", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 598, + "name": "toX", + "nodeType": "VariableDeclaration", + "scope": 625, + "src": "1258:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 597, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1258:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1257:13:5" + }, + "payable": false, + "returnParameters": { + "id": 602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 601, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 625, + "src": "1300:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1300:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1299:9:5" + }, + "scope": 723, + "src": "1242:277:5", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 645, + "nodeType": "Block", + "src": "1598:148:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 642, + "name": "reserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 308, + "src": "1731:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 636, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "1655:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 633, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 996, + "src": "1637:11:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1637:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 830, + "src": "1637:17:5", + "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": 637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1637:25:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 638, + "name": "buyExponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "1676:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 639, + "name": "buyInverseSlope", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 502, + "src": "1701:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 632, + "name": "integral", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 596, + "src": "1615:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1615:111:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 806, + "src": "1615:115:5", + "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": 643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1615:124:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 631, + "id": 644, + "nodeType": "Return", + "src": "1608:131:5" + } + ] + }, + "documentation": null, + "id": 646, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "price", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 628, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 627, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 646, + "src": "1540:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 626, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1540:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1539:16:5" + }, + "payable": false, + "returnParameters": { + "id": 631, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 630, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 646, + "src": "1585:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 629, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1585:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1584:9:5" + }, + "scope": 723, + "src": "1525:221:5", + "stateMutability": "view", + "superFunction": 351, + "visibility": "public" + }, + { + "body": { + "id": 700, + "nodeType": "Block", + "src": "1849:348:5", + "statements": [ + { + "assignments": [ + 654 + ], + "declarations": [ + { + "constant": false, + "id": 654, + "name": "spreadBefore", + "nodeType": "VariableDeclaration", + "scope": 701, + "src": "1859:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 653, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1859:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 659, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 656, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 996, + "src": "1889:11:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1889:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 655, + "name": "spread", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 625, + "src": "1882:6:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1882:21:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1859:44:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 660, + "name": "paid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 651, + "src": "1913:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 663, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 648, + "src": "1930:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 661, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1654, + "src": "1920:5:5", + "typeDescriptions": { + "typeIdentifier": "t_super$_SpreadEther_$723", + "typeString": "contract super SpreadEther" + } + }, + "id": 662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "buy", + "nodeType": "MemberAccess", + "referencedDeclaration": 425, + "src": "1920:9:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) returns (uint256)" + } + }, + "id": 664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1920:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1913:24:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 666, + "nodeType": "ExpressionStatement", + "src": "1913:24:5" + }, + { + "assignments": [ + 668 + ], + "declarations": [ + { + "constant": false, + "id": 668, + "name": "spreadAfter", + "nodeType": "VariableDeclaration", + "scope": 701, + "src": "1947:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 667, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1947:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 673, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 670, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 996, + "src": "1976:11:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1976:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 669, + "name": "spread", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 625, + "src": "1969:6:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1969:21:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1947:43:5" + }, + { + "assignments": [ + 675 + ], + "declarations": [ + { + "constant": false, + "id": 675, + "name": "spreadPayout", + "nodeType": "VariableDeclaration", + "scope": 701, + "src": "2001:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 674, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2001:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 680, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 678, + "name": "spreadBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 654, + "src": "2040:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 676, + "name": "spreadAfter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 668, + "src": "2024:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 806, + "src": "2024:15:5", + "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": 679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2024:29:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2001:52:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 681, + "name": "reserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 308, + "src": "2063:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 684, + "name": "spreadPayout", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 675, + "src": "2085:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 682, + "name": "reserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 308, + "src": "2073:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 806, + "src": "2073:11:5", + "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": 685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2073:25:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2063:35:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 687, + "nodeType": "ExpressionStatement", + "src": "2063:35:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 691, + "name": "spreadPayout", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 675, + "src": "2125:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 688, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "2108:5:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2108:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2108:16:5", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2108:30:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 693, + "nodeType": "ExpressionStatement", + "src": "2108:30:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 695, + "name": "spreadPayout", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 675, + "src": "2160:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 696, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1612, + "src": "2174:5:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2174:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 694, + "name": "Payout", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 510, + "src": "2153:6:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2153:37:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 699, + "nodeType": "EmitStatement", + "src": "2148:42:5" + } + ] + }, + "documentation": "Overwrite", + "id": 701, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "buy", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 649, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 648, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 701, + "src": "1783:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 647, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1783:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1782:16:5" + }, + "payable": true, + "returnParameters": { + "id": 652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 651, + "name": "paid", + "nodeType": "VariableDeclaration", + "scope": 701, + "src": "1831:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 650, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1831:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1830:14:5" + }, + "scope": 723, + "src": "1770:427:5", + "stateMutability": "payable", + "superFunction": 425, + "visibility": "public" + }, + { + "body": { + "id": 721, + "nodeType": "Block", + "src": "2277:150:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 714, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 703, + "src": "2346:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 711, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 996, + "src": "2328:11:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2328:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 806, + "src": "2328:17:5", + "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": 715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2328:25:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 716, + "name": "sellExponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 500, + "src": "2367:12:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 717, + "name": "sellInverseSlope", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 504, + "src": "2393:16:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 710, + "name": "integral", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 596, + "src": "2306:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2306:113:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 708, + "name": "reserve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 308, + "src": "2294:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 806, + "src": "2294:11:5", + "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": 719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2294:126:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 707, + "id": 720, + "nodeType": "Return", + "src": "2287:133:5" + } + ] + }, + "documentation": null, + "id": 722, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "reward", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 703, + "name": "tokens", + "nodeType": "VariableDeclaration", + "scope": 722, + "src": "2219:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2219:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2218:16:5" + }, + "payable": false, + "returnParameters": { + "id": 707, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 706, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 722, + "src": "2264:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 705, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2264:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2263:9:5" + }, + "scope": 723, + "src": "2203:224:5", + "stateMutability": "view", + "superFunction": 358, + "visibility": "public" + } + ], + "scope": 724, + "src": "175:2254:5" + } + ], + "src": "0:2430:5" + }, + "compiler": { + "name": "solc", + "version": "0.4.25+commit.59dbf8f1.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.0-beta.1", + "updatedAt": "2018-12-17T02:12:29.700Z", + "devdoc": { + "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 the balance of." + }, + "return": "An uint256 representing the amount owned by the passed address." + }, + "decimals()": { + "return": "the number of decimals of the token." + }, + "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", + "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", + "params": { + "addedValue": "The amount of tokens to increase the allowance by.", + "spender": "The address which will spend the funds." + } + }, + "initialize(address)": { + "details": "The Ownable constructor sets the original `owner` of the contract to the sender account." + }, + "isOwner()": { + "return": "true if `msg.sender` is the owner of the contract." + }, + "name()": { + "return": "the name of the token." + }, + "owner()": { + "return": "the address of the owner." + }, + "renounceOwnership()": { + "details": "Allows the current owner to relinquish control of the contract." + }, + "symbol()": { + "return": "the symbol of the token." + }, + "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", + "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" + } + }, + "transferOwnership(address)": { + "details": "Allows the current owner to transfer control of the contract to a newOwner.", + "params": { + "newOwner": "The address to transfer ownership to." + } + } + } + }, + "userdoc": { + "methods": { + "buy(uint256)": { + "notice": "Overwrite" + }, + "renounceOwnership()": { + "notice": "Renouncing to ownership will leave the contract without an owner. It will not be possible to call the functions with the `onlyOwner` modifier anymore." + } + } + } +} \ No newline at end of file diff --git a/src/build/contracts/EthBondingCurvedToken.json b/src/build/contracts/WithEtherReserve.json similarity index 67% rename from src/build/contracts/EthBondingCurvedToken.json rename to src/build/contracts/WithEtherReserve.json index 3da4ac9..9d8daee 100644 --- a/src/build/contracts/EthBondingCurvedToken.json +++ b/src/build/contracts/WithEtherReserve.json @@ -1,5 +1,5 @@ { - "contractName": "EthBondingCurvedToken", + "contractName": "WithEtherReserve", "abi": [ { "constant": true, @@ -149,20 +149,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": true, - "inputs": [], - "name": "poolBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "constant": false, "inputs": [ @@ -209,6 +195,20 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "reserve", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [ @@ -232,25 +232,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [ - { - "name": "name", - "type": "string" - }, - { - "name": "symbol", - "type": "string" - }, - { - "name": "decimals", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, { "anonymous": false, "inputs": [ @@ -261,11 +242,16 @@ }, { "indexed": false, - "name": "totalCost", + "name": "paid", + "type": "uint256" + }, + { + "indexed": true, + "name": "when", "type": "uint256" } ], - "name": "Minted", + "name": "CurveBuy", "type": "event" }, { @@ -278,11 +264,16 @@ }, { "indexed": false, - "name": "reward", + "name": "rewarded", + "type": "uint256" + }, + { + "indexed": true, + "name": "when", "type": "uint256" } ], - "name": "Burned", + "name": "CurveSell", "type": "event" }, { @@ -329,18 +320,40 @@ "name": "Approval", "type": "event" }, + { + "constant": false, + "inputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "symbol", + "type": "string" + }, + { + "name": "decimals", + "type": "uint8" + } + ], + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [ { - "name": "numTokens", + "name": "tokens", "type": "uint256" } ], - "name": "priceToMint", + "name": "price", "outputs": [ { - "name": "", + "name": "thePrice", "type": "uint256" } ], @@ -352,14 +365,14 @@ "constant": true, "inputs": [ { - "name": "numTokens", + "name": "tokens", "type": "uint256" } ], - "name": "rewardForBurn", + "name": "reward", "outputs": [ { - "name": "", + "name": "theReward", "type": "uint256" } ], @@ -371,12 +384,17 @@ "constant": false, "inputs": [ { - "name": "numTokens", + "name": "tokens", + "type": "uint256" + } + ], + "name": "buy", + "outputs": [ + { + "name": "paid", "type": "uint256" } ], - "name": "mint", - "outputs": [], "payable": true, "stateMutability": "payable", "type": "function" @@ -385,12 +403,17 @@ "constant": false, "inputs": [ { - "name": "numTokens", + "name": "tokens", + "type": "uint256" + } + ], + "name": "sell", + "outputs": [ + { + "name": "rewarded", "type": "uint256" } ], - "name": "burn", - "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" @@ -400,20 +423,20 @@ "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", - "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\n\ncontract EthBondingCurvedToken is ERC20Detailed, ERC20 {\n using SafeMath for uint256;\n\n uint256 public poolBalance;\n\n event Minted(uint256 amount, uint256 totalCost);\n event Burned(uint256 amount, uint256 reward);\n\n constructor(\n string name,\n string symbol,\n uint8 decimals\n ) ERC20Detailed(name, symbol, decimals)\n public\n {}\n\n function priceToMint(uint256 numTokens) public view returns (uint256);\n\n function rewardForBurn(uint256 numTokens) public view returns (uint256);\n\n function mint(uint256 numTokens) public payable {\n require(numTokens > 0, \"Must purchase an amount greater than zero.\");\n\n uint256 priceForTokens = priceToMint(numTokens);\n require(msg.value >= priceForTokens, \"Must send requisite amount to purchase.\");\n\n _mint(msg.sender, numTokens);\n poolBalance = poolBalance.add(priceForTokens);\n if (msg.value > priceForTokens) {\n msg.sender.transfer(msg.value.sub(priceForTokens));\n }\n\n emit Minted(numTokens, priceForTokens);\n }\n\n function burn(uint256 numTokens) public {\n require(numTokens > 0, \"Must burn an amount greater than zero.\");\n require(balanceOf(msg.sender) >= numTokens, \"Must have enough tokens to burn.\");\n\n uint256 ethToReturn = rewardForBurn(numTokens);\n _burn(msg.sender, numTokens);\n poolBalance = poolBalance.sub(ethToReturn);\n msg.sender.transfer(ethToReturn);\n\n emit Burned(numTokens, ethToReturn);\n }\n}\n", - "sourcePath": "@convergent/arc/contracts/EthBondingCurveToken.sol", + "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-eth/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-eth/contracts/token/ERC20/ERC20.sol\";\nimport \"openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol\";\nimport \"zos-lib/contracts/Initializable.sol\";\n\n\ncontract WithEtherReserve is Initializable, ERC20, ERC20Detailed {\n using SafeMath for uint256;\n\n uint256 public reserve;\n\n event CurveBuy(uint256 amount, uint256 paid, uint256 indexed when);\n event CurveSell(uint256 amount, uint256 rewarded, uint256 indexed when);\n\n function initialize(string name, string symbol, uint8 decimals)\n initializer\n public\n {\n ERC20Detailed.initialize(name, symbol, decimals);\n }\n\n /**\n * Curve function interfaces */\n\n function price(uint256 tokens) public view returns (uint256 thePrice);\n function reward(uint256 tokens) public view returns (uint256 theReward);\n\n /**\n * stake and withdraw */\n\n function buy(uint256 tokens)\n public payable returns (uint256 paid)\n {\n require(tokens > 0, \"Must request non-zero amount of tokens.\");\n\n paid = price(tokens);\n require(\n msg.value >= paid,\n \"Did not send enough ether to buy!\"\n );\n\n reserve = reserve.add(paid);\n _mint(msg.sender, tokens);\n // extra funds handling\n if (msg.value > paid) {\n msg.sender.transfer(msg.value.sub(paid));\n }\n\n emit CurveBuy(tokens, paid, block.timestamp);\n } \n \n function sell(uint256 tokens)\n public returns (uint256 rewarded)\n {\n require(tokens > 0, \"Must spend non-zero amount of tokens.\");\n require(\n balanceOf(msg.sender) >= tokens,\n \"Sender does not have enough tokens to spend.\"\n );\n\n rewarded = reward(tokens);\n reserve = reserve.sub(rewarded);\n _burn(msg.sender, tokens);\n msg.sender.transfer(rewarded);\n\n emit CurveSell(tokens, rewarded, block.timestamp);\n }\n}\n", + "sourcePath": "@convergent/arc/contracts/Reserve/WithEtherReserve.sol", "ast": { - "absolutePath": "@convergent/arc/contracts/EthBondingCurveToken.sol", + "absolutePath": "@convergent/arc/contracts/Reserve/WithEtherReserve.sol", "exportedSymbols": { - "EthBondingCurvedToken": [ - 459 + "WithEtherReserve": [ + 485 ] }, - "id": 460, + "id": 486, "nodeType": "SourceUnit", "nodes": [ { - "id": 287, + "id": 293, "literals": [ "solidity", "^", @@ -424,35 +447,46 @@ "src": "0:24:4" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "id": 288, + "absolutePath": "openzeppelin-eth/contracts/math/SafeMath.sol", + "file": "openzeppelin-eth/contracts/math/SafeMath.sol", + "id": 294, + "nodeType": "ImportDirective", + "scope": 486, + "sourceUnit": 852, + "src": "26:54:4", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", + "file": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", + "id": 295, "nodeType": "ImportDirective", - "scope": 460, - "sourceUnit": 1212, - "src": "26:71:4", + "scope": 486, + "sourceUnit": 1416, + "src": "81:58:4", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 289, + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol", + "file": "openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol", + "id": 296, "nodeType": "ImportDirective", - "scope": 460, - "sourceUnit": 1154, - "src": "98:63:4", + "scope": 486, + "sourceUnit": 1483, + "src": "140:66:4", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 290, + "absolutePath": "zos-lib/contracts/Initializable.sol", + "file": "zos-lib/contracts/Initializable.sol", + "id": 297, "nodeType": "ImportDirective", - "scope": 460, - "sourceUnit": 710, - "src": "162:59:4", + "scope": 486, + "sourceUnit": 1608, + "src": "207:45:4", "symbolAliases": [], "unitAlias": "" }, @@ -462,78 +496,98 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 291, - "name": "ERC20Detailed", + "id": 298, + "name": "Initializable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1211, - "src": "258:13:4", + "referencedDeclaration": 1607, + "src": "284:13:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$1211", - "typeString": "contract ERC20Detailed" + "typeIdentifier": "t_contract$_Initializable_$1607", + "typeString": "contract Initializable" } }, - "id": 292, + "id": 299, "nodeType": "InheritanceSpecifier", - "src": "258:13:4" + "src": "284:13:4" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 293, + "id": 300, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1153, - "src": "273:5:4", + "referencedDeclaration": 1415, + "src": "299:5:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$1153", + "typeIdentifier": "t_contract$_ERC20_$1415", "typeString": "contract ERC20" } }, - "id": 294, + "id": 301, "nodeType": "InheritanceSpecifier", - "src": "273:5:4" + "src": "299:5:4" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 302, + "name": "ERC20Detailed", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1482, + "src": "306:13:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$1482", + "typeString": "contract ERC20Detailed" + } + }, + "id": 303, + "nodeType": "InheritanceSpecifier", + "src": "306:13:4" } ], "contractDependencies": [ - 1153, - 1211, - 1280 + 1415, + 1482, + 1551, + 1607 ], "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 459, + "id": 485, "linearizedBaseContracts": [ - 459, - 1153, - 1211, - 1280 + 485, + 1482, + 1415, + 1551, + 1607 ], - "name": "EthBondingCurvedToken", + "name": "WithEtherReserve", "nodeType": "ContractDefinition", "nodes": [ { - "id": 297, + "id": 306, "libraryName": { "contractScope": null, - "id": 295, + "id": 304, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 709, - "src": "291:8:4", + "referencedDeclaration": 851, + "src": "332:8:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$709", + "typeIdentifier": "t_contract$_SafeMath_$851", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "285:27:4", + "src": "326:27:4", "typeName": { - "id": 296, + "id": 305, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "304:7:4", + "src": "345:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -542,11 +596,11 @@ }, { "constant": false, - "id": 299, - "name": "poolBalance", + "id": 308, + "name": "reserve", "nodeType": "VariableDeclaration", - "scope": 459, - "src": "318:26:4", + "scope": 485, + "src": "359:22:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -554,10 +608,10 @@ "typeString": "uint256" }, "typeName": { - "id": 298, + "id": 307, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "318:7:4", + "src": "359:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -569,21 +623,21 @@ { "anonymous": false, "documentation": null, - "id": 305, - "name": "Minted", + "id": 316, + "name": "CurveBuy", "nodeType": "EventDefinition", "parameters": { - "id": 304, + "id": 315, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 301, + "id": 310, "indexed": false, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 305, - "src": "364:14:4", + "scope": 316, + "src": "403:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -591,10 +645,10 @@ "typeString": "uint256" }, "typeName": { - "id": 300, + "id": 309, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "364:7:4", + "src": "403:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -605,12 +659,39 @@ }, { "constant": false, - "id": 303, + "id": 312, "indexed": false, - "name": "totalCost", + "name": "paid", + "nodeType": "VariableDeclaration", + "scope": 316, + "src": "419:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 311, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "419:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 314, + "indexed": true, + "name": "when", "nodeType": "VariableDeclaration", - "scope": 305, - "src": "380:17:4", + "scope": 316, + "src": "433:20:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -618,10 +699,10 @@ "typeString": "uint256" }, "typeName": { - "id": 302, + "id": 313, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "380:7:4", + "src": "433:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -631,28 +712,28 @@ "visibility": "internal" } ], - "src": "363:35:4" + "src": "402:52:4" }, - "src": "351:48:4" + "src": "388:67:4" }, { "anonymous": false, "documentation": null, - "id": 311, - "name": "Burned", + "id": 324, + "name": "CurveSell", "nodeType": "EventDefinition", "parameters": { - "id": 310, + "id": 323, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 307, + "id": 318, "indexed": false, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 311, - "src": "417:14:4", + "scope": 324, + "src": "476:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -660,10 +741,10 @@ "typeString": "uint256" }, "typeName": { - "id": 306, + "id": 317, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "417:7:4", + "src": "476:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -674,12 +755,12 @@ }, { "constant": false, - "id": 309, + "id": 320, "indexed": false, - "name": "reward", + "name": "rewarded", "nodeType": "VariableDeclaration", - "scope": 311, - "src": "433:14:4", + "scope": 324, + "src": "492:16:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -687,10 +768,37 @@ "typeString": "uint256" }, "typeName": { - "id": 308, + "id": 319, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "433:7:4", + "src": "492:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 322, + "indexed": true, + "name": "when", + "nodeType": "VariableDeclaration", + "scope": 324, + "src": "510:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 321, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "510:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -700,96 +808,161 @@ "visibility": "internal" } ], - "src": "416:32:4" + "src": "475:56:4" }, - "src": "404:45:4" + "src": "460:72:4" }, { "body": { - "id": 325, + "id": 343, "nodeType": "Block", - "src": "600:2:4", - "statements": [] + "src": "641:65:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 338, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 326, + "src": "676:4:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 339, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 328, + "src": "682:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 340, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 330, + "src": "690:8:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "expression": { + "argumentTypes": null, + "id": 335, + "name": "ERC20Detailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1482, + "src": "651:13:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$1482_$", + "typeString": "type(contract ERC20Detailed)" + } + }, + "id": 337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "initialize", + "nodeType": "MemberAccess", + "referencedDeclaration": 1453, + "src": "651:24:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$__$", + "typeString": "function (string memory,string memory,uint8)" + } + }, + "id": 341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "651:48:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 342, + "nodeType": "ExpressionStatement", + "src": "651:48:4" + } + ] }, "documentation": null, - "id": 326, + "id": 344, "implemented": true, - "isConstructor": true, + "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { - "arguments": [ - { - "argumentTypes": null, - "id": 320, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 313, - "src": "557:4:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 321, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 315, - "src": "563:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 322, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 317, - "src": "571:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 323, + "arguments": null, + "id": 333, "modifierName": { "argumentTypes": null, - "id": 319, - "name": "ERC20Detailed", + "id": 332, + "name": "initializer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1211, - "src": "543:13:4", + "referencedDeclaration": 1588, + "src": "610:11:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$1211_$", - "typeString": "type(contract ERC20Detailed)" + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "543:37:4" + "src": "610:11:4" } ], - "name": "", + "name": "initialize", "nodeType": "FunctionDefinition", "parameters": { - "id": 318, + "id": 331, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 313, + "id": 326, "name": "name", "nodeType": "VariableDeclaration", - "scope": 326, - "src": "476:11:4", + "scope": 344, + "src": "558:11:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -797,10 +970,10 @@ "typeString": "string" }, "typeName": { - "id": 312, + "id": 325, "name": "string", "nodeType": "ElementaryTypeName", - "src": "476:6:4", + "src": "558:6:4", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -811,11 +984,11 @@ }, { "constant": false, - "id": 315, + "id": 328, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 326, - "src": "497:13:4", + "scope": 344, + "src": "571:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -823,10 +996,10 @@ "typeString": "string" }, "typeName": { - "id": 314, + "id": 327, "name": "string", "nodeType": "ElementaryTypeName", - "src": "497:6:4", + "src": "571:6:4", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -837,11 +1010,11 @@ }, { "constant": false, - "id": 317, + "id": 330, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 326, - "src": "520:14:4", + "scope": 344, + "src": "586:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -849,10 +1022,10 @@ "typeString": "uint8" }, "typeName": { - "id": 316, + "id": 329, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "520:5:4", + "src": "586:5:4", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -862,42 +1035,42 @@ "visibility": "internal" } ], - "src": "466:74:4" + "src": "557:44:4" }, "payable": false, "returnParameters": { - "id": 324, + "id": 334, "nodeType": "ParameterList", "parameters": [], - "src": "600:0:4" + "src": "641:0:4" }, - "scope": 459, - "src": "455:147:4", + "scope": 485, + "src": "538:168:4", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 1453, "visibility": "public" }, { "body": null, - "documentation": null, - "id": 333, + "documentation": "Curve function interfaces ", + "id": 351, "implemented": false, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "priceToMint", + "name": "price", "nodeType": "FunctionDefinition", "parameters": { - "id": 329, + "id": 347, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 328, - "name": "numTokens", + "id": 346, + "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 333, - "src": "629:17:4", + "scope": 351, + "src": "772:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -905,10 +1078,10 @@ "typeString": "uint256" }, "typeName": { - "id": 327, + "id": 345, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "629:7:4", + "src": "772:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -918,20 +1091,20 @@ "visibility": "internal" } ], - "src": "628:19:4" + "src": "771:16:4" }, "payable": false, "returnParameters": { - "id": 332, + "id": 350, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 331, - "name": "", + "id": 349, + "name": "thePrice", "nodeType": "VariableDeclaration", - "scope": 333, - "src": "669:7:4", + "scope": 351, + "src": "809:16:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -939,10 +1112,10 @@ "typeString": "uint256" }, "typeName": { - "id": 330, + "id": 348, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "669:7:4", + "src": "809:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -952,10 +1125,10 @@ "visibility": "internal" } ], - "src": "668:9:4" + "src": "808:18:4" }, - "scope": 459, - "src": "608:70:4", + "scope": 485, + "src": "757:70:4", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -963,24 +1136,24 @@ { "body": null, "documentation": null, - "id": 340, + "id": 358, "implemented": false, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "rewardForBurn", + "name": "reward", "nodeType": "FunctionDefinition", "parameters": { - "id": 336, + "id": 354, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 335, - "name": "numTokens", + "id": 353, + "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 340, - "src": "707:17:4", + "scope": 358, + "src": "848:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -988,10 +1161,10 @@ "typeString": "uint256" }, "typeName": { - "id": 334, + "id": 352, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "707:7:4", + "src": "848:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1001,20 +1174,20 @@ "visibility": "internal" } ], - "src": "706:19:4" + "src": "847:16:4" }, "payable": false, "returnParameters": { - "id": 339, + "id": 357, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 338, - "name": "", + "id": 356, + "name": "theReward", "nodeType": "VariableDeclaration", - "scope": 340, - "src": "747:7:4", + "scope": 358, + "src": "885:17:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1022,10 +1195,10 @@ "typeString": "uint256" }, "typeName": { - "id": 337, + "id": 355, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "747:7:4", + "src": "885:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1035,19 +1208,19 @@ "visibility": "internal" } ], - "src": "746:9:4" + "src": "884:19:4" }, - "scope": 459, - "src": "684:72:4", + "scope": 485, + "src": "832:72:4", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 402, + "id": 424, "nodeType": "Block", - "src": "810:491:4", + "src": "1027:473:4", "statements": [ { "expression": { @@ -1059,19 +1232,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 348, + "id": 368, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 346, - "name": "numTokens", + "id": 366, + "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "828:9:4", + "referencedDeclaration": 360, + "src": "1045:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1082,14 +1255,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 347, + "id": 367, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "840:1:4", + "src": "1054:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1097,7 +1270,7 @@ }, "value": "0" }, - "src": "828:13:4", + "src": "1045:10:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1105,21 +1278,21 @@ }, { "argumentTypes": null, - "hexValue": "4d75737420707572636861736520616e20616d6f756e742067726561746572207468616e207a65726f2e", - "id": 349, + "hexValue": "4d7573742072657175657374206e6f6e2d7a65726f20616d6f756e74206f6620746f6b656e732e", + "id": 369, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "843:44:4", + "src": "1057:41:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a7e3762647fb5b0c76978a44d303cfc72c34691dfcd554e40fcd4292ea75924e", - "typeString": "literal_string \"Must purchase an amount greater than zero.\"" + "typeIdentifier": "t_stringliteral_2e1748accf385ce043b1591b65867866e12daaa7337308e8145e3156f4480b84", + "typeString": "literal_string \"Must request non-zero amount of tokens.\"" }, - "value": "Must purchase an amount greater than zero." + "value": "Must request non-zero amount of tokens." } ], "expression": { @@ -1129,25 +1302,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_a7e3762647fb5b0c76978a44d303cfc72c34691dfcd554e40fcd4292ea75924e", - "typeString": "literal_string \"Must purchase an amount greater than zero.\"" + "typeIdentifier": "t_stringliteral_2e1748accf385ce043b1591b65867866e12daaa7337308e8145e3156f4480b84", + "typeString": "literal_string \"Must request non-zero amount of tokens.\"" } ], - "id": 345, + "id": 365, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1299, - "src": "820:7:4", + "referencedDeclaration": 1626, + "src": "1037:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 350, + "id": 370, "isConstant": false, "isLValue": false, "isPure": false, @@ -1155,100 +1328,97 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "820:68:4", + "src": "1037:62:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 351, + "id": 371, "nodeType": "ExpressionStatement", - "src": "820:68:4" + "src": "1037:62:4" }, { - "assignments": [ - 353 - ], - "declarations": [ - { - "constant": false, - "id": 353, - "name": "priceForTokens", - "nodeType": "VariableDeclaration", - "scope": 403, - "src": "899:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 352, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "899:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 357, - "initialValue": { + "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 355, - "name": "numTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "936:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "id": 376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 372, + "name": "paid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "1110:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "expression": { - "argumentTypes": [ + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "argumentTypes": null, + "id": 374, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 360, + "src": "1123:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], - "id": 354, - "name": "priceToMint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 333, - "src": "924:11:4", + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 373, + "name": "price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 351, + "src": "1117:5:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1117:13:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) view returns (uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 356, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "924:22:4", + "src": "1110:20:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "899:47:4" + "id": 377, + "nodeType": "ExpressionStatement", + "src": "1110:20:4" }, { "expression": { @@ -1260,7 +1430,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 362, + "id": 382, "isConstant": false, "isLValue": false, "isPure": false, @@ -1269,18 +1439,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 359, + "id": 379, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "964:3:4", + "referencedDeclaration": 1622, + "src": "1161:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 360, + "id": 380, "isConstant": false, "isLValue": false, "isPure": false, @@ -1288,7 +1458,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "964:9:4", + "src": "1161:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1298,18 +1468,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 361, - "name": "priceForTokens", + "id": 381, + "name": "paid", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 353, - "src": "977:14:4", + "referencedDeclaration": 363, + "src": "1174:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "964:27:4", + "src": "1161:17:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1317,21 +1487,21 @@ }, { "argumentTypes": null, - "hexValue": "4d7573742073656e642072657175697369746520616d6f756e7420746f2070757263686173652e", - "id": 363, + "hexValue": "446964206e6f742073656e6420656e6f75676820657468657220746f2062757921", + "id": 383, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "993:41:4", + "src": "1192:35:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a6075f24df952e00c8462322e48fffe2cc5f8796b81dd2f6ea07ad610a2781ce", - "typeString": "literal_string \"Must send requisite amount to purchase.\"" + "typeIdentifier": "t_stringliteral_1904606e3f048cd8051aee49d06e82d710af1ba31f96b6ec2c841dbff780dcd8", + "typeString": "literal_string \"Did not send enough ether to buy!\"" }, - "value": "Must send requisite amount to purchase." + "value": "Did not send enough ether to buy!" } ], "expression": { @@ -1341,112 +1511,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_a6075f24df952e00c8462322e48fffe2cc5f8796b81dd2f6ea07ad610a2781ce", - "typeString": "literal_string \"Must send requisite amount to purchase.\"" + "typeIdentifier": "t_stringliteral_1904606e3f048cd8051aee49d06e82d710af1ba31f96b6ec2c841dbff780dcd8", + "typeString": "literal_string \"Did not send enough ether to buy!\"" } ], - "id": 358, + "id": 378, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1299, - "src": "956:7:4", + "referencedDeclaration": 1626, + "src": "1140:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "956:79:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 365, - "nodeType": "ExpressionStatement", - "src": "956:79:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 367, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "1052:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1052:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 369, - "name": "numTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "1064:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 366, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "1046:5:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 370, + "id": 384, "isConstant": false, "isLValue": false, "isPure": false, @@ -1454,32 +1537,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1046:28:4", + "src": "1140:97:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 371, + "id": 385, "nodeType": "ExpressionStatement", - "src": "1046:28:4" + "src": "1140:97:4" }, { "expression": { "argumentTypes": null, - "id": 377, + "id": 391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 372, - "name": "poolBalance", + "id": 386, + "name": "reserve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 299, - "src": "1084:11:4", + "referencedDeclaration": 308, + "src": "1248:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1492,12 +1575,12 @@ "arguments": [ { "argumentTypes": null, - "id": 375, - "name": "priceForTokens", + "id": 389, + "name": "paid", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 353, - "src": "1114:14:4", + "referencedDeclaration": 363, + "src": "1270:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1513,32 +1596,32 @@ ], "expression": { "argumentTypes": null, - "id": 373, - "name": "poolBalance", + "id": 387, + "name": "reserve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 299, - "src": "1098:11:4", + "referencedDeclaration": 308, + "src": "1258:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 374, + "id": 388, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 688, - "src": "1098:15:4", + "referencedDeclaration": 830, + "src": "1258:11:4", "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": 376, + "id": 390, "isConstant": false, "isLValue": false, "isPure": false, @@ -1546,21 +1629,108 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1098:31:4", + "src": "1258:17:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1084:45:4", + "src": "1248:27:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 378, + "id": 392, + "nodeType": "ExpressionStatement", + "src": "1248:27:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 394, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "1291:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1291:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 396, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 360, + "src": "1303:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 393, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1321, + "src": "1285:5:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1285:25:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 398, "nodeType": "ExpressionStatement", - "src": "1084:45:4" + "src": "1285:25:4" }, { "condition": { @@ -1569,7 +1739,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 382, + "id": 402, "isConstant": false, "isLValue": false, "isPure": false, @@ -1578,18 +1748,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 379, + "id": 399, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "1143:3:4", + "referencedDeclaration": 1622, + "src": "1356:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 380, + "id": 400, "isConstant": false, "isLValue": false, "isPure": false, @@ -1597,7 +1767,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1143:9:4", + "src": "1356:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1607,31 +1777,31 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 381, - "name": "priceForTokens", + "id": 401, + "name": "paid", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 353, - "src": "1155:14:4", + "referencedDeclaration": 363, + "src": "1368:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1143:26:4", + "src": "1356:16:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 396, + "id": 416, "nodeType": "IfStatement", - "src": "1139:107:4", + "src": "1352:87:4", "trueBody": { - "id": 395, + "id": 415, "nodeType": "Block", - "src": "1171:75:4", + "src": "1374:65:4", "statements": [ { "expression": { @@ -1642,12 +1812,12 @@ "arguments": [ { "argumentTypes": null, - "id": 391, - "name": "priceForTokens", + "id": 411, + "name": "paid", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 353, - "src": "1219:14:4", + "referencedDeclaration": 363, + "src": "1422:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1665,18 +1835,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 388, + "id": 408, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "1205:3:4", + "referencedDeclaration": 1622, + "src": "1408:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 389, + "id": 409, "isConstant": false, "isLValue": false, "isPure": false, @@ -1684,27 +1854,27 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1205:9:4", + "src": "1408:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 390, + "id": 410, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 664, - "src": "1205:13:4", + "referencedDeclaration": 806, + "src": "1408:13:4", "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": 392, + "id": 412, "isConstant": false, "isLValue": false, "isPure": false, @@ -1712,7 +1882,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1205:29:4", + "src": "1408:19:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1730,18 +1900,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 383, + "id": 403, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "1185:3:4", + "referencedDeclaration": 1622, + "src": "1388:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 386, + "id": 406, "isConstant": false, "isLValue": false, "isPure": false, @@ -1749,13 +1919,13 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1185:10:4", + "src": "1388:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 387, + "id": 407, "isConstant": false, "isLValue": false, "isPure": false, @@ -1763,13 +1933,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1185:19:4", + "src": "1388:19:4", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 393, + "id": 413, "isConstant": false, "isLValue": false, "isPure": false, @@ -1777,15 +1947,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1185:50:4", + "src": "1388:40:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 394, + "id": 414, "nodeType": "ExpressionStatement", - "src": "1185:50:4" + "src": "1388:40:4" } ] } @@ -1796,12 +1966,12 @@ "arguments": [ { "argumentTypes": null, - "id": 398, - "name": "numTokens", + "id": 418, + "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "1268:9:4", + "referencedDeclaration": 360, + "src": "1463:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1809,12 +1979,41 @@ }, { "argumentTypes": null, - "id": 399, - "name": "priceForTokens", + "id": 419, + "name": "paid", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 353, - "src": "1279:14:4", + "referencedDeclaration": 363, + "src": "1471:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 420, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1612, + "src": "1477:5:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1477:15:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1827,23 +2026,27 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], - "id": 397, - "name": "Minted", + "id": 417, + "name": "CurveBuy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 305, - "src": "1261:6:4", + "referencedDeclaration": 316, + "src": "1454:8:4", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,uint256)" } }, - "id": 400, + "id": 422, "isConstant": false, "isLValue": false, "isPure": false, @@ -1851,37 +2054,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1261:33:4", + "src": "1454:39:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 401, + "id": 423, "nodeType": "EmitStatement", - "src": "1256:38:4" + "src": "1449:44:4" } ] }, - "documentation": null, - "id": 403, + "documentation": "stake and withdraw ", + "id": 425, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "mint", + "name": "buy", "nodeType": "FunctionDefinition", "parameters": { - "id": 343, + "id": 361, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 342, - "name": "numTokens", + "id": 360, + "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 403, - "src": "776:17:4", + "scope": 425, + "src": "961:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1889,10 +2092,10 @@ "typeString": "uint256" }, "typeName": { - "id": 341, + "id": 359, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "776:7:4", + "src": "961:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1902,26 +2105,53 @@ "visibility": "internal" } ], - "src": "775:19:4" + "src": "960:16:4" }, "payable": true, "returnParameters": { - "id": 344, + "id": 364, "nodeType": "ParameterList", - "parameters": [], - "src": "810:0:4" + "parameters": [ + { + "constant": false, + "id": 363, + "name": "paid", + "nodeType": "VariableDeclaration", + "scope": 425, + "src": "1009:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 362, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1009:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1008:14:4" }, - "scope": 459, - "src": "762:539:4", + "scope": 485, + "src": "948:552:4", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 457, + "id": 483, "nodeType": "Block", - "src": "1347:405:4", + "src": "1587:420:4", "statements": [ { "expression": { @@ -1933,19 +2163,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 411, + "id": 435, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 409, - "name": "numTokens", + "id": 433, + "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 405, - "src": "1365:9:4", + "referencedDeclaration": 427, + "src": "1605:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1956,14 +2186,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 410, + "id": 434, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1377:1:4", + "src": "1614:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1971,7 +2201,7 @@ }, "value": "0" }, - "src": "1365:13:4", + "src": "1605:10:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1979,21 +2209,21 @@ }, { "argumentTypes": null, - "hexValue": "4d757374206275726e20616e20616d6f756e742067726561746572207468616e207a65726f2e", - "id": 412, + "hexValue": "4d757374207370656e64206e6f6e2d7a65726f20616d6f756e74206f6620746f6b656e732e", + "id": 436, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1380:40:4", + "src": "1617:39:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_13ce2346fbf104a90b5697fb6fb1999e575a9972372a396ed2058a9315959803", - "typeString": "literal_string \"Must burn an amount greater than zero.\"" + "typeIdentifier": "t_stringliteral_f048cd4391b51c581e172ffeffc2c9b57c4e219e58c042f874fd10f37292e0f8", + "typeString": "literal_string \"Must spend non-zero amount of tokens.\"" }, - "value": "Must burn an amount greater than zero." + "value": "Must spend non-zero amount of tokens." } ], "expression": { @@ -2003,25 +2233,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_13ce2346fbf104a90b5697fb6fb1999e575a9972372a396ed2058a9315959803", - "typeString": "literal_string \"Must burn an amount greater than zero.\"" + "typeIdentifier": "t_stringliteral_f048cd4391b51c581e172ffeffc2c9b57c4e219e58c042f874fd10f37292e0f8", + "typeString": "literal_string \"Must spend non-zero amount of tokens.\"" } ], - "id": 408, + "id": 432, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1299, - "src": "1357:7:4", + "referencedDeclaration": 1626, + "src": "1597:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 413, + "id": 437, "isConstant": false, "isLValue": false, "isPure": false, @@ -2029,15 +2259,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1357:64:4", + "src": "1597:60:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 414, + "id": 438, "nodeType": "ExpressionStatement", - "src": "1357:64:4" + "src": "1597:60:4" }, { "expression": { @@ -2049,7 +2279,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 421, + "id": 445, "isConstant": false, "isLValue": false, "isPure": false, @@ -2061,18 +2291,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 417, + "id": 441, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "1449:3:4", + "referencedDeclaration": 1622, + "src": "1698:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 418, + "id": 442, "isConstant": false, "isLValue": false, "isPure": false, @@ -2080,7 +2310,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1449:10:4", + "src": "1698:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2094,18 +2324,18 @@ "typeString": "address" } ], - "id": 416, + "id": 440, "name": "balanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 750, - "src": "1439:9:4", + "referencedDeclaration": 1008, + "src": "1688:9:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 419, + "id": 443, "isConstant": false, "isLValue": false, "isPure": false, @@ -2113,7 +2343,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1439:21:4", + "src": "1688:21:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2123,18 +2353,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 420, - "name": "numTokens", + "id": 444, + "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 405, - "src": "1464:9:4", + "referencedDeclaration": 427, + "src": "1713:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1439:34:4", + "src": "1688:31:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2142,21 +2372,21 @@ }, { "argumentTypes": null, - "hexValue": "4d757374206861766520656e6f75676820746f6b656e7320746f206275726e2e", - "id": 422, + "hexValue": "53656e64657220646f6573206e6f74206861766520656e6f75676820746f6b656e7320746f207370656e642e", + "id": 446, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1475:34:4", + "src": "1733:46:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_aaa68c16cd14d1673f516155e3a7ed5214a61bfa565f0be79bfed6d450b6e314", - "typeString": "literal_string \"Must have enough tokens to burn.\"" + "typeIdentifier": "t_stringliteral_5a761284dc3961ed221708e8071043d7732055b433c97f22c653b9a5042cbfeb", + "typeString": "literal_string \"Sender does not have enough tokens to spend.\"" }, - "value": "Must have enough tokens to burn." + "value": "Sender does not have enough tokens to spend." } ], "expression": { @@ -2166,25 +2396,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_aaa68c16cd14d1673f516155e3a7ed5214a61bfa565f0be79bfed6d450b6e314", - "typeString": "literal_string \"Must have enough tokens to burn.\"" + "typeIdentifier": "t_stringliteral_5a761284dc3961ed221708e8071043d7732055b433c97f22c653b9a5042cbfeb", + "typeString": "literal_string \"Sender does not have enough tokens to spend.\"" } ], - "id": 415, + "id": 439, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1299, - "src": "1431:7:4", + "referencedDeclaration": 1626, + "src": "1667:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 423, + "id": 447, "isConstant": false, "isLValue": false, "isPure": false, @@ -2192,204 +2422,114 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1431:79:4", + "src": "1667:122:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 424, + "id": 448, "nodeType": "ExpressionStatement", - "src": "1431:79:4" + "src": "1667:122:4" }, { - "assignments": [ - 426 - ], - "declarations": [ - { - "constant": false, - "id": 426, - "name": "ethToReturn", - "nodeType": "VariableDeclaration", - "scope": 458, - "src": "1521:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 425, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1521:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 430, - "initialValue": { + "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "numTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 405, - "src": "1557:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 427, - "name": "rewardForBurn", + "id": 453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 449, + "name": "rewarded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 340, - "src": "1543:13:4", + "referencedDeclaration": 430, + "src": "1800:8:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) view returns (uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1543:24:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1521:46:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "id": 432, - "name": "msg", + "id": 451, + "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "1583:3:4", + "referencedDeclaration": 427, + "src": "1818:6:4", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1583:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" } - }, - { - "argumentTypes": null, - "id": 434, - "name": "numTokens", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 450, + "name": "reward", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 405, - "src": "1595:9:4", + "referencedDeclaration": 358, + "src": "1811:6:4", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" } - ], - "id": 431, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "1577:5:4", + }, + "id": 452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1811:14:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1577:28:4", + "src": "1800:25:4", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 436, + "id": 454, "nodeType": "ExpressionStatement", - "src": "1577:28:4" + "src": "1800:25:4" }, { "expression": { "argumentTypes": null, - "id": 442, + "id": 460, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 437, - "name": "poolBalance", + "id": 455, + "name": "reserve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 299, - "src": "1615:11:4", + "referencedDeclaration": 308, + "src": "1835:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2402,12 +2542,12 @@ "arguments": [ { "argumentTypes": null, - "id": 440, - "name": "ethToReturn", + "id": 458, + "name": "rewarded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 426, - "src": "1645:11:4", + "referencedDeclaration": 430, + "src": "1857:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2423,32 +2563,32 @@ ], "expression": { "argumentTypes": null, - "id": 438, - "name": "poolBalance", + "id": 456, + "name": "reserve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 299, - "src": "1629:11:4", + "referencedDeclaration": 308, + "src": "1845:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 439, + "id": 457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 664, - "src": "1629:15:4", + "referencedDeclaration": 806, + "src": "1845:11:4", "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": 441, + "id": 459, "isConstant": false, "isLValue": false, "isPure": false, @@ -2456,21 +2596,108 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1629:28:4", + "src": "1845:21:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1615:42:4", + "src": "1835:31:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 443, + "id": 461, + "nodeType": "ExpressionStatement", + "src": "1835:31:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 463, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "1882:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1882:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 465, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 427, + "src": "1894:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 462, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1369, + "src": "1876:5:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1876:25:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 467, "nodeType": "ExpressionStatement", - "src": "1615:42:4" + "src": "1876:25:4" }, { "expression": { @@ -2478,12 +2705,12 @@ "arguments": [ { "argumentTypes": null, - "id": 449, - "name": "ethToReturn", + "id": 473, + "name": "rewarded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 426, - "src": "1687:11:4", + "referencedDeclaration": 430, + "src": "1931:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2501,18 +2728,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 444, + "id": 468, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "1667:3:4", + "referencedDeclaration": 1622, + "src": "1911:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 447, + "id": 471, "isConstant": false, "isLValue": false, "isPure": false, @@ -2520,13 +2747,13 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1667:10:4", + "src": "1911:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 448, + "id": 472, "isConstant": false, "isLValue": false, "isPure": false, @@ -2534,13 +2761,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1667:19:4", + "src": "1911:19:4", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 450, + "id": 474, "isConstant": false, "isLValue": false, "isPure": false, @@ -2548,15 +2775,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1667:32:4", + "src": "1911:29:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 451, + "id": 475, "nodeType": "ExpressionStatement", - "src": "1667:32:4" + "src": "1911:29:4" }, { "eventCall": { @@ -2564,12 +2791,12 @@ "arguments": [ { "argumentTypes": null, - "id": 453, - "name": "numTokens", + "id": 477, + "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 405, - "src": "1722:9:4", + "referencedDeclaration": 427, + "src": "1966:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2577,12 +2804,41 @@ }, { "argumentTypes": null, - "id": 454, - "name": "ethToReturn", + "id": 478, + "name": "rewarded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 426, - "src": "1733:11:4", + "referencedDeclaration": 430, + "src": "1974:8:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 479, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1612, + "src": "1984:5:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1984:15:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2595,23 +2851,27 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], - "id": 452, - "name": "Burned", + "id": 476, + "name": "CurveSell", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 311, - "src": "1715:6:4", + "referencedDeclaration": 324, + "src": "1956:9:4", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,uint256)" } }, - "id": 455, + "id": 481, "isConstant": false, "isLValue": false, "isPure": false, @@ -2619,37 +2879,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1715:30:4", + "src": "1956:44:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 456, + "id": 482, "nodeType": "EmitStatement", - "src": "1710:35:4" + "src": "1951:49:4" } ] }, "documentation": null, - "id": 458, + "id": 484, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "burn", + "name": "sell", "nodeType": "FunctionDefinition", "parameters": { - "id": 406, + "id": 428, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 405, - "name": "numTokens", + "id": 427, + "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 458, - "src": "1321:17:4", + "scope": 484, + "src": "1525:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2657,10 +2917,10 @@ "typeString": "uint256" }, "typeName": { - "id": 404, + "id": 426, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1321:7:4", + "src": "1525:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2670,40 +2930,67 @@ "visibility": "internal" } ], - "src": "1320:19:4" + "src": "1524:16:4" }, "payable": false, "returnParameters": { - "id": 407, + "id": 431, "nodeType": "ParameterList", - "parameters": [], - "src": "1347:0:4" + "parameters": [ + { + "constant": false, + "id": 430, + "name": "rewarded", + "nodeType": "VariableDeclaration", + "scope": 484, + "src": "1565:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 429, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1565:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1564:18:4" }, - "scope": 459, - "src": "1307:445:4", + "scope": 485, + "src": "1511:496:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 460, - "src": "224:1530:4" + "scope": 486, + "src": "255:1754:4" } ], - "src": "0:1755:4" + "src": "0:2010:4" }, "legacyAST": { - "absolutePath": "@convergent/arc/contracts/EthBondingCurveToken.sol", + "absolutePath": "@convergent/arc/contracts/Reserve/WithEtherReserve.sol", "exportedSymbols": { - "EthBondingCurvedToken": [ - 459 + "WithEtherReserve": [ + 485 ] }, - "id": 460, + "id": 486, "nodeType": "SourceUnit", "nodes": [ { - "id": 287, + "id": 293, "literals": [ "solidity", "^", @@ -2714,35 +3001,46 @@ "src": "0:24:4" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "id": 288, + "absolutePath": "openzeppelin-eth/contracts/math/SafeMath.sol", + "file": "openzeppelin-eth/contracts/math/SafeMath.sol", + "id": 294, + "nodeType": "ImportDirective", + "scope": 486, + "sourceUnit": 852, + "src": "26:54:4", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", + "file": "openzeppelin-eth/contracts/token/ERC20/ERC20.sol", + "id": 295, "nodeType": "ImportDirective", - "scope": 460, - "sourceUnit": 1212, - "src": "26:71:4", + "scope": 486, + "sourceUnit": 1416, + "src": "81:58:4", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 289, + "absolutePath": "openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol", + "file": "openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol", + "id": 296, "nodeType": "ImportDirective", - "scope": 460, - "sourceUnit": 1154, - "src": "98:63:4", + "scope": 486, + "sourceUnit": 1483, + "src": "140:66:4", "symbolAliases": [], "unitAlias": "" }, { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 290, + "absolutePath": "zos-lib/contracts/Initializable.sol", + "file": "zos-lib/contracts/Initializable.sol", + "id": 297, "nodeType": "ImportDirective", - "scope": 460, - "sourceUnit": 710, - "src": "162:59:4", + "scope": 486, + "sourceUnit": 1608, + "src": "207:45:4", "symbolAliases": [], "unitAlias": "" }, @@ -2752,78 +3050,98 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 291, - "name": "ERC20Detailed", + "id": 298, + "name": "Initializable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1211, - "src": "258:13:4", + "referencedDeclaration": 1607, + "src": "284:13:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$1211", - "typeString": "contract ERC20Detailed" + "typeIdentifier": "t_contract$_Initializable_$1607", + "typeString": "contract Initializable" } }, - "id": 292, + "id": 299, "nodeType": "InheritanceSpecifier", - "src": "258:13:4" + "src": "284:13:4" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 293, + "id": 300, "name": "ERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1153, - "src": "273:5:4", + "referencedDeclaration": 1415, + "src": "299:5:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$1153", + "typeIdentifier": "t_contract$_ERC20_$1415", "typeString": "contract ERC20" } }, - "id": 294, + "id": 301, + "nodeType": "InheritanceSpecifier", + "src": "299:5:4" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 302, + "name": "ERC20Detailed", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1482, + "src": "306:13:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$1482", + "typeString": "contract ERC20Detailed" + } + }, + "id": 303, "nodeType": "InheritanceSpecifier", - "src": "273:5:4" + "src": "306:13:4" } ], "contractDependencies": [ - 1153, - 1211, - 1280 + 1415, + 1482, + 1551, + 1607 ], "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 459, + "id": 485, "linearizedBaseContracts": [ - 459, - 1153, - 1211, - 1280 + 485, + 1482, + 1415, + 1551, + 1607 ], - "name": "EthBondingCurvedToken", + "name": "WithEtherReserve", "nodeType": "ContractDefinition", "nodes": [ { - "id": 297, + "id": 306, "libraryName": { "contractScope": null, - "id": 295, + "id": 304, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 709, - "src": "291:8:4", + "referencedDeclaration": 851, + "src": "332:8:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$709", + "typeIdentifier": "t_contract$_SafeMath_$851", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "285:27:4", + "src": "326:27:4", "typeName": { - "id": 296, + "id": 305, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "304:7:4", + "src": "345:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2832,11 +3150,11 @@ }, { "constant": false, - "id": 299, - "name": "poolBalance", + "id": 308, + "name": "reserve", "nodeType": "VariableDeclaration", - "scope": 459, - "src": "318:26:4", + "scope": 485, + "src": "359:22:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2844,10 +3162,10 @@ "typeString": "uint256" }, "typeName": { - "id": 298, + "id": 307, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "318:7:4", + "src": "359:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2859,21 +3177,21 @@ { "anonymous": false, "documentation": null, - "id": 305, - "name": "Minted", + "id": 316, + "name": "CurveBuy", "nodeType": "EventDefinition", "parameters": { - "id": 304, + "id": 315, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 301, + "id": 310, "indexed": false, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 305, - "src": "364:14:4", + "scope": 316, + "src": "403:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2881,10 +3199,10 @@ "typeString": "uint256" }, "typeName": { - "id": 300, + "id": 309, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "364:7:4", + "src": "403:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2895,12 +3213,39 @@ }, { "constant": false, - "id": 303, + "id": 312, "indexed": false, - "name": "totalCost", + "name": "paid", + "nodeType": "VariableDeclaration", + "scope": 316, + "src": "419:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 311, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "419:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 314, + "indexed": true, + "name": "when", "nodeType": "VariableDeclaration", - "scope": 305, - "src": "380:17:4", + "scope": 316, + "src": "433:20:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2908,10 +3253,10 @@ "typeString": "uint256" }, "typeName": { - "id": 302, + "id": 313, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "380:7:4", + "src": "433:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2921,28 +3266,28 @@ "visibility": "internal" } ], - "src": "363:35:4" + "src": "402:52:4" }, - "src": "351:48:4" + "src": "388:67:4" }, { "anonymous": false, "documentation": null, - "id": 311, - "name": "Burned", + "id": 324, + "name": "CurveSell", "nodeType": "EventDefinition", "parameters": { - "id": 310, + "id": 323, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 307, + "id": 318, "indexed": false, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 311, - "src": "417:14:4", + "scope": 324, + "src": "476:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2950,10 +3295,10 @@ "typeString": "uint256" }, "typeName": { - "id": 306, + "id": 317, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "417:7:4", + "src": "476:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2964,12 +3309,12 @@ }, { "constant": false, - "id": 309, + "id": 320, "indexed": false, - "name": "reward", + "name": "rewarded", "nodeType": "VariableDeclaration", - "scope": 311, - "src": "433:14:4", + "scope": 324, + "src": "492:16:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2977,10 +3322,37 @@ "typeString": "uint256" }, "typeName": { - "id": 308, + "id": 319, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "433:7:4", + "src": "492:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 322, + "indexed": true, + "name": "when", + "nodeType": "VariableDeclaration", + "scope": 324, + "src": "510:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 321, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "510:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2990,96 +3362,161 @@ "visibility": "internal" } ], - "src": "416:32:4" + "src": "475:56:4" }, - "src": "404:45:4" + "src": "460:72:4" }, { "body": { - "id": 325, + "id": 343, "nodeType": "Block", - "src": "600:2:4", - "statements": [] + "src": "641:65:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 338, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 326, + "src": "676:4:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 339, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 328, + "src": "682:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 340, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 330, + "src": "690:8:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "expression": { + "argumentTypes": null, + "id": 335, + "name": "ERC20Detailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1482, + "src": "651:13:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$1482_$", + "typeString": "type(contract ERC20Detailed)" + } + }, + "id": 337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "initialize", + "nodeType": "MemberAccess", + "referencedDeclaration": 1453, + "src": "651:24:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$__$", + "typeString": "function (string memory,string memory,uint8)" + } + }, + "id": 341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "651:48:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 342, + "nodeType": "ExpressionStatement", + "src": "651:48:4" + } + ] }, "documentation": null, - "id": 326, + "id": 344, "implemented": true, - "isConstructor": true, + "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { - "arguments": [ - { - "argumentTypes": null, - "id": 320, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 313, - "src": "557:4:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 321, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 315, - "src": "563:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 322, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 317, - "src": "571:8:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 323, + "arguments": null, + "id": 333, "modifierName": { "argumentTypes": null, - "id": 319, - "name": "ERC20Detailed", + "id": 332, + "name": "initializer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1211, - "src": "543:13:4", + "referencedDeclaration": 1588, + "src": "610:11:4", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$1211_$", - "typeString": "type(contract ERC20Detailed)" + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "543:37:4" + "src": "610:11:4" } ], - "name": "", + "name": "initialize", "nodeType": "FunctionDefinition", "parameters": { - "id": 318, + "id": 331, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 313, + "id": 326, "name": "name", "nodeType": "VariableDeclaration", - "scope": 326, - "src": "476:11:4", + "scope": 344, + "src": "558:11:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3087,10 +3524,10 @@ "typeString": "string" }, "typeName": { - "id": 312, + "id": 325, "name": "string", "nodeType": "ElementaryTypeName", - "src": "476:6:4", + "src": "558:6:4", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3101,11 +3538,11 @@ }, { "constant": false, - "id": 315, + "id": 328, "name": "symbol", "nodeType": "VariableDeclaration", - "scope": 326, - "src": "497:13:4", + "scope": 344, + "src": "571:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3113,10 +3550,10 @@ "typeString": "string" }, "typeName": { - "id": 314, + "id": 327, "name": "string", "nodeType": "ElementaryTypeName", - "src": "497:6:4", + "src": "571:6:4", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3127,11 +3564,11 @@ }, { "constant": false, - "id": 317, + "id": 330, "name": "decimals", "nodeType": "VariableDeclaration", - "scope": 326, - "src": "520:14:4", + "scope": 344, + "src": "586:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3139,10 +3576,10 @@ "typeString": "uint8" }, "typeName": { - "id": 316, + "id": 329, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "520:5:4", + "src": "586:5:4", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3152,42 +3589,42 @@ "visibility": "internal" } ], - "src": "466:74:4" + "src": "557:44:4" }, "payable": false, "returnParameters": { - "id": 324, + "id": 334, "nodeType": "ParameterList", "parameters": [], - "src": "600:0:4" + "src": "641:0:4" }, - "scope": 459, - "src": "455:147:4", + "scope": 485, + "src": "538:168:4", "stateMutability": "nonpayable", - "superFunction": null, + "superFunction": 1453, "visibility": "public" }, { "body": null, - "documentation": null, - "id": 333, + "documentation": "Curve function interfaces ", + "id": 351, "implemented": false, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "priceToMint", + "name": "price", "nodeType": "FunctionDefinition", "parameters": { - "id": 329, + "id": 347, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 328, - "name": "numTokens", + "id": 346, + "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 333, - "src": "629:17:4", + "scope": 351, + "src": "772:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3195,10 +3632,10 @@ "typeString": "uint256" }, "typeName": { - "id": 327, + "id": 345, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "629:7:4", + "src": "772:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3208,20 +3645,20 @@ "visibility": "internal" } ], - "src": "628:19:4" + "src": "771:16:4" }, "payable": false, "returnParameters": { - "id": 332, + "id": 350, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 331, - "name": "", + "id": 349, + "name": "thePrice", "nodeType": "VariableDeclaration", - "scope": 333, - "src": "669:7:4", + "scope": 351, + "src": "809:16:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3229,10 +3666,10 @@ "typeString": "uint256" }, "typeName": { - "id": 330, + "id": 348, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "669:7:4", + "src": "809:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3242,10 +3679,10 @@ "visibility": "internal" } ], - "src": "668:9:4" + "src": "808:18:4" }, - "scope": 459, - "src": "608:70:4", + "scope": 485, + "src": "757:70:4", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -3253,24 +3690,24 @@ { "body": null, "documentation": null, - "id": 340, + "id": 358, "implemented": false, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "rewardForBurn", + "name": "reward", "nodeType": "FunctionDefinition", "parameters": { - "id": 336, + "id": 354, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 335, - "name": "numTokens", + "id": 353, + "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 340, - "src": "707:17:4", + "scope": 358, + "src": "848:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3278,10 +3715,10 @@ "typeString": "uint256" }, "typeName": { - "id": 334, + "id": 352, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "707:7:4", + "src": "848:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3291,20 +3728,20 @@ "visibility": "internal" } ], - "src": "706:19:4" + "src": "847:16:4" }, "payable": false, "returnParameters": { - "id": 339, + "id": 357, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 338, - "name": "", + "id": 356, + "name": "theReward", "nodeType": "VariableDeclaration", - "scope": 340, - "src": "747:7:4", + "scope": 358, + "src": "885:17:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3312,10 +3749,10 @@ "typeString": "uint256" }, "typeName": { - "id": 337, + "id": 355, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "747:7:4", + "src": "885:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3325,19 +3762,19 @@ "visibility": "internal" } ], - "src": "746:9:4" + "src": "884:19:4" }, - "scope": 459, - "src": "684:72:4", + "scope": 485, + "src": "832:72:4", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 402, + "id": 424, "nodeType": "Block", - "src": "810:491:4", + "src": "1027:473:4", "statements": [ { "expression": { @@ -3349,19 +3786,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 348, + "id": 368, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 346, - "name": "numTokens", + "id": 366, + "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "828:9:4", + "referencedDeclaration": 360, + "src": "1045:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3372,14 +3809,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 347, + "id": 367, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "840:1:4", + "src": "1054:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3387,7 +3824,7 @@ }, "value": "0" }, - "src": "828:13:4", + "src": "1045:10:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3395,21 +3832,21 @@ }, { "argumentTypes": null, - "hexValue": "4d75737420707572636861736520616e20616d6f756e742067726561746572207468616e207a65726f2e", - "id": 349, + "hexValue": "4d7573742072657175657374206e6f6e2d7a65726f20616d6f756e74206f6620746f6b656e732e", + "id": 369, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "843:44:4", + "src": "1057:41:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a7e3762647fb5b0c76978a44d303cfc72c34691dfcd554e40fcd4292ea75924e", - "typeString": "literal_string \"Must purchase an amount greater than zero.\"" + "typeIdentifier": "t_stringliteral_2e1748accf385ce043b1591b65867866e12daaa7337308e8145e3156f4480b84", + "typeString": "literal_string \"Must request non-zero amount of tokens.\"" }, - "value": "Must purchase an amount greater than zero." + "value": "Must request non-zero amount of tokens." } ], "expression": { @@ -3419,25 +3856,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_a7e3762647fb5b0c76978a44d303cfc72c34691dfcd554e40fcd4292ea75924e", - "typeString": "literal_string \"Must purchase an amount greater than zero.\"" + "typeIdentifier": "t_stringliteral_2e1748accf385ce043b1591b65867866e12daaa7337308e8145e3156f4480b84", + "typeString": "literal_string \"Must request non-zero amount of tokens.\"" } ], - "id": 345, + "id": 365, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1299, - "src": "820:7:4", + "referencedDeclaration": 1626, + "src": "1037:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 350, + "id": 370, "isConstant": false, "isLValue": false, "isPure": false, @@ -3445,112 +3882,109 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "820:68:4", + "src": "1037:62:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 351, + "id": 371, "nodeType": "ExpressionStatement", - "src": "820:68:4" + "src": "1037:62:4" }, { - "assignments": [ - 353 - ], - "declarations": [ - { - "constant": false, - "id": 353, - "name": "priceForTokens", - "nodeType": "VariableDeclaration", - "scope": 403, - "src": "899:22:4", - "stateVariable": false, - "storageLocation": "default", + "expression": { + "argumentTypes": null, + "id": 376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 372, + "name": "paid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 363, + "src": "1110:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "typeName": { - "id": 352, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "899:7:4", + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 374, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 360, + "src": "1123:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 373, + "name": "price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 351, + "src": "1117:5:4", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" } }, - "value": null, - "visibility": "internal" + "id": 375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1117:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1110:20:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "id": 357, - "initialValue": { + }, + "id": 377, + "nodeType": "ExpressionStatement", + "src": "1110:20:4" + }, + { + "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 355, - "name": "numTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "936:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 354, - "name": "priceToMint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 333, - "src": "924:11:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) view returns (uint256)" - } - }, - "id": 356, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "924:22:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "899:47:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 362, + "id": 382, "isConstant": false, "isLValue": false, "isPure": false, @@ -3559,18 +3993,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 359, + "id": 379, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "964:3:4", + "referencedDeclaration": 1622, + "src": "1161:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 360, + "id": 380, "isConstant": false, "isLValue": false, "isPure": false, @@ -3578,7 +4012,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "964:9:4", + "src": "1161:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3588,18 +4022,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 361, - "name": "priceForTokens", + "id": 381, + "name": "paid", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 353, - "src": "977:14:4", + "referencedDeclaration": 363, + "src": "1174:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "964:27:4", + "src": "1161:17:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3607,21 +4041,21 @@ }, { "argumentTypes": null, - "hexValue": "4d7573742073656e642072657175697369746520616d6f756e7420746f2070757263686173652e", - "id": 363, + "hexValue": "446964206e6f742073656e6420656e6f75676820657468657220746f2062757921", + "id": 383, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "993:41:4", + "src": "1192:35:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a6075f24df952e00c8462322e48fffe2cc5f8796b81dd2f6ea07ad610a2781ce", - "typeString": "literal_string \"Must send requisite amount to purchase.\"" + "typeIdentifier": "t_stringliteral_1904606e3f048cd8051aee49d06e82d710af1ba31f96b6ec2c841dbff780dcd8", + "typeString": "literal_string \"Did not send enough ether to buy!\"" }, - "value": "Must send requisite amount to purchase." + "value": "Did not send enough ether to buy!" } ], "expression": { @@ -3631,112 +4065,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_a6075f24df952e00c8462322e48fffe2cc5f8796b81dd2f6ea07ad610a2781ce", - "typeString": "literal_string \"Must send requisite amount to purchase.\"" + "typeIdentifier": "t_stringliteral_1904606e3f048cd8051aee49d06e82d710af1ba31f96b6ec2c841dbff780dcd8", + "typeString": "literal_string \"Did not send enough ether to buy!\"" } ], - "id": 358, + "id": 378, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1299, - "src": "956:7:4", + "referencedDeclaration": 1626, + "src": "1140:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "956:79:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 365, - "nodeType": "ExpressionStatement", - "src": "956:79:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 367, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "1052:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1052:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 369, - "name": "numTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "1064:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 366, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1063, - "src": "1046:5:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 370, + "id": 384, "isConstant": false, "isLValue": false, "isPure": false, @@ -3744,32 +4091,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1046:28:4", + "src": "1140:97:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 371, + "id": 385, "nodeType": "ExpressionStatement", - "src": "1046:28:4" + "src": "1140:97:4" }, { "expression": { "argumentTypes": null, - "id": 377, + "id": 391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 372, - "name": "poolBalance", + "id": 386, + "name": "reserve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 299, - "src": "1084:11:4", + "referencedDeclaration": 308, + "src": "1248:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3782,12 +4129,12 @@ "arguments": [ { "argumentTypes": null, - "id": 375, - "name": "priceForTokens", + "id": 389, + "name": "paid", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 353, - "src": "1114:14:4", + "referencedDeclaration": 363, + "src": "1270:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3803,32 +4150,32 @@ ], "expression": { "argumentTypes": null, - "id": 373, - "name": "poolBalance", + "id": 387, + "name": "reserve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 299, - "src": "1098:11:4", + "referencedDeclaration": 308, + "src": "1258:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 374, + "id": 388, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 688, - "src": "1098:15:4", + "referencedDeclaration": 830, + "src": "1258:11:4", "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": 376, + "id": 390, "isConstant": false, "isLValue": false, "isPure": false, @@ -3836,21 +4183,108 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1098:31:4", + "src": "1258:17:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1084:45:4", + "src": "1248:27:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 378, + "id": 392, "nodeType": "ExpressionStatement", - "src": "1084:45:4" + "src": "1248:27:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 394, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "1291:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1291:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 396, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 360, + "src": "1303:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 393, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1321, + "src": "1285:5:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1285:25:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 398, + "nodeType": "ExpressionStatement", + "src": "1285:25:4" }, { "condition": { @@ -3859,7 +4293,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 382, + "id": 402, "isConstant": false, "isLValue": false, "isPure": false, @@ -3868,18 +4302,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 379, + "id": 399, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "1143:3:4", + "referencedDeclaration": 1622, + "src": "1356:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 380, + "id": 400, "isConstant": false, "isLValue": false, "isPure": false, @@ -3887,7 +4321,7 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1143:9:4", + "src": "1356:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3897,31 +4331,31 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 381, - "name": "priceForTokens", + "id": 401, + "name": "paid", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 353, - "src": "1155:14:4", + "referencedDeclaration": 363, + "src": "1368:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1143:26:4", + "src": "1356:16:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 396, + "id": 416, "nodeType": "IfStatement", - "src": "1139:107:4", + "src": "1352:87:4", "trueBody": { - "id": 395, + "id": 415, "nodeType": "Block", - "src": "1171:75:4", + "src": "1374:65:4", "statements": [ { "expression": { @@ -3932,12 +4366,12 @@ "arguments": [ { "argumentTypes": null, - "id": 391, - "name": "priceForTokens", + "id": 411, + "name": "paid", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 353, - "src": "1219:14:4", + "referencedDeclaration": 363, + "src": "1422:4:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3955,18 +4389,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 388, + "id": 408, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "1205:3:4", + "referencedDeclaration": 1622, + "src": "1408:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 389, + "id": 409, "isConstant": false, "isLValue": false, "isPure": false, @@ -3974,27 +4408,27 @@ "memberName": "value", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1205:9:4", + "src": "1408:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 390, + "id": 410, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 664, - "src": "1205:13:4", + "referencedDeclaration": 806, + "src": "1408:13:4", "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": 392, + "id": 412, "isConstant": false, "isLValue": false, "isPure": false, @@ -4002,7 +4436,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1205:29:4", + "src": "1408:19:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4020,18 +4454,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 383, + "id": 403, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "1185:3:4", + "referencedDeclaration": 1622, + "src": "1388:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 386, + "id": 406, "isConstant": false, "isLValue": false, "isPure": false, @@ -4039,13 +4473,13 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1185:10:4", + "src": "1388:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 387, + "id": 407, "isConstant": false, "isLValue": false, "isPure": false, @@ -4053,13 +4487,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1185:19:4", + "src": "1388:19:4", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 393, + "id": 413, "isConstant": false, "isLValue": false, "isPure": false, @@ -4067,15 +4501,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1185:50:4", + "src": "1388:40:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 394, + "id": 414, "nodeType": "ExpressionStatement", - "src": "1185:50:4" + "src": "1388:40:4" } ] } @@ -4086,12 +4520,12 @@ "arguments": [ { "argumentTypes": null, - "id": 398, - "name": "numTokens", + "id": 418, + "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "1268:9:4", + "referencedDeclaration": 360, + "src": "1463:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4099,12 +4533,41 @@ }, { "argumentTypes": null, - "id": 399, - "name": "priceForTokens", + "id": 419, + "name": "paid", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 353, - "src": "1279:14:4", + "referencedDeclaration": 363, + "src": "1471:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 420, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1612, + "src": "1477:5:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1477:15:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4117,23 +4580,27 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], - "id": 397, - "name": "Minted", + "id": 417, + "name": "CurveBuy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 305, - "src": "1261:6:4", + "referencedDeclaration": 316, + "src": "1454:8:4", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,uint256)" } }, - "id": 400, + "id": 422, "isConstant": false, "isLValue": false, "isPure": false, @@ -4141,37 +4608,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1261:33:4", + "src": "1454:39:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 401, + "id": 423, "nodeType": "EmitStatement", - "src": "1256:38:4" + "src": "1449:44:4" } ] }, - "documentation": null, - "id": 403, + "documentation": "stake and withdraw ", + "id": 425, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "mint", + "name": "buy", "nodeType": "FunctionDefinition", "parameters": { - "id": 343, + "id": 361, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 342, - "name": "numTokens", + "id": 360, + "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 403, - "src": "776:17:4", + "scope": 425, + "src": "961:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4179,10 +4646,10 @@ "typeString": "uint256" }, "typeName": { - "id": 341, + "id": 359, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "776:7:4", + "src": "961:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4192,26 +4659,53 @@ "visibility": "internal" } ], - "src": "775:19:4" + "src": "960:16:4" }, "payable": true, "returnParameters": { - "id": 344, + "id": 364, "nodeType": "ParameterList", - "parameters": [], - "src": "810:0:4" + "parameters": [ + { + "constant": false, + "id": 363, + "name": "paid", + "nodeType": "VariableDeclaration", + "scope": 425, + "src": "1009:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 362, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1009:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1008:14:4" }, - "scope": 459, - "src": "762:539:4", + "scope": 485, + "src": "948:552:4", "stateMutability": "payable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 457, + "id": 483, "nodeType": "Block", - "src": "1347:405:4", + "src": "1587:420:4", "statements": [ { "expression": { @@ -4223,19 +4717,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 411, + "id": 435, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 409, - "name": "numTokens", + "id": 433, + "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 405, - "src": "1365:9:4", + "referencedDeclaration": 427, + "src": "1605:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4246,14 +4740,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 410, + "id": 434, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1377:1:4", + "src": "1614:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4261,7 +4755,7 @@ }, "value": "0" }, - "src": "1365:13:4", + "src": "1605:10:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4269,21 +4763,21 @@ }, { "argumentTypes": null, - "hexValue": "4d757374206275726e20616e20616d6f756e742067726561746572207468616e207a65726f2e", - "id": 412, + "hexValue": "4d757374207370656e64206e6f6e2d7a65726f20616d6f756e74206f6620746f6b656e732e", + "id": 436, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1380:40:4", + "src": "1617:39:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_13ce2346fbf104a90b5697fb6fb1999e575a9972372a396ed2058a9315959803", - "typeString": "literal_string \"Must burn an amount greater than zero.\"" + "typeIdentifier": "t_stringliteral_f048cd4391b51c581e172ffeffc2c9b57c4e219e58c042f874fd10f37292e0f8", + "typeString": "literal_string \"Must spend non-zero amount of tokens.\"" }, - "value": "Must burn an amount greater than zero." + "value": "Must spend non-zero amount of tokens." } ], "expression": { @@ -4293,25 +4787,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_13ce2346fbf104a90b5697fb6fb1999e575a9972372a396ed2058a9315959803", - "typeString": "literal_string \"Must burn an amount greater than zero.\"" + "typeIdentifier": "t_stringliteral_f048cd4391b51c581e172ffeffc2c9b57c4e219e58c042f874fd10f37292e0f8", + "typeString": "literal_string \"Must spend non-zero amount of tokens.\"" } ], - "id": 408, + "id": 432, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1299, - "src": "1357:7:4", + "referencedDeclaration": 1626, + "src": "1597:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 413, + "id": 437, "isConstant": false, "isLValue": false, "isPure": false, @@ -4319,15 +4813,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1357:64:4", + "src": "1597:60:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 414, + "id": 438, "nodeType": "ExpressionStatement", - "src": "1357:64:4" + "src": "1597:60:4" }, { "expression": { @@ -4339,7 +4833,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 421, + "id": 445, "isConstant": false, "isLValue": false, "isPure": false, @@ -4351,18 +4845,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 417, + "id": 441, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "1449:3:4", + "referencedDeclaration": 1622, + "src": "1698:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 418, + "id": 442, "isConstant": false, "isLValue": false, "isPure": false, @@ -4370,7 +4864,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1449:10:4", + "src": "1698:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4384,18 +4878,18 @@ "typeString": "address" } ], - "id": 416, + "id": 440, "name": "balanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 750, - "src": "1439:9:4", + "referencedDeclaration": 1008, + "src": "1688:9:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view returns (uint256)" } }, - "id": 419, + "id": 443, "isConstant": false, "isLValue": false, "isPure": false, @@ -4403,7 +4897,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1439:21:4", + "src": "1688:21:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4413,18 +4907,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 420, - "name": "numTokens", + "id": 444, + "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 405, - "src": "1464:9:4", + "referencedDeclaration": 427, + "src": "1713:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1439:34:4", + "src": "1688:31:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4432,21 +4926,21 @@ }, { "argumentTypes": null, - "hexValue": "4d757374206861766520656e6f75676820746f6b656e7320746f206275726e2e", - "id": 422, + "hexValue": "53656e64657220646f6573206e6f74206861766520656e6f75676820746f6b656e7320746f207370656e642e", + "id": 446, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1475:34:4", + "src": "1733:46:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_aaa68c16cd14d1673f516155e3a7ed5214a61bfa565f0be79bfed6d450b6e314", - "typeString": "literal_string \"Must have enough tokens to burn.\"" + "typeIdentifier": "t_stringliteral_5a761284dc3961ed221708e8071043d7732055b433c97f22c653b9a5042cbfeb", + "typeString": "literal_string \"Sender does not have enough tokens to spend.\"" }, - "value": "Must have enough tokens to burn." + "value": "Sender does not have enough tokens to spend." } ], "expression": { @@ -4456,25 +4950,25 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_aaa68c16cd14d1673f516155e3a7ed5214a61bfa565f0be79bfed6d450b6e314", - "typeString": "literal_string \"Must have enough tokens to burn.\"" + "typeIdentifier": "t_stringliteral_5a761284dc3961ed221708e8071043d7732055b433c97f22c653b9a5042cbfeb", + "typeString": "literal_string \"Sender does not have enough tokens to spend.\"" } ], - "id": 415, + "id": 439, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1298, - 1299 + 1625, + 1626 ], - "referencedDeclaration": 1299, - "src": "1431:7:4", + "referencedDeclaration": 1626, + "src": "1667:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 423, + "id": 447, "isConstant": false, "isLValue": false, "isPure": false, @@ -4482,204 +4976,114 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1431:79:4", + "src": "1667:122:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 424, + "id": 448, "nodeType": "ExpressionStatement", - "src": "1431:79:4" + "src": "1667:122:4" }, { - "assignments": [ - 426 - ], - "declarations": [ - { - "constant": false, - "id": 426, - "name": "ethToReturn", - "nodeType": "VariableDeclaration", - "scope": 458, - "src": "1521:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 425, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1521:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 430, - "initialValue": { + "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 428, - "name": "numTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 405, - "src": "1557:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 427, - "name": "rewardForBurn", + "id": 453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 449, + "name": "rewarded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 340, - "src": "1543:13:4", + "referencedDeclaration": 430, + "src": "1800:8:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) view returns (uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1543:24:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1521:46:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { "argumentTypes": null, - "id": 432, - "name": "msg", + "id": 451, + "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "1583:3:4", + "referencedDeclaration": 427, + "src": "1818:6:4", "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - }, - "id": 433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1583:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" } - }, - { - "argumentTypes": null, - "id": 434, - "name": "numTokens", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 450, + "name": "reward", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 405, - "src": "1595:9:4", + "referencedDeclaration": 358, + "src": "1811:6:4", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" } - ], - "id": 431, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1111, - "src": "1577:5:4", + }, + "id": 452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1811:14:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1577:28:4", + "src": "1800:25:4", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 436, + "id": 454, "nodeType": "ExpressionStatement", - "src": "1577:28:4" + "src": "1800:25:4" }, { "expression": { "argumentTypes": null, - "id": 442, + "id": 460, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 437, - "name": "poolBalance", + "id": 455, + "name": "reserve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 299, - "src": "1615:11:4", + "referencedDeclaration": 308, + "src": "1835:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4692,12 +5096,12 @@ "arguments": [ { "argumentTypes": null, - "id": 440, - "name": "ethToReturn", + "id": 458, + "name": "rewarded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 426, - "src": "1645:11:4", + "referencedDeclaration": 430, + "src": "1857:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4713,32 +5117,32 @@ ], "expression": { "argumentTypes": null, - "id": 438, - "name": "poolBalance", + "id": 456, + "name": "reserve", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 299, - "src": "1629:11:4", + "referencedDeclaration": 308, + "src": "1845:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 439, + "id": 457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 664, - "src": "1629:15:4", + "referencedDeclaration": 806, + "src": "1845:11:4", "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": 441, + "id": 459, "isConstant": false, "isLValue": false, "isPure": false, @@ -4746,21 +5150,108 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1629:28:4", + "src": "1845:21:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1615:42:4", + "src": "1835:31:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 443, + "id": 461, + "nodeType": "ExpressionStatement", + "src": "1835:31:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 463, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "1882:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1882:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 465, + "name": "tokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 427, + "src": "1894:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 462, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1369, + "src": "1876:5:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1876:25:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 467, "nodeType": "ExpressionStatement", - "src": "1615:42:4" + "src": "1876:25:4" }, { "expression": { @@ -4768,12 +5259,12 @@ "arguments": [ { "argumentTypes": null, - "id": 449, - "name": "ethToReturn", + "id": 473, + "name": "rewarded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 426, - "src": "1687:11:4", + "referencedDeclaration": 430, + "src": "1931:8:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4791,18 +5282,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 444, + "id": 468, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1295, - "src": "1667:3:4", + "referencedDeclaration": 1622, + "src": "1911:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 447, + "id": 471, "isConstant": false, "isLValue": false, "isPure": false, @@ -4810,13 +5301,13 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1667:10:4", + "src": "1911:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 448, + "id": 472, "isConstant": false, "isLValue": false, "isPure": false, @@ -4824,13 +5315,13 @@ "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1667:19:4", + "src": "1911:19:4", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, - "id": 450, + "id": 474, "isConstant": false, "isLValue": false, "isPure": false, @@ -4838,15 +5329,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1667:32:4", + "src": "1911:29:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 451, + "id": 475, "nodeType": "ExpressionStatement", - "src": "1667:32:4" + "src": "1911:29:4" }, { "eventCall": { @@ -4854,12 +5345,12 @@ "arguments": [ { "argumentTypes": null, - "id": 453, - "name": "numTokens", + "id": 477, + "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 405, - "src": "1722:9:4", + "referencedDeclaration": 427, + "src": "1966:6:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4867,12 +5358,41 @@ }, { "argumentTypes": null, - "id": 454, - "name": "ethToReturn", + "id": 478, + "name": "rewarded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 426, - "src": "1733:11:4", + "referencedDeclaration": 430, + "src": "1974:8:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 479, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1612, + "src": "1984:5:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1984:15:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4885,23 +5405,27 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], - "id": 452, - "name": "Burned", + "id": 476, + "name": "CurveSell", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 311, - "src": "1715:6:4", + "referencedDeclaration": 324, + "src": "1956:9:4", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,uint256)" } }, - "id": 455, + "id": 481, "isConstant": false, "isLValue": false, "isPure": false, @@ -4909,37 +5433,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1715:30:4", + "src": "1956:44:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 456, + "id": 482, "nodeType": "EmitStatement", - "src": "1710:35:4" + "src": "1951:49:4" } ] }, "documentation": null, - "id": 458, + "id": 484, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "burn", + "name": "sell", "nodeType": "FunctionDefinition", "parameters": { - "id": 406, + "id": 428, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 405, - "name": "numTokens", + "id": 427, + "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 458, - "src": "1321:17:4", + "scope": 484, + "src": "1525:14:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4947,10 +5471,10 @@ "typeString": "uint256" }, "typeName": { - "id": 404, + "id": 426, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1321:7:4", + "src": "1525:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4960,27 +5484,54 @@ "visibility": "internal" } ], - "src": "1320:19:4" + "src": "1524:16:4" }, "payable": false, "returnParameters": { - "id": 407, + "id": 431, "nodeType": "ParameterList", - "parameters": [], - "src": "1347:0:4" + "parameters": [ + { + "constant": false, + "id": 430, + "name": "rewarded", + "nodeType": "VariableDeclaration", + "scope": 484, + "src": "1565:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 429, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1565:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1564:18:4" }, - "scope": 459, - "src": "1307:445:4", + "scope": 485, + "src": "1511:496:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 460, - "src": "224:1530:4" + "scope": 486, + "src": "255:1754:4" } ], - "src": "0:1755:4" + "src": "0:2010:4" }, "compiler": { "name": "solc", @@ -4988,7 +5539,7 @@ }, "networks": {}, "schemaVersion": "3.0.0-beta.1", - "updatedAt": "2018-12-16T19:14:46.483Z", + "updatedAt": "2018-12-17T02:12:29.699Z", "devdoc": { "methods": { "allowance(address,address)": { @@ -5009,7 +5560,7 @@ "balanceOf(address)": { "details": "Gets the balance of the specified address.", "params": { - "owner": "The address to query the balance of." + "owner": "The address to query the the balance of." }, "return": "An uint256 representing the amount owned by the passed address." }, @@ -5057,6 +5608,13 @@ } }, "userdoc": { - "methods": {} + "methods": { + "buy(uint256)": { + "notice": "stake and withdraw " + }, + "price(uint256)": { + "notice": "Curve function interfaces " + } + } } } \ No newline at end of file diff --git a/src/components/Dashboard/DashboardInterface/PriceChart/PriceChart.jsx b/src/components/Dashboard/DashboardInterface/PriceChart/PriceChart.jsx index 54d73c4..390530b 100644 --- a/src/components/Dashboard/DashboardInterface/PriceChart/PriceChart.jsx +++ b/src/components/Dashboard/DashboardInterface/PriceChart/PriceChart.jsx @@ -53,13 +53,13 @@ class PriceChart extends React.Component { let minTimestamp = events[0][1]; let values = events.map(([event, timestamp]) => { switch (event.event) { - case 'Minted': + case 'CurveBuy': value += toNumber( priceInEth ? event.returnValues.totalCost : event.returnValues.amount, 18 ); break; - case 'Burned': + case 'CurveSell': value -= toNumber(priceInEth ? event.returnValues.reward : event.returnValues.amount, 18); break; default: diff --git a/src/components/Dashboard/DashboardInterface/index.jsx b/src/components/Dashboard/DashboardInterface/index.jsx index 0f91752..6e0cf4c 100644 --- a/src/components/Dashboard/DashboardInterface/index.jsx +++ b/src/components/Dashboard/DashboardInterface/index.jsx @@ -92,7 +92,7 @@ class Interface extends Component { contractName: address, web3Contract: new drizzle.web3.eth.Contract(PersonalEconomy['abi'], address) }; - let drizzleEvents = ['Minted', 'Burned', 'Requested']; + let drizzleEvents = ['CurveBuy', 'CurveSell', 'Requested']; await drizzle.addContract(contractConfig, drizzleEvents); const contract = this.props.drizzle.contracts[address]; diff --git a/src/components/Profile/BuyAndSellButtons.jsx b/src/components/Profile/BuyAndSellButtons.jsx index 0c557e0..e0b6966 100644 --- a/src/components/Profile/BuyAndSellButtons.jsx +++ b/src/components/Profile/BuyAndSellButtons.jsx @@ -21,7 +21,7 @@ class BuyAndSellButtons extends Component { return; } - const buyStackId = this.props.contract.methods.mint.cacheSend(addDecimals(this.state.buyAmt), { + const buyStackId = this.props.contract.methods.buy.cacheSend(addDecimals(this.state.buyAmt), { from: this.props.drizzleState.accounts[0], value: this.state.priceInEther }); @@ -45,7 +45,7 @@ class BuyAndSellButtons extends Component { if (name === 'buyAmt') { let priceInEther = 0; if (Number(value) !== 0) { - priceInEther = await this.props.contract.methods.priceToMint(addDecimals(value)).call(); + priceInEther = await this.props.contract.methods.price(addDecimals(value)).call(); } this.setState({ priceInEther @@ -56,7 +56,7 @@ class BuyAndSellButtons extends Component { if (name === 'sellAmt') { let rewardInEther = 0; if (Number(value) !== 0) { - rewardInEther = await this.props.contract.methods.rewardForBurn(addDecimals(value)).call(); + rewardInEther = await this.props.contract.methods.reward(addDecimals(value)).call(); } this.setState({ rewardInEther @@ -69,7 +69,7 @@ class BuyAndSellButtons extends Component { return; } - const sellStackId = this.props.contract.methods.burn.cacheSend( + const sellStackId = this.props.contract.methods.sell.cacheSend( addDecimals(this.state.sellAmt), { from: this.props.drizzleState.accounts[0] diff --git a/src/components/Profile/ServiceDetails.jsx b/src/components/Profile/ServiceDetails.jsx index 1d817c6..27b0c48 100644 --- a/src/components/Profile/ServiceDetails.jsx +++ b/src/components/Profile/ServiceDetails.jsx @@ -23,7 +23,7 @@ class ServicePanel extends Component { } const amountNeeded = await this.props.contract.methods - .priceToMint(addDecimals(serviceObj.price)) + .price(addDecimals(serviceObj.price)) .call(); const yourBalance = this.props.drizzleState.accountBalances[ this.props.drizzleState.accounts[0] diff --git a/src/pages/Landing/index.jsx b/src/pages/Landing/index.jsx index fa23380..1b11d6c 100644 --- a/src/pages/Landing/index.jsx +++ b/src/pages/Landing/index.jsx @@ -46,7 +46,7 @@ const Hero = () => (
- + Check out the{' '} {' '} diff --git a/src/pages/Leaderboard/index.jsx b/src/pages/Leaderboard/index.jsx index 1272f50..8f2ac84 100644 --- a/src/pages/Leaderboard/index.jsx +++ b/src/pages/Leaderboard/index.jsx @@ -51,8 +51,8 @@ class LeaderboardList extends Component { }); const raw = await ipfs.get(contentAddress); const dataJson = JSON.parse(raw[0].content.toString()); - const inverseSlope = await personalEconomy.methods.inverseSlope().call(); - const exponent = await personalEconomy.methods.exponent().call(); + const inverseSlope = await personalEconomy.methods.buyInverseSlope().call(); + const exponent = await personalEconomy.methods.buyExponent().call(); const totalSupply = await personalEconomy.methods.totalSupply().call(); const currentPrice = getPrice(inverseSlope, totalSupply, exponent); // console.log(currentPrice.mul(w3utils.toBN(totalSupply))) diff --git a/src/pages/Profile/index.jsx b/src/pages/Profile/index.jsx index df9c075..609ed19 100644 --- a/src/pages/Profile/index.jsx +++ b/src/pages/Profile/index.jsx @@ -52,7 +52,7 @@ class ProfileDetails extends Component { contractName: addr, web3Contract: new drizzle.web3.eth.Contract(PersonalEconomy.abi, addr) }; - const events = ['Minted', 'Burned']; + const events = ['CurveBuy', 'CurveSell']; await drizzle.addContract(contractConfig, events); const contract = this.props.drizzle.contracts[this.props.addr]; @@ -61,11 +61,11 @@ class ProfileDetails extends Component { this.props.drizzleState.accounts[0] ); - const exponent = await contract.methods.exponent().call(); - const inverseSlope = await contract.methods.inverseSlope().call(); + const exponent = await contract.methods.buyExponent().call(); + const inverseSlope = await contract.methods.buyInverseSlope().call(); const mhash = await contract.methods.mhash().call(); const owner = await contract.methods.owner().call(); - const poolBalance = await contract.methods.poolBalance().call(); + const poolBalance = await contract.methods.reserve().call(); const multihash = getMultihashFromBytes32({ digest: mhash, @@ -85,9 +85,13 @@ class ProfileDetails extends Component { const web3Contract = new web3.eth.Contract(PersonalEconomy['abi'], addr); let eventsArray = []; - await web3Contract.getPastEvents('Minted', { fromBlock: 0, toBlock: 'latest' }, (_, event) => { - event[0] && eventsArray.push(event[0].address); - }); + await web3Contract.getPastEvents( + 'CurveBuy', + { fromBlock: 0, toBlock: 'latest' }, + (_, event) => { + event[0] && eventsArray.push(event[0].address); + } + ); let unique = [...new Set(eventsArray)]; let contributors = unique.length; @@ -145,6 +149,8 @@ class ProfileDetails extends Component { this.state.exponent ); + console.log(this.state); + return (
{/* Header */} @@ -254,7 +260,6 @@ class ProfileDetails extends Component { variant="outlined" style={{ marginLeft: '5%', marginBottom: '5%' }} onClick={this.handleExpandClick} - // onClick={this.openPopover} > Details diff --git a/src/util/index.js b/src/util/index.js index 03bf553..8ab4b4b 100644 --- a/src/util/index.js +++ b/src/util/index.js @@ -8,7 +8,7 @@ export const addDecimals = tokens => { }; export const getPrice = (inverseSlope, supply, exp) => { - return toBN((1 / inverseSlope) * supply ** exp); + return toBN(Math.floor((1 / inverseSlope) * supply ** exp)); }; export const removeDecimals = tokens => { diff --git a/yarn.lock b/yarn.lock index 8a52c41..8d8f133 100644 --- a/yarn.lock +++ b/yarn.lock @@ -872,13 +872,13 @@ lodash "^4.17.10" to-fast-properties "^2.0.0" -"@convergent/arc@0.0.3": - version "0.0.3" - resolved "https://registry.yarnpkg.com/@convergent/arc/-/arc-0.0.3.tgz#e173be9ef62483eacdab95c4c98f0d530b7f07a6" - integrity sha512-XNpXsBTxfwQI3X47WCjyaxKXAYSpmzm2HXj1LPIpaB6z4W6W+CO0u6GzcbOe/azFxoNUyo9ZstwV+2cvLEDLoQ== +"@convergent/arc@0.0.5": + version "0.0.5" + resolved "https://registry.yarnpkg.com/@convergent/arc/-/arc-0.0.5.tgz#3f07f71b445b27b0e4adfc954ff3e63fea389524" + integrity sha512-MoE/AUXnAxi5E7myhG9LSYLu1uvNpZfM3P6wm9ApLYitOmpI11YddBzLQYzazu9s+xpJBu2LyR1fNe9QYU99gg== dependencies: - openzeppelin-solidity "2.0.0-rc.3" - truffle "5.0.0-next.12" + openzeppelin-eth "2.0.2" + zos-lib "2.0.1" "@csstools/convert-colors@^1.4.0": version "1.4.0" @@ -1316,7 +1316,7 @@ ajv-keywords@^3.0.0, ajv-keywords@^3.1.0: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" integrity sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo= -ajv@^5.2.3, ajv@^5.3.0: +ajv@^5.1.1, ajv@^5.2.3, ajv@^5.3.0: version "5.5.2" resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" integrity sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU= @@ -1327,9 +1327,9 @@ ajv@^5.2.3, ajv@^5.3.0: json-schema-traverse "^0.3.0" ajv@^6.0.1, ajv@^6.1.0, ajv@^6.5.3, ajv@^6.5.5: - version "6.6.1" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.6.1.tgz#6360f5ed0d80f232cc2b294c362d5dc2e538dd61" - integrity sha512-ZoJjft5B+EJBjUyu9C9Hc0OZyPZSSlOF+plzouTrg6UlA8f+e/n8NIgBFG/9tppJtpPWfthHakK7juJdNDODww== + version "6.6.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.6.2.tgz#caceccf474bf3fc3ce3b147443711a24063cc30d" + integrity sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g== dependencies: fast-deep-equal "^2.0.1" fast-json-stable-stringify "^2.0.0" @@ -1597,7 +1597,7 @@ async-eventemitter@^0.2.2, async-eventemitter@^0.2.4: dependencies: async "^2.4.0" -async-eventemitter@ahultgren/async-eventemitter#fa06e39e56786ba541c180061dbf2c0a5bbf951c: +"async-eventemitter@github:ahultgren/async-eventemitter#fa06e39e56786ba541c180061dbf2c0a5bbf951c": version "0.2.3" resolved "https://codeload.github.com/ahultgren/async-eventemitter/tar.gz/fa06e39e56786ba541c180061dbf2c0a5bbf951c" dependencies: @@ -1638,12 +1638,12 @@ attr-accept@^1.1.3: core-js "^2.5.0" autoprefixer@^9.1.5: - version "9.4.2" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.4.2.tgz#0234d20900684fc4bfb67926493deb68384067f5" - integrity sha512-tYQYJvZvqlJCzF+BLC//uAcdT/Yy4ik9bwZRXr/EehUJ/bjjpTthsWTy8dpowdoIE1sLCDf1ch4Eb2cOSzZC9w== + version "9.4.3" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.4.3.tgz#c97384a8fd80477b78049163a91bbc725d9c41d9" + integrity sha512-/XSnzDepRkAU//xLcXA/lUWxpsBuw0WiriAHOqnxkuCtzLhaz+fL4it4gp20BQ8n5SyLzK/FOc7A0+u/rti2FQ== dependencies: - browserslist "^4.3.5" - caniuse-lite "^1.0.30000914" + browserslist "^4.3.6" + caniuse-lite "^1.0.30000921" normalize-range "^0.1.2" num2fraction "^1.2.2" postcss "^7.0.6" @@ -2413,11 +2413,19 @@ big.js@^5.2.2: resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== -bignumber.js@^7.2.1: +bignumber.js@^7.2.0, bignumber.js@^7.2.1: version "7.2.1" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-7.2.1.tgz#80c048759d826800807c4bfd521e50edbba57a5f" integrity sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ== +"bignumber.js@git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2": + version "2.0.7" + resolved "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2" + +"bignumber.js@git+https://github.com/frozeman/bignumber.js-nolookahead.git": + version "2.0.7" + resolved "git+https://github.com/frozeman/bignumber.js-nolookahead.git#57692b3ecfc98bbdd6b3a516cb2353652ea49934" + binary-extensions@^1.0.0: version "1.12.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14" @@ -2695,7 +2703,7 @@ browserslist@^3.2.6: caniuse-lite "^1.0.30000844" electron-to-chromium "^1.3.47" -browserslist@^4.0.0, browserslist@^4.1.0, browserslist@^4.1.1, browserslist@^4.3.4, browserslist@^4.3.5: +browserslist@^4.0.0, browserslist@^4.1.0, browserslist@^4.1.1, browserslist@^4.3.4, browserslist@^4.3.6: version "4.3.6" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.3.6.tgz#0f9d9081afc66b36f477c6bdf3813f784f42396a" integrity sha512-kMGKs4BTzRWviZ8yru18xBpx+CyHG9eqgRbj9XbE3IMgtczf4aiA0Y1YCpVdvUieKGZ03kolSPXqTcscBCb9qw== @@ -2971,7 +2979,7 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000884, caniuse-lite@^1.0.30000887, caniuse-lite@^1.0.30000914, caniuse-lite@^1.0.30000921: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000884, caniuse-lite@^1.0.30000887, caniuse-lite@^1.0.30000921: version "1.0.30000921" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000921.tgz#7a607c1623444b22351d834e093aedda3c42fbe8" integrity sha512-Bu09ciy0lMWLgpYC77I0YGuI8eFRBPPzaSOYJK1jTI64txCphYCqnWbxJYjHABYVt/TYX/p3jNjLBR87u1Bfpw== @@ -3559,6 +3567,16 @@ crypto-browserify@3.12.0, crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" +crypto-js@^3.1.4: + version "3.1.8" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.1.8.tgz#715f070bf6014f2ae992a98b3929258b713f08d5" + integrity sha1-cV8HC/YBTyrpkqmLOSkli3E/CNU= + +crypto-js@^3.1.9-1: + version "3.1.9-1" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.1.9-1.tgz#fda19e761fc077e01ffbfdc6e9fdfc59e8806cd8" + integrity sha1-/aGedh/Ad+Af+/3G6f38WeiAbNg= + css-color-keywords@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05" @@ -5265,7 +5283,7 @@ ethereum-common@^0.0.18: resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.0.18.tgz#2fdc3576f232903358976eb39da783213ff9523f" integrity sha1-L9w1dvIykDNYl26znaeDIT/5Uj8= -ethereumjs-abi@0.6.5: +ethereumjs-abi@0.6.5, ethereumjs-abi@^0.6.5: version "0.6.5" resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.5.tgz#5a637ef16ab43473fa72a29ad90871405b3f5241" integrity sha1-WmN+8Wq0NHP6cqKa2QhxQFs/UkE= @@ -5458,6 +5476,15 @@ ethers@4.0.0-beta.1: uuid "2.0.1" xmlhttprequest "1.8.0" +ethjs-abi@0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/ethjs-abi/-/ethjs-abi-0.1.8.tgz#cd288583ed628cdfadaf8adefa3ba1dbcbca6c18" + integrity sha1-zSiFg+1ijN+tr4re+juh28vKbBg= + dependencies: + bn.js "4.11.6" + js-sha3 "0.5.5" + number-to-bn "1.7.0" + ethjs-unit@0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" @@ -8122,6 +8149,11 @@ js-levenshtein@^1.1.3: resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.4.tgz#3a56e3cbf589ca0081eb22cd9ba0b1290a16d26e" integrity sha512-PxfGzSs0ztShKrUYPIn5r0MtyAhYcCwmndozzpz8YObbPnD1jFxzlBGbRnX2mIu6Z13xN6+PTu05TQFnZFlzow== +js-sha3@0.5.5: + version "0.5.5" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.5.tgz#baf0c0e8c54ad5903447df96ade7a4a1bca79a4a" + integrity sha1-uvDA6MVK1ZA0R9+Wreekobynmko= + js-sha3@0.5.7, js-sha3@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" @@ -9967,15 +9999,20 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" +openzeppelin-eth@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/openzeppelin-eth/-/openzeppelin-eth-2.0.2.tgz#7aa169a64bd41b796aed485530aa19e6e5a3fc64" + integrity sha512-gUdT24ozD5xXeB9tdTzHOYTpz7R1s0YVXhrYe5TSusiqP0YMqh97GB7Zugee2D6446cKxaE94BblgfgPNGaXRQ== + openzeppelin-solidity@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/openzeppelin-solidity/-/openzeppelin-solidity-2.0.0.tgz#b45dddbdae090f89577598c1a7e7518df61b7ba2" integrity sha512-SolpxQFArtiYnlSNg3dZ9sz0WVlKtPqSOcJkXRllaZp4+Lpfqz3vxF0yoh7g75TszKPyadqoJmU7+GM/vwh9SA== -openzeppelin-solidity@2.0.0-rc.3: - version "2.0.0-rc.3" - resolved "https://registry.yarnpkg.com/openzeppelin-solidity/-/openzeppelin-solidity-2.0.0-rc.3.tgz#2a75455b8b33a4552fb0e93a12590b4d7d0d1d18" - integrity sha512-+3LFCp2Bl7zDRycVKz4z4KTc3vReNFH+7iWoc+sajlPGC+kTTSNd2YFd/PvPgiPGyEup7aQ1tE/srnW7zcuQGQ== +openzeppelin-solidity@~1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/openzeppelin-solidity/-/openzeppelin-solidity-1.10.0.tgz#d77eee6653f5958d051318a61ba0b436f92216c0" + integrity sha512-igkrumQQ2lrN2zjeQV4Dnb0GpTBj1fzMcd8HPyBUqwI0hhuscX/HzXiqKT6gFQl1j9Wy/ppVVs9fqL/foF7Gmg== opn@5.4.0, opn@^5.1.0: version "5.4.0" @@ -12808,17 +12845,6 @@ sockjs@0.3.19: faye-websocket "^0.10.0" uuid "^3.0.1" -solc@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.24.tgz#354f14b269b38cbaa82a47d1ff151723502b954e" - integrity sha512-2xd7Cf1HeVwrIb6Bu1cwY2/TaLRodrppCq3l7rhLimFQgmxptXhTC3+/wesVLpB09F1A2kZgvbMOgH7wvhFnBQ== - dependencies: - fs-extra "^0.30.0" - memorystream "^0.3.1" - require-from-string "^1.1.0" - semver "^5.3.0" - yargs "^4.7.1" - solc@0.4.25, solc@^0.4.2: version "0.4.25" resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.25.tgz#06b8321f7112d95b4b903639b1138a4d292f5faa" @@ -12830,6 +12856,11 @@ solc@0.4.25, solc@^0.4.2: semver "^5.3.0" yargs "^4.7.1" +solidity-parser-antlr@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/solidity-parser-antlr/-/solidity-parser-antlr-0.3.2.tgz#1cf9d019280550a31299dc380e87a310dc4ca154" + integrity sha512-aO/lbnc14A81cQigN5sKNuwbxohPyJOq7kpLirYT/6emCw5Gjb0TJoZ3TzL1tYdIX6gjTAMlQ1UZwOcrzOAp4w== + source-list-map@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" @@ -13624,14 +13655,88 @@ trim@0.0.1: resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= -truffle@5.0.0-next.12: - version "5.0.0-next.12" - resolved "https://registry.yarnpkg.com/truffle/-/truffle-5.0.0-next.12.tgz#a8ad03cf992cc52b2e234e58fe9384e0b14c2c1a" - integrity sha512-7bpFzEPCINfcjtcOLp01Qn4JIgjn7YXsGBCPHQzMUF3CVRxFITbvkwJIytGkLF6XJ6I8YPdQV68Dhyf9c11hkw== +truffle-blockchain-utils@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/truffle-blockchain-utils/-/truffle-blockchain-utils-0.0.5.tgz#a4e5c064dadd69f782a137f3d276d21095da7a47" + integrity sha1-pOXAZNrdafeCoTfz0nbSEJXaekc= + +truffle-config@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/truffle-config/-/truffle-config-1.0.6.tgz#181da7d319c0c55eb2781d5c1886a9c7f32fa470" + integrity sha1-GB2n0xnAxV6yeB1cGIapx/MvpHA= dependencies: - mocha "^4.1.0" + find-up "^2.1.0" + lodash "4.17.10" original-require "1.0.1" - solc "0.4.24" + truffle-error "^0.0.3" + truffle-provider "^0.0.6" + +truffle-contract-schema@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/truffle-contract-schema/-/truffle-contract-schema-2.0.1.tgz#9bf821d32e26e674ba15eb5d40f96b10b1c9d568" + integrity sha1-m/gh0y4m5nS6FetdQPlrELHJ1Wg= + dependencies: + ajv "^5.1.1" + crypto-js "^3.1.9-1" + debug "^3.1.0" + +truffle-contract@^3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/truffle-contract/-/truffle-contract-3.0.6.tgz#2ef6fc32d7faafa9f4aed8e50001a9fdea342192" + integrity sha1-Lvb8Mtf6r6n0rtjlAAGp/eo0IZI= + dependencies: + ethjs-abi "0.1.8" + truffle-blockchain-utils "^0.0.5" + truffle-contract-schema "^2.0.1" + truffle-error "^0.0.3" + web3 "0.20.6" + +truffle-error@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/truffle-error/-/truffle-error-0.0.3.tgz#4bf55242e14deee1c7194932709182deff2c97ca" + integrity sha1-S/VSQuFN7uHHGUkycJGC3v8sl8o= + +truffle-expect@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/truffle-expect/-/truffle-expect-0.0.4.tgz#d5b27adea4c552f43b70dc00877236b7b68c75c8" + integrity sha1-1bJ63qTFUvQ7cNwAh3I2t7aMdcg= + +truffle-flattener@^1.2.8: + version "1.2.10" + resolved "https://registry.yarnpkg.com/truffle-flattener/-/truffle-flattener-1.2.10.tgz#a21e36ead8e5b99991f45662f8c0b5e4e4047879" + integrity sha512-YZTez8gghcI/87tALjR4tLEX5wztZ6ycazIOJlMerGrcep1I5vOCqwgSYI4HZOyRbBUGLMOnuGckX+oIVhaTaw== + dependencies: + chalk "^2.4.1" + find-up "^2.1.0" + mkdirp "^0.5.1" + semver "^5.4.1" + solidity-parser-antlr "^0.3.1" + truffle-config "^1.0.6" + truffle-resolver "^4.0.4" + tsort "0.0.1" + +truffle-provider@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/truffle-provider/-/truffle-provider-0.0.6.tgz#71a92ed67636ada5e78905690d72ea922ad4a613" + integrity sha1-caku1nY2raXniQVpDXLqkirUphM= + dependencies: + truffle-error "^0.0.3" + web3 "0.20.6" + +truffle-provisioner@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/truffle-provisioner/-/truffle-provisioner-0.1.1.tgz#5a8327d62511ef23c950d3aa862610a7c377e2aa" + integrity sha1-WoMn1iUR7yPJUNOqhiYQp8N34qo= + +truffle-resolver@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/truffle-resolver/-/truffle-resolver-4.0.4.tgz#dfd9a8dbca5c5873d7792d1444473d0770ac97d4" + integrity sha1-39mo28pcWHPXeS0UREc9B3Csl9Q= + dependencies: + async "2.6.1" + truffle-contract "^3.0.6" + truffle-expect "^0.0.4" + truffle-provisioner "^0.1.1" truffle@5.0.0-next.15: version "5.0.0-next.15" @@ -13652,6 +13757,11 @@ tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== +tsort@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/tsort/-/tsort-0.0.1.tgz#e2280f5e817f8bf4275657fd0f9aebd44f5a2786" + integrity sha1-4igPXoF/i/QnVlf9D5rr1E9aJ4Y= + tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" @@ -13951,6 +14061,11 @@ utf8@2.1.1: resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.1.tgz#2e01db02f7d8d0944f77104f1609eb0c304cf768" integrity sha1-LgHbAvfY0JRPdxBPFgnrDDBM92g= +utf8@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.2.tgz#1fa0d9270e9be850d9b05027f63519bf46457d96" + integrity sha1-H6DZJw6b6FDZsFAn9jUZv0ZFfZY= + utf8@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" @@ -14589,6 +14704,17 @@ web3-utils@1.0.0-beta.37: underscore "1.8.3" utf8 "2.1.1" +web3@0.20.6: + version "0.20.6" + resolved "https://registry.yarnpkg.com/web3/-/web3-0.20.6.tgz#3e97306ae024fb24e10a3d75c884302562215120" + integrity sha1-PpcwauAk+yThCj11yIQwJWIhUSA= + dependencies: + bignumber.js "git+https://github.com/frozeman/bignumber.js-nolookahead.git" + crypto-js "^3.1.4" + utf8 "^2.1.1" + xhr2 "*" + xmlhttprequest "*" + web3@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3/-/web3-1.0.0-beta.35.tgz#6475095bd451a96e50a32b997ddee82279292f11" @@ -14615,6 +14741,17 @@ web3@1.0.0-beta.37, web3@^1.0.0-beta.35: web3-shh "1.0.0-beta.37" web3-utils "1.0.0-beta.37" +web3@^0.18.4: + version "0.18.4" + resolved "https://registry.yarnpkg.com/web3/-/web3-0.18.4.tgz#81ec1784145491f2eaa8955b31c06049e07c5e7d" + integrity sha1-gewXhBRUkfLqqJVbMcBgSeB8Xn0= + dependencies: + bignumber.js "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2" + crypto-js "^3.1.4" + utf8 "^2.1.1" + xhr2 "*" + xmlhttprequest "*" + "webcrypto-shim@github:dignifiedquire/webcrypto-shim#master": version "0.1.1" resolved "https://codeload.github.com/dignifiedquire/webcrypto-shim/tar.gz/190bc9ec341375df6025b17ae12ddb2428ea49c8" @@ -15037,6 +15174,11 @@ xhr2-cookies@1.1.0: dependencies: cookiejar "^2.1.1" +xhr2@*: + version "0.1.4" + resolved "https://registry.yarnpkg.com/xhr2/-/xhr2-0.1.4.tgz#7f87658847716db5026323812f818cadab387a5f" + integrity sha1-f4dliEdxbbUCYyOBL4GMras4el8= + xhr@^2.0.4, xhr@^2.2.0, xhr@^2.3.3: version "2.5.0" resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz#bed8d1676d5ca36108667692b74b316c496e49dd" @@ -15057,7 +15199,7 @@ xmlchars@^1.3.1: resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-1.3.1.tgz#1dda035f833dbb4f86a0c28eaa6ca769214793cf" integrity sha512-tGkGJkN8XqCod7OT+EvGYK5Z4SfDQGD30zAa58OcnAa0RRWgzUEK72tkXhsX1FZd+rgnhRxFtmO+ihkp8LHSkw== -xmlhttprequest@1, xmlhttprequest@1.8.0: +xmlhttprequest@*, xmlhttprequest@1, xmlhttprequest@1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= @@ -15214,3 +15356,20 @@ yauzl@^2.4.2: dependencies: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" + +zos-lib@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/zos-lib/-/zos-lib-2.0.1.tgz#9566f631f4129c4104f3ca4f579c729ea031acce" + integrity sha512-lXVv/84KDIgQm+ZcoD+b5eZXo82IRkwNqFeV12HYUk19G+UfxW9T+OtG4rnOHszxWeOf9jbLOKNgQUdb7MTejg== + dependencies: + bignumber.js "^7.2.0" + chalk "^2.4.1" + ethereumjs-abi "^0.6.5" + glob "^7.1.3" + openzeppelin-solidity "~1.10.0" + semver "^5.5.1" + truffle-config "^1.0.6" + truffle-contract "^3.0.6" + truffle-flattener "^1.2.8" + truffle-provisioner "^0.1.1" + web3 "^0.18.4" From 33429b4f3ae1c8f6f2a51a2617c59186bc4fd489 Mon Sep 17 00:00:00 2001 From: Logan Saether Date: Sun, 16 Dec 2018 19:49:47 -0700 Subject: [PATCH 4/4] changes --- src/pages/Profile/index.jsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/pages/Profile/index.jsx b/src/pages/Profile/index.jsx index 609ed19..eb29675 100644 --- a/src/pages/Profile/index.jsx +++ b/src/pages/Profile/index.jsx @@ -149,8 +149,6 @@ class ProfileDetails extends Component { this.state.exponent ); - console.log(this.state); - return (
{/* Header */}