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 9c100f5..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-08T22:22:23.364Z",
+ "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 034b9a4..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-08T22:22:23.366Z",
+ "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 338537b..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-08T22:22:23.363Z",
- "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 a1ef98d..9986f25 100644
--- a/src/build/contracts/Factory.json
+++ b/src/build/contracts/Factory.json
@@ -518,7 +518,7 @@
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
- "referencedDeclaration": 1295,
+ "referencedDeclaration": 1622,
"src": "802:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
@@ -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-08T22:22:23.361Z",
+ "updatedAt": "2018-12-17T02:12:29.697Z",
"devdoc": {
"methods": {}
},
diff --git a/src/build/contracts/IERC20.json b/src/build/contracts/IERC20.json
index 79dd3d7..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-08T22:22:23.366Z",
+ "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 4a3fc4d..76d6cf5 100644
--- a/src/build/contracts/Migrations.json
+++ b/src/build/contracts/Migrations.json
@@ -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",
@@ -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,21 +1380,21 @@
"version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
},
"networks": {
- "4": {
+ "1545012223694": {
"events": {},
"links": {},
- "address": "0xeb50c68587E8D47548d915D5E1262C9301AcD590",
- "transactionHash": "0x2cf3c7eefabff4498c76316bb5c84dfc89b755eedc1519c3d342072355086cb7"
+ "address": "0xF6592d3bCBBDC47F895da537F0E9cB95d4Ad08e5",
+ "transactionHash": "0x2f5db14162834fc2983cd921eb95d60e049a7f28893485c1d4e666eafcac8533"
},
- "1544307662770": {
+ "1545014466140": {
"events": {},
"links": {},
"address": "0x031dc2c0d18B19098D8aaa0C27A943Bcd8C8AFad",
- "transactionHash": "0x1ed56660855520c27ab5fcad8d414d80240c7d3d599cdd2b430477deb17bb7a7"
+ "transactionHash": "0xd59b44c6882d002b97d941832fa326bfd8a4b54b1434b61414bcd6b4f11600f6"
}
},
"schemaVersion": "3.0.0-beta.1",
- "updatedAt": "2018-12-08T23:20:59.937Z",
+ "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 f92595e..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": "0x60806040523480156200001157600080fd5b50604051620021f0380380620021f0833981018060405281019080805190602001909291908051820192919060200180518201929190602001805190602001909291905050508282601260016103e884848482828282600090805190602001906200007e92919062000122565b5081600190805190602001906200009792919062000122565b5080600260006101000a81548160ff021916908360ff16021790555050505050505081600781905550806008819055505050505050836009816000191690555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050620001d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016557805160ff191683800117855562000196565b8280016001018555821562000196579182015b828111156200019557825182559160200191906001019062000178565b5b509050620001a59190620001a9565b5090565b620001ce91905b80821115620001ca576000816000905550600101620001b0565b5090565b90565b61200f80620001e16000396000f300608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610138578063095ea7b3146101c857806318160ddd1461022d57806323b872dd14610258578063313ce567146102dd578063395093511461030e57806342966c681461037357806352f6ee58146103a0578063621d8531146103cb5780636400be1d1461043157806370a082311461045c5780638da5cb5b146104b357806395d89b411461050a57806396365d441461059a578063a0712d68146105c5578063a457c2d7146105e5578063a9059cbb1461064a578063a9d989b4146106af578063b25ba02e14610722578063b9d3674314610755578063c544682b14610796578063cdf7f8e6146107d7578063dd62ed3e14610820575b600080fd5b34801561014457600080fd5b5061014d610897565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018d578082015181840152602081019050610172565b50505050905090810190601f1680156101ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d457600080fd5b50610213600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610939565b604051808215151515815260200191505060405180910390f35b34801561023957600080fd5b50610242610a66565b6040518082815260200191505060405180910390f35b34801561026457600080fd5b506102c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a70565b604051808215151515815260200191505060405180910390f35b3480156102e957600080fd5b506102f2610c22565b604051808260ff1660ff16815260200191505060405180910390f35b34801561031a57600080fd5b50610359600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c39565b604051808215151515815260200191505060405180910390f35b34801561037f57600080fd5b5061039e60048036038101908080359060200190929190505050610e70565b005b3480156103ac57600080fd5b506103b5611049565b6040518082815260200191505060405180910390f35b61042f600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061104f565b005b34801561043d57600080fd5b5061044661120e565b6040518082815260200191505060405180910390f35b34801561046857600080fd5b5061049d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611214565b6040518082815260200191505060405180910390f35b3480156104bf57600080fd5b506104c861125d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561051657600080fd5b5061051f611283565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561055f578082015181840152602081019050610544565b50505050905090810190601f16801561058c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105a657600080fd5b506105af611325565b6040518082815260200191505060405180910390f35b6105e36004803603810190808035906020019092919050505061132b565b005b3480156105f157600080fd5b50610630600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061153d565b604051808215151515815260200191505060405180910390f35b34801561065657600080fd5b50610695600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611774565b604051808215151515815260200191505060405180910390f35b3480156106bb57600080fd5b50610720600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061178b565b005b34801561072e57600080fd5b50610737611894565b60405180826000191660001916815260200191505060405180910390f35b34801561076157600080fd5b506107806004803603810190808035906020019092919050505061189a565b6040518082815260200191505060405180910390f35b3480156107a257600080fd5b506107c1600480360381019080803590602001909291905050506118d9565b6040518082815260200191505060405180910390f35b3480156107e357600080fd5b506108066004803603810190808035600019169060200190929190505050611918565b604051808215151515815260200191505060405180910390f35b34801561082c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611986565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561092f5780601f106109045761010080835404028352916020019161092f565b820191906000526020600020905b81548152906001019060200180831161091257829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561097657600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610afd57600080fd5b610b8c82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c17848484611a2e565b600190509392505050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610c7657600080fd5b610d0582600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008082111515610f0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d757374206275726e20616e20616d6f756e742067726561746572207468616e81526020017f207a65726f2e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81610f1933611214565b10151515610f8f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d757374206861766520656e6f75676820746f6b656e7320746f206275726e2e81525060200191505060405180910390fd5b610f98826118d9565b9050610fa43383611c6d565b610fb981600654611a0d90919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611005573d6000803e3d6000fd5b507fcec1bae6e024d929f2929f3478ce70f55f9c636c8ef7b5073a61d7c3a432451b8282604051808381526020018281526020019250505060405180910390a15050565b60075481565b600061105a8261189a565b90508034101515156110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6111043383611dfb565b61113133600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309183423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156111cd5780820151818401526020810190506111b2565b50505050905090810190601f1680156111fa5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b60085481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561131b5780601f106112f05761010080835404028352916020019161131b565b820191906000526020600020905b8154815290600101906020018083116112fe57829003601f168201915b5050505050905090565b60065481565b600080821115156113ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4d75737420707572636861736520616e20616d6f756e7420677265617465722081526020017f7468616e207a65726f2e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6113d38261189a565b9050803410151515611473576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61147d3383611dfb565b61149281600654611c4c90919063ffffffff16565b600681905550803411156114fa573373ffffffffffffffffffffffffffffffffffffffff166108fc6114cd8334611a0d90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156114f8573d6000803e3d6000fd5b505b7f8a9dcf4e150b1153011b29fec302d5be0c13e84fa8f56ab78587f778a32a90dd8282604051808381526020018281526020019250505060405180910390a15050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561157a57600080fd5b61160982600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000611781338484611a2e565b6001905092915050565b6117b833600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309182423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015611854578082015181840152602081019050611839565b50505050905090810190601f1680156118815780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b60095481565b60006118d26006546118c46118bf856118b1610a66565b611c4c90919063ffffffff16565b611f3b565b611a0d90919063ffffffff16565b9050919050565b60006119116119006118fb846118ed610a66565b611a0d90919063ffffffff16565b611f3b565b600654611a0d90919063ffffffff16565b9050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561197657600080fd5b8160098160001916905550919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080838311151515611a1f57600080fd5b82840390508091505092915050565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611a7c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611ab857600080fd5b611b0a81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b9f81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000808284019050838110151515611c6357600080fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611c9357600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611ce157600080fd5b611cf681600554611a0d90919063ffffffff16565b600581905550611d4e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611e2157600080fd5b611e3681600554611c4c90919063ffffffff16565b600581905550611e8e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000806000611f566001600754611c4c90919063ffffffff16565b9150601282611f63610c22565b60ff1602600a0a039050611fb0670de0b6b3a7640000611fa2600854611f9486878a0a611fb990919063ffffffff16565b611fb990919063ffffffff16565b611fb990919063ffffffff16565b92505050919050565b600080600083111515611fcb57600080fd5b8284811515611fd657fe5b04905080915050929150505600a165627a7a72305820f25a9884a790ace3f8477d714a0816955fa58e1a69bbf537cd62c1a8d78c74d60029",
- "deployedBytecode": "0x608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610138578063095ea7b3146101c857806318160ddd1461022d57806323b872dd14610258578063313ce567146102dd578063395093511461030e57806342966c681461037357806352f6ee58146103a0578063621d8531146103cb5780636400be1d1461043157806370a082311461045c5780638da5cb5b146104b357806395d89b411461050a57806396365d441461059a578063a0712d68146105c5578063a457c2d7146105e5578063a9059cbb1461064a578063a9d989b4146106af578063b25ba02e14610722578063b9d3674314610755578063c544682b14610796578063cdf7f8e6146107d7578063dd62ed3e14610820575b600080fd5b34801561014457600080fd5b5061014d610897565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018d578082015181840152602081019050610172565b50505050905090810190601f1680156101ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d457600080fd5b50610213600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610939565b604051808215151515815260200191505060405180910390f35b34801561023957600080fd5b50610242610a66565b6040518082815260200191505060405180910390f35b34801561026457600080fd5b506102c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a70565b604051808215151515815260200191505060405180910390f35b3480156102e957600080fd5b506102f2610c22565b604051808260ff1660ff16815260200191505060405180910390f35b34801561031a57600080fd5b50610359600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c39565b604051808215151515815260200191505060405180910390f35b34801561037f57600080fd5b5061039e60048036038101908080359060200190929190505050610e70565b005b3480156103ac57600080fd5b506103b5611049565b6040518082815260200191505060405180910390f35b61042f600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061104f565b005b34801561043d57600080fd5b5061044661120e565b6040518082815260200191505060405180910390f35b34801561046857600080fd5b5061049d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611214565b6040518082815260200191505060405180910390f35b3480156104bf57600080fd5b506104c861125d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561051657600080fd5b5061051f611283565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561055f578082015181840152602081019050610544565b50505050905090810190601f16801561058c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105a657600080fd5b506105af611325565b6040518082815260200191505060405180910390f35b6105e36004803603810190808035906020019092919050505061132b565b005b3480156105f157600080fd5b50610630600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061153d565b604051808215151515815260200191505060405180910390f35b34801561065657600080fd5b50610695600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611774565b604051808215151515815260200191505060405180910390f35b3480156106bb57600080fd5b50610720600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061178b565b005b34801561072e57600080fd5b50610737611894565b60405180826000191660001916815260200191505060405180910390f35b34801561076157600080fd5b506107806004803603810190808035906020019092919050505061189a565b6040518082815260200191505060405180910390f35b3480156107a257600080fd5b506107c1600480360381019080803590602001909291905050506118d9565b6040518082815260200191505060405180910390f35b3480156107e357600080fd5b506108066004803603810190808035600019169060200190929190505050611918565b604051808215151515815260200191505060405180910390f35b34801561082c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611986565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561092f5780601f106109045761010080835404028352916020019161092f565b820191906000526020600020905b81548152906001019060200180831161091257829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561097657600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610afd57600080fd5b610b8c82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c17848484611a2e565b600190509392505050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610c7657600080fd5b610d0582600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008082111515610f0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d757374206275726e20616e20616d6f756e742067726561746572207468616e81526020017f207a65726f2e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81610f1933611214565b10151515610f8f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d757374206861766520656e6f75676820746f6b656e7320746f206275726e2e81525060200191505060405180910390fd5b610f98826118d9565b9050610fa43383611c6d565b610fb981600654611a0d90919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611005573d6000803e3d6000fd5b507fcec1bae6e024d929f2929f3478ce70f55f9c636c8ef7b5073a61d7c3a432451b8282604051808381526020018281526020019250505060405180910390a15050565b60075481565b600061105a8261189a565b90508034101515156110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6111043383611dfb565b61113133600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309183423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156111cd5780820151818401526020810190506111b2565b50505050905090810190601f1680156111fa5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b60085481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561131b5780601f106112f05761010080835404028352916020019161131b565b820191906000526020600020905b8154815290600101906020018083116112fe57829003601f168201915b5050505050905090565b60065481565b600080821115156113ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4d75737420707572636861736520616e20616d6f756e7420677265617465722081526020017f7468616e207a65726f2e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6113d38261189a565b9050803410151515611473576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61147d3383611dfb565b61149281600654611c4c90919063ffffffff16565b600681905550803411156114fa573373ffffffffffffffffffffffffffffffffffffffff166108fc6114cd8334611a0d90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156114f8573d6000803e3d6000fd5b505b7f8a9dcf4e150b1153011b29fec302d5be0c13e84fa8f56ab78587f778a32a90dd8282604051808381526020018281526020019250505060405180910390a15050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561157a57600080fd5b61160982600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000611781338484611a2e565b6001905092915050565b6117b833600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309182423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015611854578082015181840152602081019050611839565b50505050905090810190601f1680156118815780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b60095481565b60006118d26006546118c46118bf856118b1610a66565b611c4c90919063ffffffff16565b611f3b565b611a0d90919063ffffffff16565b9050919050565b60006119116119006118fb846118ed610a66565b611a0d90919063ffffffff16565b611f3b565b600654611a0d90919063ffffffff16565b9050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561197657600080fd5b8160098160001916905550919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080838311151515611a1f57600080fd5b82840390508091505092915050565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611a7c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611ab857600080fd5b611b0a81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b9f81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000808284019050838110151515611c6357600080fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611c9357600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611ce157600080fd5b611cf681600554611a0d90919063ffffffff16565b600581905550611d4e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611e2157600080fd5b611e3681600554611c4c90919063ffffffff16565b600581905550611e8e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000806000611f566001600754611c4c90919063ffffffff16565b9150601282611f63610c22565b60ff1602600a0a039050611fb0670de0b6b3a7640000611fa2600854611f9486878a0a611fb990919063ffffffff16565b611fb990919063ffffffff16565b611fb990919063ffffffff16565b92505050919050565b600080600083111515611fcb57600080fd5b8284811515611fd657fe5b04905080915050929150505600a165627a7a72305820f25a9884a790ace3f8477d714a0816955fa58e1a69bbf537cd62c1a8d78c74d60029",
- "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",
+ "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/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/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-08T22:22:23.361Z",
+ "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 bbae683..f1d1247 100644
--- a/src/build/contracts/PersonalEconomyFactory.json
+++ b/src/build/contracts/PersonalEconomyFactory.json
@@ -131,8 +131,8 @@
"signature": "0xe501fe3c"
}
],
- "bytecode": "0x608060405234801561001057600080fd5b50612950806100206000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f4f331614610067578063b7de9dae146100c2578063c1ad191a1461012f578063e501fe3c1461019b575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610298565b604051808215151515815260200191505060405180910390f35b3480156100ce57600080fd5b506100ed600480360381019080803590602001909291905050506102b8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013b57600080fd5b506101446102f6565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561018757808201518184015260208101905061016c565b505050509050019250505060405180910390f35b3480156101a757600080fd5b506102566004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610384565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006020528060005260406000206000915054906101000a900460ff1681565b6001818154811015156102c757fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600180548060200260200160405190810160405280929190818152602001828054801561037a57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610330575b5050505050905090565b600083838333610392610724565b80856000191660001916815260200180602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835286818151815260200191508051906020019080838360005b838110156104135780820151818401526020810190506103f8565b50505050905090810190601f1680156104405780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561047957808201518184015260208101905061045e565b50505050905090810190601f1680156104a65780820380516001836020036101000a031916815260200191505b509650505050505050604051809103906000f0801580156104cb573d6000803e3d6000fd5b5090506104d7816105cd565b3373ffffffffffffffffffffffffffffffffffffffff167ff238fcd2133237bc5ae0e1f42086a193f4fddae976468b0797a9260c8f292219824286604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561058a57808201518184015260208101905061056f565b50505050905090810190601f1680156105b75780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a29392505050565b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060018190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507f4fb057ad4a26ed17a57957fa69c306f11987596069b89521c511fc9a894e61613382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b6040516121f08061073583390190560060806040523480156200001157600080fd5b50604051620021f0380380620021f0833981018060405281019080805190602001909291908051820192919060200180518201929190602001805190602001909291905050508282601260016103e884848482828282600090805190602001906200007e92919062000122565b5081600190805190602001906200009792919062000122565b5080600260006101000a81548160ff021916908360ff16021790555050505050505081600781905550806008819055505050505050836009816000191690555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050620001d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016557805160ff191683800117855562000196565b8280016001018555821562000196579182015b828111156200019557825182559160200191906001019062000178565b5b509050620001a59190620001a9565b5090565b620001ce91905b80821115620001ca576000816000905550600101620001b0565b5090565b90565b61200f80620001e16000396000f300608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610138578063095ea7b3146101c857806318160ddd1461022d57806323b872dd14610258578063313ce567146102dd578063395093511461030e57806342966c681461037357806352f6ee58146103a0578063621d8531146103cb5780636400be1d1461043157806370a082311461045c5780638da5cb5b146104b357806395d89b411461050a57806396365d441461059a578063a0712d68146105c5578063a457c2d7146105e5578063a9059cbb1461064a578063a9d989b4146106af578063b25ba02e14610722578063b9d3674314610755578063c544682b14610796578063cdf7f8e6146107d7578063dd62ed3e14610820575b600080fd5b34801561014457600080fd5b5061014d610897565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018d578082015181840152602081019050610172565b50505050905090810190601f1680156101ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d457600080fd5b50610213600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610939565b604051808215151515815260200191505060405180910390f35b34801561023957600080fd5b50610242610a66565b6040518082815260200191505060405180910390f35b34801561026457600080fd5b506102c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a70565b604051808215151515815260200191505060405180910390f35b3480156102e957600080fd5b506102f2610c22565b604051808260ff1660ff16815260200191505060405180910390f35b34801561031a57600080fd5b50610359600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c39565b604051808215151515815260200191505060405180910390f35b34801561037f57600080fd5b5061039e60048036038101908080359060200190929190505050610e70565b005b3480156103ac57600080fd5b506103b5611049565b6040518082815260200191505060405180910390f35b61042f600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061104f565b005b34801561043d57600080fd5b5061044661120e565b6040518082815260200191505060405180910390f35b34801561046857600080fd5b5061049d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611214565b6040518082815260200191505060405180910390f35b3480156104bf57600080fd5b506104c861125d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561051657600080fd5b5061051f611283565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561055f578082015181840152602081019050610544565b50505050905090810190601f16801561058c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105a657600080fd5b506105af611325565b6040518082815260200191505060405180910390f35b6105e36004803603810190808035906020019092919050505061132b565b005b3480156105f157600080fd5b50610630600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061153d565b604051808215151515815260200191505060405180910390f35b34801561065657600080fd5b50610695600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611774565b604051808215151515815260200191505060405180910390f35b3480156106bb57600080fd5b50610720600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061178b565b005b34801561072e57600080fd5b50610737611894565b60405180826000191660001916815260200191505060405180910390f35b34801561076157600080fd5b506107806004803603810190808035906020019092919050505061189a565b6040518082815260200191505060405180910390f35b3480156107a257600080fd5b506107c1600480360381019080803590602001909291905050506118d9565b6040518082815260200191505060405180910390f35b3480156107e357600080fd5b506108066004803603810190808035600019169060200190929190505050611918565b604051808215151515815260200191505060405180910390f35b34801561082c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611986565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561092f5780601f106109045761010080835404028352916020019161092f565b820191906000526020600020905b81548152906001019060200180831161091257829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561097657600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610afd57600080fd5b610b8c82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c17848484611a2e565b600190509392505050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610c7657600080fd5b610d0582600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008082111515610f0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d757374206275726e20616e20616d6f756e742067726561746572207468616e81526020017f207a65726f2e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81610f1933611214565b10151515610f8f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d757374206861766520656e6f75676820746f6b656e7320746f206275726e2e81525060200191505060405180910390fd5b610f98826118d9565b9050610fa43383611c6d565b610fb981600654611a0d90919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611005573d6000803e3d6000fd5b507fcec1bae6e024d929f2929f3478ce70f55f9c636c8ef7b5073a61d7c3a432451b8282604051808381526020018281526020019250505060405180910390a15050565b60075481565b600061105a8261189a565b90508034101515156110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6111043383611dfb565b61113133600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309183423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156111cd5780820151818401526020810190506111b2565b50505050905090810190601f1680156111fa5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b60085481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561131b5780601f106112f05761010080835404028352916020019161131b565b820191906000526020600020905b8154815290600101906020018083116112fe57829003601f168201915b5050505050905090565b60065481565b600080821115156113ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4d75737420707572636861736520616e20616d6f756e7420677265617465722081526020017f7468616e207a65726f2e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6113d38261189a565b9050803410151515611473576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61147d3383611dfb565b61149281600654611c4c90919063ffffffff16565b600681905550803411156114fa573373ffffffffffffffffffffffffffffffffffffffff166108fc6114cd8334611a0d90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156114f8573d6000803e3d6000fd5b505b7f8a9dcf4e150b1153011b29fec302d5be0c13e84fa8f56ab78587f778a32a90dd8282604051808381526020018281526020019250505060405180910390a15050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561157a57600080fd5b61160982600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000611781338484611a2e565b6001905092915050565b6117b833600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309182423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015611854578082015181840152602081019050611839565b50505050905090810190601f1680156118815780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b60095481565b60006118d26006546118c46118bf856118b1610a66565b611c4c90919063ffffffff16565b611f3b565b611a0d90919063ffffffff16565b9050919050565b60006119116119006118fb846118ed610a66565b611a0d90919063ffffffff16565b611f3b565b600654611a0d90919063ffffffff16565b9050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561197657600080fd5b8160098160001916905550919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080838311151515611a1f57600080fd5b82840390508091505092915050565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611a7c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611ab857600080fd5b611b0a81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b9f81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000808284019050838110151515611c6357600080fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611c9357600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611ce157600080fd5b611cf681600554611a0d90919063ffffffff16565b600581905550611d4e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611e2157600080fd5b611e3681600554611c4c90919063ffffffff16565b600581905550611e8e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000806000611f566001600754611c4c90919063ffffffff16565b9150601282611f63610c22565b60ff1602600a0a039050611fb0670de0b6b3a7640000611fa2600854611f9486878a0a611fb990919063ffffffff16565b611fb990919063ffffffff16565b611fb990919063ffffffff16565b92505050919050565b600080600083111515611fcb57600080fd5b8284811515611fd657fe5b04905080915050929150505600a165627a7a72305820f25a9884a790ace3f8477d714a0816955fa58e1a69bbf537cd62c1a8d78c74d60029a165627a7a72305820fc455ba53731cf1c94c6c597b1ff6823bb4f68578961979c816c3e57349a1b770029",
- "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f4f331614610067578063b7de9dae146100c2578063c1ad191a1461012f578063e501fe3c1461019b575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610298565b604051808215151515815260200191505060405180910390f35b3480156100ce57600080fd5b506100ed600480360381019080803590602001909291905050506102b8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013b57600080fd5b506101446102f6565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561018757808201518184015260208101905061016c565b505050509050019250505060405180910390f35b3480156101a757600080fd5b506102566004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610384565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006020528060005260406000206000915054906101000a900460ff1681565b6001818154811015156102c757fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600180548060200260200160405190810160405280929190818152602001828054801561037a57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610330575b5050505050905090565b600083838333610392610724565b80856000191660001916815260200180602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835286818151815260200191508051906020019080838360005b838110156104135780820151818401526020810190506103f8565b50505050905090810190601f1680156104405780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b8381101561047957808201518184015260208101905061045e565b50505050905090810190601f1680156104a65780820380516001836020036101000a031916815260200191505b509650505050505050604051809103906000f0801580156104cb573d6000803e3d6000fd5b5090506104d7816105cd565b3373ffffffffffffffffffffffffffffffffffffffff167ff238fcd2133237bc5ae0e1f42086a193f4fddae976468b0797a9260c8f292219824286604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561058a57808201518184015260208101905061056f565b50505050905090810190601f1680156105b75780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a29392505050565b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060018190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507f4fb057ad4a26ed17a57957fa69c306f11987596069b89521c511fc9a894e61613382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b6040516121f08061073583390190560060806040523480156200001157600080fd5b50604051620021f0380380620021f0833981018060405281019080805190602001909291908051820192919060200180518201929190602001805190602001909291905050508282601260016103e884848482828282600090805190602001906200007e92919062000122565b5081600190805190602001906200009792919062000122565b5080600260006101000a81548160ff021916908360ff16021790555050505050505081600781905550806008819055505050505050836009816000191690555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050620001d1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016557805160ff191683800117855562000196565b8280016001018555821562000196579182015b828111156200019557825182559160200191906001019062000178565b5b509050620001a59190620001a9565b5090565b620001ce91905b80821115620001ca576000816000905550600101620001b0565b5090565b90565b61200f80620001e16000396000f300608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610138578063095ea7b3146101c857806318160ddd1461022d57806323b872dd14610258578063313ce567146102dd578063395093511461030e57806342966c681461037357806352f6ee58146103a0578063621d8531146103cb5780636400be1d1461043157806370a082311461045c5780638da5cb5b146104b357806395d89b411461050a57806396365d441461059a578063a0712d68146105c5578063a457c2d7146105e5578063a9059cbb1461064a578063a9d989b4146106af578063b25ba02e14610722578063b9d3674314610755578063c544682b14610796578063cdf7f8e6146107d7578063dd62ed3e14610820575b600080fd5b34801561014457600080fd5b5061014d610897565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561018d578082015181840152602081019050610172565b50505050905090810190601f1680156101ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101d457600080fd5b50610213600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610939565b604051808215151515815260200191505060405180910390f35b34801561023957600080fd5b50610242610a66565b6040518082815260200191505060405180910390f35b34801561026457600080fd5b506102c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a70565b604051808215151515815260200191505060405180910390f35b3480156102e957600080fd5b506102f2610c22565b604051808260ff1660ff16815260200191505060405180910390f35b34801561031a57600080fd5b50610359600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c39565b604051808215151515815260200191505060405180910390f35b34801561037f57600080fd5b5061039e60048036038101908080359060200190929190505050610e70565b005b3480156103ac57600080fd5b506103b5611049565b6040518082815260200191505060405180910390f35b61042f600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061104f565b005b34801561043d57600080fd5b5061044661120e565b6040518082815260200191505060405180910390f35b34801561046857600080fd5b5061049d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611214565b6040518082815260200191505060405180910390f35b3480156104bf57600080fd5b506104c861125d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561051657600080fd5b5061051f611283565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561055f578082015181840152602081019050610544565b50505050905090810190601f16801561058c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105a657600080fd5b506105af611325565b6040518082815260200191505060405180910390f35b6105e36004803603810190808035906020019092919050505061132b565b005b3480156105f157600080fd5b50610630600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061153d565b604051808215151515815260200191505060405180910390f35b34801561065657600080fd5b50610695600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611774565b604051808215151515815260200191505060405180910390f35b3480156106bb57600080fd5b50610720600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061178b565b005b34801561072e57600080fd5b50610737611894565b60405180826000191660001916815260200191505060405180910390f35b34801561076157600080fd5b506107806004803603810190808035906020019092919050505061189a565b6040518082815260200191505060405180910390f35b3480156107a257600080fd5b506107c1600480360381019080803590602001909291905050506118d9565b6040518082815260200191505060405180910390f35b3480156107e357600080fd5b506108066004803603810190808035600019169060200190929190505050611918565b604051808215151515815260200191505060405180910390f35b34801561082c57600080fd5b50610881600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611986565b6040518082815260200191505060405180910390f35b606060008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561092f5780601f106109045761010080835404028352916020019161092f565b820191906000526020600020905b81548152906001019060200180831161091257829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561097657600080fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600554905090565b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610afd57600080fd5b610b8c82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c17848484611a2e565b600190509392505050565b6000600260009054906101000a900460ff16905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610c7657600080fd5b610d0582600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b60008082111515610f0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d757374206275726e20616e20616d6f756e742067726561746572207468616e81526020017f207a65726f2e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b81610f1933611214565b10151515610f8f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d757374206861766520656e6f75676820746f6b656e7320746f206275726e2e81525060200191505060405180910390fd5b610f98826118d9565b9050610fa43383611c6d565b610fb981600654611a0d90919063ffffffff16565b6006819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611005573d6000803e3d6000fd5b507fcec1bae6e024d929f2929f3478ce70f55f9c636c8ef7b5073a61d7c3a432451b8282604051808381526020018281526020019250505060405180910390a15050565b60075481565b600061105a8261189a565b90508034101515156110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6111043383611dfb565b61113133600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309183423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b838110156111cd5780820151818401526020810190506111b2565b50505050905090810190601f1680156111fa5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b60085481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561131b5780601f106112f05761010080835404028352916020019161131b565b820191906000526020600020905b8154815290600101906020018083116112fe57829003601f168201915b5050505050905090565b60065481565b600080821115156113ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4d75737420707572636861736520616e20616d6f756e7420677265617465722081526020017f7468616e207a65726f2e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6113d38261189a565b9050803410151515611473576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d7573742073656e642072657175697369746520616d6f756e7420746f20707581526020017f7263686173652e0000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61147d3383611dfb565b61149281600654611c4c90919063ffffffff16565b600681905550803411156114fa573373ffffffffffffffffffffffffffffffffffffffff166108fc6114cd8334611a0d90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156114f8573d6000803e3d6000fd5b505b7f8a9dcf4e150b1153011b29fec302d5be0c13e84fa8f56ab78587f778a32a90dd8282604051808381526020018281526020019250505060405180910390a15050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561157a57600080fd5b61160982600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000611781338484611a2e565b6001905092915050565b6117b833600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611a2e565b7fda038144359a056b8f6f6103e7b61e9ae26499a4ec7b50836bbaaa03699f309182423360405180806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015611854578082015181840152602081019050611839565b50505050905090810190601f1680156118815780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b60095481565b60006118d26006546118c46118bf856118b1610a66565b611c4c90919063ffffffff16565b611f3b565b611a0d90919063ffffffff16565b9050919050565b60006119116119006118fb846118ed610a66565b611a0d90919063ffffffff16565b611f3b565b600654611a0d90919063ffffffff16565b9050919050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561197657600080fd5b8160098160001916905550919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080838311151515611a1f57600080fd5b82840390508091505092915050565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611a7c57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611ab857600080fd5b611b0a81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b9f81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000808284019050838110151515611c6357600080fd5b8091505092915050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611c9357600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548111151515611ce157600080fd5b611cf681600554611a0d90919063ffffffff16565b600581905550611d4e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a0d90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008273ffffffffffffffffffffffffffffffffffffffff1614151515611e2157600080fd5b611e3681600554611c4c90919063ffffffff16565b600581905550611e8e81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4c90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000806000611f566001600754611c4c90919063ffffffff16565b9150601282611f63610c22565b60ff1602600a0a039050611fb0670de0b6b3a7640000611fa2600854611f9486878a0a611fb990919063ffffffff16565b611fb990919063ffffffff16565b611fb990919063ffffffff16565b92505050919050565b600080600083111515611fcb57600080fd5b8284811515611fd657fe5b04905080915050929150505600a165627a7a72305820f25a9884a790ace3f8477d714a0816955fa58e1a69bbf537cd62c1a8d78c74d60029a165627a7a72305820fc455ba53731cf1c94c6c597b1ff6823bb4f68578961979c816c3e57349a1b770029",
+ "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",
@@ -141,14 +141,14 @@
"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",
"^",
@@ -161,9 +161,9 @@
{
"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": [],
@@ -172,10 +172,10 @@
{
"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,14 +811,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"
}
],
@@ -828,14 +828,14 @@
"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",
"^",
@@ -848,9 +848,9 @@
{
"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": [],
@@ -859,10 +859,10 @@
{
"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,21 +1516,21 @@
"version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
},
"networks": {
- "4": {
+ "1545012223694": {
"events": {},
"links": {},
- "address": "0xD3f6603fEc53a3175803F5ac99363aA6D3c528Df",
- "transactionHash": "0x9be52eb6019c5636bf8522e656af4b4ba8ba169273a6a5bf55880a00ad8703c1"
+ "address": "0xda759FeD9E4cDA2d841Ecc7ac8C26bb2Be9e9365",
+ "transactionHash": "0xf1f3a7a0f3db0eee9e114d382183ab43bef0494ee192a802b8a93a78eb0a14e6"
},
- "1544307662770": {
+ "1545014466140": {
"events": {},
"links": {},
"address": "0xE4b47C47F8438C45790049629E0d2B22b2B55CC3",
- "transactionHash": "0xd02d9275f530e6cb8e1384953871a3ccc8ad8a1f326dfe0b7f427596c4bb7b06"
+ "transactionHash": "0x310d9ecfd263b4264f94ffaaf5586616b831597dfdb553418387d9cf6ec43af5"
}
},
"schemaVersion": "3.0.0-beta.1",
- "updatedAt": "2018-12-08T23:20:59.934Z",
+ "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 a9395ab..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-08T22:22:23.364Z",
+ "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 6cd2b8d..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-08T22:22:23.362Z",
+ "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/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(