From 58a5a356ea754935147dedceede15a2c81420dc1 Mon Sep 17 00:00:00 2001 From: pmmax Date: Sun, 16 Dec 2018 23:11:58 -0300 Subject: [PATCH] Added "non-pool-based" miner type and updated business rules. Added referral for miners. Added "referral" pool type and updated business rules. Updated tests and playground. --- .../AlgoMiner.cs | 10 +- .../AlgoPool.cs | 2 +- .../SmartContracts/src/AlgoCommon.sol | 28 + .../SmartContracts/src/AlgoMiner.sol | 68 +- .../SmartContracts/src/AlgoPool.sol | 37 +- .../SmartContracts/src/IAlgoMiner.sol | 1 + .../src/bin/AlgoFees-sol-output.json | 1993 +- .../SmartContracts/src/bin/AlgoFees.bin | 2 +- .../SmartContracts/src/bin/AlgoFees.json | 2 +- .../src/bin/AlgoMiner-sol-output.json | 20098 +++++++++------- .../SmartContracts/src/bin/AlgoMiner.abi | 2 +- .../SmartContracts/src/bin/AlgoMiner.bin | 2 +- .../SmartContracts/src/bin/AlgoMiner.json | 132 +- .../src/bin/AlgoPool-sol-output.json | 11683 ++++----- .../SmartContracts/src/bin/AlgoPool.abi | 2 +- .../SmartContracts/src/bin/AlgoPool.bin | 2 +- .../SmartContracts/src/bin/AlgoPool.json | 118 +- .../SmartContracts/src/package-lock.json | 8 +- .../SmartContracts/src/package.json | 4 +- .../AlgoFeesTests.cs | 25 +- .../AlgoMinerTests.cs | 25 +- .../AlgoPoolTests.cs | 67 +- labs/algo-token-playground/README.md | 16 +- ...algofees-script.md => algofees-script.txt} | 40 +- ...ipt.md => pool-based-algominer-script.txt} | 11 +- .../AlgoMinerDeployCommand.cs | 4 +- .../AlgoMinerResetMinerCommand.cs | 5 +- .../AlgoPoolContract/AlgoPoolDeployCommand.cs | 2 +- .../Parsers/AlgoMinerParsers.cs | 14 +- .../Parsers/AlgoPoolParsers.cs | 4 +- .../Parsers/CommonParsers.cs | 3 + .../Runtime/RuntimeContext.cs | 2 + 32 files changed, 18945 insertions(+), 15467 deletions(-) create mode 100644 labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCommon.sol rename labs/algo-token-playground/{algofees-script.md => algofees-script.txt} (57%) rename labs/algo-token-playground/{algotoken-script.md => pool-based-algominer-script.txt} (62%) diff --git a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/AlgoMiner.cs b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/AlgoMiner.cs index 78b531e85..f411a72ac 100644 --- a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/AlgoMiner.cs +++ b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/AlgoMiner.cs @@ -32,10 +32,10 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution protected override string AbiResourceName => $"SmartContracts.src.bin.{nameof(AlgoMiner)}.abi"; protected override string BinResourceName => $"SmartContracts.src.bin.{nameof(AlgoMiner)}.bin"; - protected override BigInteger DeploymentGasUnits => 1400000; + protected override BigInteger DeploymentGasUnits => 1600000; - public Task DeployAsync(ushort minerType, byte category, string minerAccountAddress, string tokenAddress) - => base.DeployAsync(minerType, category, minerAccountAddress, tokenAddress); + public Task DeployAsync(byte minerType, byte category, string minerAccountAddress, string referralAccountAddress, string tokenAddress) + => base.DeployAsync(minerType, category, minerAccountAddress, referralAccountAddress, tokenAddress); protected override void Initialize(Contract contractDescriptor) { @@ -73,8 +73,8 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution public Task StopAndRemoveOwnershipAsync() => InvokeAsync(_stopAndRemoveOwnership, 900000); - public Task ResetMinerAsync(string newOwnerAddress) => - InvokeAsync(_resetMiner, 900000, newOwnerAddress); + public Task ResetMinerAsync(string newOwnerAddress, string newReferralAddress) => + InvokeAsync(_resetMiner, 900000, newOwnerAddress, newReferralAddress); public Task StartMiningAsync() => InvokeAsync(_startMining, 900000); diff --git a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/AlgoPool.cs b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/AlgoPool.cs index 2e6d95c61..7fbf9a3ca 100644 --- a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/AlgoPool.cs +++ b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/AlgoPool.cs @@ -21,7 +21,7 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution protected override string BinResourceName => $"SmartContracts.src.bin.{nameof(AlgoPool)}.bin"; protected override BigInteger DeploymentGasUnits => 1200000; - public Task DeployAsync(ushort poolType, string tokenAddress) + public Task DeployAsync(byte poolType, string tokenAddress) => base.DeployAsync(poolType, tokenAddress); protected override void Initialize(Contract contractDescriptor) diff --git a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCommon.sol b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCommon.sol new file mode 100644 index 000000000..72a9392ea --- /dev/null +++ b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCommon.sol @@ -0,0 +1,28 @@ +pragma solidity 0.4.24; + +contract AlgoCommon { + + uint256 internal constant TOKEN_FACTOR = 10 ** uint256(18); + uint256 internal constant CAT_0_VALUE = 100000 * TOKEN_FACTOR; + uint256 internal constant CAT_1_VALUE = 1000000 * TOKEN_FACTOR; + uint256 internal constant CAT_2_VALUE = 2 * 1000000 * TOKEN_FACTOR; + uint256 internal constant CAT_3_VALUE = 3 * 1000000 * TOKEN_FACTOR; + uint256 internal constant CAT_4_VALUE = 4 * 1000000 * TOKEN_FACTOR; + uint256 internal constant CAT_5_VALUE = 5 * 1000000 * TOKEN_FACTOR; + + function getCapacityByCategory(uint8 category) internal pure returns (uint256) { + if(category == 0) { + return CAT_0_VALUE; + } else if(category == 1) { + return CAT_1_VALUE; + } else if(category == 2) { + return CAT_2_VALUE; + } else if(category == 3) { + return CAT_3_VALUE; + } else if(category == 4) { + return CAT_4_VALUE; + } else if(category == 5) { + return CAT_5_VALUE; + } + } +} \ No newline at end of file diff --git a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoMiner.sol b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoMiner.sol index 555aa271a..80ea7a1f4 100644 --- a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoMiner.sol +++ b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoMiner.sol @@ -4,16 +4,22 @@ import "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol"; import "openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol"; import "./IAlgoMiner.sol"; +import "./AlgoCommon.sol"; import "./ERC20TokenHolder.sol"; import "./AlgoSystemRole.sol"; import "./AlgoCoreTeamRole.sol"; import "./AlgoSupervisorRole.sol"; -contract AlgoMiner is ERC20TokenHolder, AlgoSystemRole, AlgoCoreTeamRole, AlgoSupervisorRole, IAlgoMiner { +contract AlgoMiner is AlgoCommon, ERC20TokenHolder, AlgoSystemRole, AlgoCoreTeamRole, AlgoSupervisorRole, IAlgoMiner { using SafeERC20 for IERC20; uint256 public constant DAYS_PER_YEAR = 365; + enum MinerType { + PoolBased, + NonPoolBased + } + enum MinerState { Deactivated, Activated, @@ -21,9 +27,10 @@ contract AlgoMiner is ERC20TokenHolder, AlgoSystemRole, AlgoCoreTeamRole, AlgoSu Stopped } - uint16 private _minerType; + MinerType private _minerType; uint8 private _category; address private _miner; + address private _referral; MinerState private _state; bool private _mining; @@ -31,7 +38,7 @@ contract AlgoMiner is ERC20TokenHolder, AlgoSystemRole, AlgoCoreTeamRole, AlgoSu uint16 private _currentDay; uint256 private _currentYearSupply; - constructor(uint16 minerType, uint8 category, address minerAccountAddress, address tokenAddress) + constructor(MinerType minerType, uint8 category, address minerAccountAddress, address referralAccountAddress, address tokenAddress) ERC20TokenHolder(tokenAddress) AlgoSystemRole() AlgoCoreTeamRole() @@ -43,6 +50,7 @@ contract AlgoMiner is ERC20TokenHolder, AlgoSystemRole, AlgoCoreTeamRole, AlgoSu _minerType = minerType; _category = category; _miner = minerAccountAddress; + _referral = referralAccountAddress; } modifier onlyMiner() { @@ -53,12 +61,16 @@ contract AlgoMiner is ERC20TokenHolder, AlgoSystemRole, AlgoCoreTeamRole, AlgoSu function activateMiner() public notTerminated onlyCoreTeam { require(_state == MinerState.Deactivated); - if(_currentYearSupply == 0) { + if(_minerType == MinerType.PoolBased && _currentYearSupply == 0) { + + uint256 capacity = getCapacityByCategory(_category); + uint256 expectedBalance = capacity + capacity * 10 / 100; + uint256 currentBalance = _token.balanceOf(address(this)); - require(currentBalance != 0); + require(currentBalance == expectedBalance); - _currentYearSupply = currentBalance / 2; + _currentYearSupply = capacity / 2; } _state = MinerState.Activated; @@ -71,7 +83,6 @@ contract AlgoMiner is ERC20TokenHolder, AlgoSystemRole, AlgoCoreTeamRole, AlgoSu _mining = false; } - // TODO: Transfer the entire state to the new miner. function migrateMiner(address newMinerAddress) public onlyCoreTeam { require(_state == MinerState.Deactivated); @@ -96,13 +107,15 @@ contract AlgoMiner is ERC20TokenHolder, AlgoSystemRole, AlgoCoreTeamRole, AlgoSu _state = MinerState.Stopped; _mining = false; _miner = address(0); + _referral = address(0); } - function resetMiner(address newOwnerAddress) public notTerminated onlySupervisor { + function resetMiner(address newOwnerAddress, address newReferralAddress) public notTerminated onlySupervisor { require(_state == MinerState.Stopped); _state = MinerState.Activated; _miner = newOwnerAddress; + _referral = newReferralAddress; } function startMining() public notTerminated onlyMiner { @@ -120,6 +133,7 @@ contract AlgoMiner is ERC20TokenHolder, AlgoSystemRole, AlgoCoreTeamRole, AlgoSu } function mine() public notTerminated onlySystem { + require(_minerType == MinerType.PoolBased); require(_state == MinerState.Activated); require(_mining); @@ -135,11 +149,19 @@ contract AlgoMiner is ERC20TokenHolder, AlgoSystemRole, AlgoCoreTeamRole, AlgoSu } } - uint256 tokens = _currentYearSupply / DAYS_PER_YEAR; + uint256 minerTokens = _currentYearSupply / DAYS_PER_YEAR; - require(tokens > 0); + require(minerTokens > 0); - _token.safeTransfer(_miner, tokens); + _token.safeTransfer(_miner, minerTokens); + + if(_referral != address(0)) { + uint256 referralTokens = minerTokens * 10 / 100; + + require(referralTokens > 0); + + _token.safeTransfer(_referral, referralTokens); + } } function terminate() public onlyCoreTeam { @@ -150,15 +172,35 @@ contract AlgoMiner is ERC20TokenHolder, AlgoSystemRole, AlgoCoreTeamRole, AlgoSu return true; } + function getMinerType() public view returns (uint8) { + return uint8(_minerType); + } + function getCategory() public view returns (uint8) { return _category; } + function getMiner() public view returns (address) { + return _miner; + } + + function getReferral() public view returns (address) { + return _referral; + } + function isMining() public view returns (bool) { return _state == MinerState.Activated && _mining; } - function getMiner() public view returns (address) { - return _miner; + function getCurrentYear() public view returns (uint8) { + return _currentYear; + } + + function getCurrentDay() public view returns (uint16) { + return _currentDay; + } + + function getCurrentYearSupply() public view returns (uint256) { + return _currentYearSupply; } } diff --git a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoPool.sol b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoPool.sol index 1edcb38c2..4e56cb1f7 100644 --- a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoPool.sol +++ b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoPool.sol @@ -4,24 +4,22 @@ import "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol"; import "openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol"; import "./IAlgoMiner.sol"; +import "./AlgoCommon.sol"; import "./ERC20TokenHolder.sol"; import "./AlgoCoreTeamRole.sol"; -contract AlgoPool is ERC20TokenHolder, AlgoCoreTeamRole { +contract AlgoPool is AlgoCommon, ERC20TokenHolder, AlgoCoreTeamRole { using SafeERC20 for IERC20; - uint256 public constant TOKEN_FACTOR = 10 ** uint256(18); - uint256 public constant CAT_0_VALUE = 100000 * TOKEN_FACTOR; - uint256 public constant CAT_1_VALUE = 1000000 * TOKEN_FACTOR; - uint256 public constant CAT_2_VALUE = 2 * 1000000 * TOKEN_FACTOR; - uint256 public constant CAT_3_VALUE = 3 * 1000000 * TOKEN_FACTOR; - uint256 public constant CAT_4_VALUE = 4 * 1000000 * TOKEN_FACTOR; - uint256 public constant CAT_5_VALUE = 5 * 1000000 * TOKEN_FACTOR; + enum PoolType { + MinerPool, + ReferralPool + } - uint16 private _poolType; + PoolType private _poolType; mapping(address => bool) _fundedMiners; - constructor(uint16 poolType, address tokenAddress) + constructor(PoolType poolType, address tokenAddress) ERC20TokenHolder(tokenAddress) AlgoCoreTeamRole() public { @@ -39,24 +37,13 @@ contract AlgoPool is ERC20TokenHolder, AlgoCoreTeamRole { require(minerCategory >= 0 && minerCategory <= 5); - uint256 value = 0; + uint256 value = getCapacityByCategory(minerCategory); - if(minerCategory == 0) { - value = CAT_0_VALUE; - } else if(minerCategory == 1) { - value = CAT_1_VALUE; - } else if(minerCategory == 2) { - value = CAT_2_VALUE; - } else if(minerCategory == 3) { - value = CAT_3_VALUE; - } else if(minerCategory == 4) { - value = CAT_4_VALUE; - } else if(minerCategory == 5) { - value = CAT_5_VALUE; + // For referral pools only transfer the 10% of the category capacity. + if(_poolType == PoolType.ReferralPool) { + value = value * 10 / 100; } - require(value > 0); - _fundedMiners[minerAddress] = true; _token.safeTransfer(minerAddress, value); } diff --git a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/IAlgoMiner.sol b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/IAlgoMiner.sol index 109671f2b..6e28d508e 100644 --- a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/IAlgoMiner.sol +++ b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/IAlgoMiner.sol @@ -2,6 +2,7 @@ pragma solidity 0.4.24; contract IAlgoMiner { function isAlgoMiner() public pure returns (bool); + function getMinerType() public view returns (uint8); function getCategory() public view returns (uint8); function isMining() public view returns (bool); function getMiner() public view returns (address); diff --git a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoFees-sol-output.json b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoFees-sol-output.json index 05aa66a62..c3bf41b72 100644 --- a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoFees-sol-output.json +++ b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoFees-sol-output.json @@ -259,8 +259,8 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "60806040523480156200001157600080fd5b50604051602080620010d083398101604052516000805433600160a060020a0319918216811760a060020a60ff02191690925560018054909116600160a060020a0384161790556200006c90640100000000620000c7810204565b6200008033640100000000620000e5810204565b50600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054600160a060020a031916905562000193565b620000e260028264010000000062000e066200010082021704565b50565b620000e260038264010000000062000e066200010082021704565b600160a060020a03811615156200011657600080fd5b6200012b82826401000000006200015b810204565b156200013657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a03821615156200017357600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b610f2d80620001a36000396000f3006080604052600436106100a05763ffffffff60e060020a6000350416630c08bf8881146100a55780632e6b6849146100bc578063341ccfcb146100dd57806334cdcf26146100fe5780633d19ab1314610133578063608d3d3d1461016757806374be75921461018857806381f909f3146101a957806399f4b251146101ca578063bb52c137146101df578063d43acc7914610206578063e9d618591461021b575b600080fd5b3480156100b157600080fd5b506100ba610230565b005b3480156100c857600080fd5b506100ba600160a060020a036004351661024e565b3480156100e957600080fd5b506100ba600160a060020a036004351661026e565b34801561010a57600080fd5b5061011f600160a060020a0360043516610457565b604080519115158252519081900360200190f35b34801561013f57600080fd5b5061014b600435610470565b60408051600160a060020a039092168252519081900360200190f35b34801561017357600080fd5b5061011f600160a060020a036004351661049f565b34801561019457600080fd5b506100ba600160a060020a03600435166104b2565b3480156101b557600080fd5b506100ba600160a060020a03600435166104cf565b3480156101d657600080fd5b506100ba610686565b3480156101eb57600080fd5b506101f4610bd1565b60408051918252519081900360200190f35b34801561021257600080fd5b506100ba610bdc565b34801561022757600080fd5b506100ba610be5565b6102393361049f565b151561024457600080fd5b61024c610bee565b565b6102573361049f565b151561026257600080fd5b61026b81610cb5565b50565b60008054819074010000000000000000000000000000000000000000900460ff161561029957600080fd5b6102a23361049f565b15156102ad57600080fd5b6004546103e8116102bd57600080fd5b600160a060020a038316600090815260056020526040902054156102e057600080fd5b82915081600160a060020a0316631777fb4b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561032157600080fd5b505af1158015610335573d6000803e3d6000fd5b505050506040513d602081101561034b57600080fd5b5051151561035857600080fd5b81600160a060020a03166380258e476040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561039657600080fd5b505af11580156103aa573d6000803e3d6000fd5b505050506040513d60208110156103c057600080fd5b50519050600060ff8216108015906103dc575060058160ff1611155b15156103e757600080fd5b505060048054600160a060020a039092166000818152600560205260408120849055600184018355919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b909101805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b600061046a60028363ffffffff610cc616565b92915050565b600060048260010181548110151561048457fe5b600091825260209091200154600160a060020a031692915050565b600061046a60038363ffffffff610cc616565b6104bb33610457565b15156104c657600080fd5b61026b81610cfd565b60005474010000000000000000000000000000000000000000900460ff16156104f757600080fd5b6105003361049f565b151561050b57600080fd5b60045460011061051a57600080fd5b600454600214156105865760048054600190811061053457fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff191690556001610567600482610ea0565b50600160a060020a03811660009081526005602052604081205561026b565b600454600160a060020a03821660009081526005602052604090205414610620576004805460001981019081106105b957fe5b6000918252602080832090910154600160a060020a03848116845260059092526040909220546004805492909316929181106105f157fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055505b60048054600019810190811061063257fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19169055600480549061066b906000198301610ea0565b50600160a060020a0316600090815260056020526040812055565b6000610690610ec4565b60008060008061069e610ec4565b60005474010000000000000000000000000000000000000000900460ff16156106c657600080fd5b6106cf33610457565b15156106da57600080fd5b6004546001106106e957600080fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561074f57600080fd5b505af1158015610763573d6000803e3d6000fd5b505050506040513d602081101561077957600080fd5b505196506000871161078a57600080fd5b600194505b6004548510156109395760048054869081106107a757fe5b9060005260206000200160009054906101000a9004600160a060020a0316935083600160a060020a03166319a74ab36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561080557600080fd5b505af1158015610819573d6000803e3d6000fd5b505050506040513d602081101561082f57600080fd5b5051151561083c5761092e565b83600160a060020a03166380258e476040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561087a57600080fd5b505af115801561088e573d6000803e3d6000fd5b505050506040513d60208110156108a457600080fd5b5051925060ff831615156108c6578560005b602002018051600101905261092e565b8260ff16600114156108da578560016108b6565b8260ff16600214156108ee578560026108b6565b8260ff1660031415610902578560036108b6565b8260ff1660041415610916578560046108b6565b8260ff166005141561092e5760a08601805160010190525b60019094019361078f565b60a086015160808701516060880151604089015160208a01518a51600a90910201601490910201601e909102016028909102016032909102019150818781151561097f57fe5b04815281600a880281151561099057fe5b04602082015281601488028115156109a457fe5b04604082015281601e88028115156109b857fe5b04606082015281602888028115156109cc57fe5b04608082015281603288028115156109e057fe5b0460a0820152600194505b600454851015610bc8576004805486908110610a0357fe5b9060005260206000200160009054906101000a9004600160a060020a0316935083600160a060020a03166319a74ab36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a6157600080fd5b505af1158015610a75573d6000803e3d6000fd5b505050506040513d6020811015610a8b57600080fd5b50511515610a9857610bbd565b83600160a060020a03166380258e476040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610ad657600080fd5b505af1158015610aea573d6000803e3d6000fd5b505050506040513d6020811015610b0057600080fd5b5051604080517f302c11ca0000000000000000000000000000000000000000000000000000000081529051919450610bbd91600160a060020a0387169163302c11ca9160048083019260209291908290030181600087803b158015610b6457600080fd5b505af1158015610b78573d6000803e3d6000fd5b505050506040513d6020811015610b8e57600080fd5b50518260ff861660068110610b9f57fe5b6020020151600154600160a060020a0316919063ffffffff610d0e16565b6001909401936109eb565b50505050505050565b600454600019015b90565b61024c33610dad565b61024c33610dbe565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b158015610c5357600080fd5b505af1158015610c67573d6000803e3d6000fd5b505050506040513d6020811015610c7d57600080fd5b505190506000811115610cad57600054600154610cad91600160a060020a0391821691168363ffffffff610d0e16565b61026b610dcf565b61026b60038263ffffffff610e0616565b6000600160a060020a0382161515610cdd57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61026b60028263ffffffff610e0616565b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610d7157600080fd5b505af1158015610d85573d6000803e3d6000fd5b505050506040513d6020811015610d9b57600080fd5b50511515610da857600080fd5b505050565b61026b60038263ffffffff610e5416565b61026b60028263ffffffff610e5416565b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600160a060020a0381161515610e1b57600080fd5b610e258282610cc6565b15610e2f57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a0381161515610e6957600080fd5b610e738282610cc6565b1515610e7e57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b815481835581811115610da857600083815260209020610da8918101908301610ee3565b60c0604051908101604052806006906020820280388339509192915050565b610bd991905b80821115610efd5760008155600101610ee9565b50905600a165627a7a723058201033067a6ceafcfdd5906365e4a9ea37491edaca7ecea2eae390d605b7aa71c30029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH3 0x10D0 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP2 DUP3 AND DUP2 OR PUSH1 0xA0 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT AND SWAP1 SWAP3 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SSTORE PUSH3 0x6C SWAP1 PUSH5 0x100000000 PUSH3 0xC7 DUP2 MUL DIV JUMP JUMPDEST PUSH3 0x80 CALLER PUSH5 0x100000000 PUSH3 0xE5 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x8A35ACFBC15FF81A39AE7D344FD709F28E8600B4AA8C65C6B64BFE7FE36BD19B ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP1 SSTORE PUSH3 0x193 JUMP JUMPDEST PUSH3 0xE2 PUSH1 0x2 DUP3 PUSH5 0x100000000 PUSH3 0xE06 PUSH3 0x100 DUP3 MUL OR DIV JUMP JUMPDEST POP JUMP JUMPDEST PUSH3 0xE2 PUSH1 0x3 DUP3 PUSH5 0x100000000 PUSH3 0xE06 PUSH3 0x100 DUP3 MUL OR DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x116 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x12B DUP3 DUP3 PUSH5 0x100000000 PUSH3 0x15B DUP2 MUL DIV JUMP JUMPDEST ISZERO PUSH3 0x136 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND ISZERO ISZERO PUSH3 0x173 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0xF2D DUP1 PUSH3 0x1A3 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA0 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xC08BF88 DUP2 EQ PUSH2 0xA5 JUMPI DUP1 PUSH4 0x2E6B6849 EQ PUSH2 0xBC JUMPI DUP1 PUSH4 0x341CCFCB EQ PUSH2 0xDD JUMPI DUP1 PUSH4 0x34CDCF26 EQ PUSH2 0xFE JUMPI DUP1 PUSH4 0x3D19AB13 EQ PUSH2 0x133 JUMPI DUP1 PUSH4 0x608D3D3D EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0x74BE7592 EQ PUSH2 0x188 JUMPI DUP1 PUSH4 0x81F909F3 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0x99F4B251 EQ PUSH2 0x1CA JUMPI DUP1 PUSH4 0xBB52C137 EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0xD43ACC79 EQ PUSH2 0x206 JUMPI DUP1 PUSH4 0xE9D61859 EQ PUSH2 0x21B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBA PUSH2 0x230 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBA PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x24E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBA PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x26E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11F PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x457 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14B PUSH1 0x4 CALLDATALOAD PUSH2 0x470 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x173 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11F PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x49F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x194 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBA PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x4B2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBA PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x4CF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBA PUSH2 0x686 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F4 PUSH2 0xBD1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x212 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBA PUSH2 0xBDC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x227 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBA PUSH2 0xBE5 JUMP JUMPDEST PUSH2 0x239 CALLER PUSH2 0x49F JUMP JUMPDEST ISZERO ISZERO PUSH2 0x244 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24C PUSH2 0xBEE JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x257 CALLER PUSH2 0x49F JUMP JUMPDEST ISZERO ISZERO PUSH2 0x262 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26B DUP2 PUSH2 0xCB5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD DUP2 SWAP1 PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x299 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A2 CALLER PUSH2 0x49F JUMP JUMPDEST ISZERO ISZERO PUSH2 0x2AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH2 0x3E8 GT PUSH2 0x2BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x2E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 SWAP2 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x1777FB4B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x335 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x34B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x358 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x80258E47 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x396 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3AA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH1 0x0 PUSH1 0xFF DUP3 AND LT DUP1 ISZERO SWAP1 PUSH2 0x3DC JUMPI POP PUSH1 0x5 DUP2 PUSH1 0xFF AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP1 SSTORE PUSH1 0x1 DUP5 ADD DUP4 SSTORE SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x8A35ACFBC15FF81A39AE7D344FD709F28E8600B4AA8C65C6B64BFE7FE36BD19B SWAP1 SWAP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x46A PUSH1 0x2 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xCC6 AND JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 DUP3 PUSH1 0x1 ADD DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x484 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x46A PUSH1 0x3 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xCC6 AND JUMP JUMPDEST PUSH2 0x4BB CALLER PUSH2 0x457 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x4C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26B DUP2 PUSH2 0xCFD JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x4F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x500 CALLER PUSH2 0x49F JUMP JUMPDEST ISZERO ISZERO PUSH2 0x50B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 LT PUSH2 0x51A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x2 EQ ISZERO PUSH2 0x586 JUMPI PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x534 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH2 0x567 PUSH1 0x4 DUP3 PUSH2 0xEA0 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SSTORE PUSH2 0x26B JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ PUSH2 0x620 JUMPI PUSH1 0x4 DUP1 SLOAD PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x5B9 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND DUP5 MSTORE PUSH1 0x5 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 SLOAD PUSH1 0x4 DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP3 SWAP2 DUP2 LT PUSH2 0x5F1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x632 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE PUSH1 0x4 DUP1 SLOAD SWAP1 PUSH2 0x66B SWAP1 PUSH1 0x0 NOT DUP4 ADD PUSH2 0xEA0 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x690 PUSH2 0xEC4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x69E PUSH2 0xEC4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x6C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6CF CALLER PUSH2 0x457 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x6DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 LT PUSH2 0x6E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x74F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x763 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x779 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP7 POP PUSH1 0x0 DUP8 GT PUSH2 0x78A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 SWAP5 POP JUMPDEST PUSH1 0x4 SLOAD DUP6 LT ISZERO PUSH2 0x939 JUMPI PUSH1 0x4 DUP1 SLOAD DUP7 SWAP1 DUP2 LT PUSH2 0x7A7 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP4 POP DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19A74AB3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x805 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x819 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x82F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x83C JUMPI PUSH2 0x92E JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x80258E47 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x87A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x88E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x8A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH1 0xFF DUP4 AND ISZERO ISZERO PUSH2 0x8C6 JUMPI DUP6 PUSH1 0x0 JUMPDEST PUSH1 0x20 MUL ADD DUP1 MLOAD PUSH1 0x1 ADD SWAP1 MSTORE PUSH2 0x92E JUMP JUMPDEST DUP3 PUSH1 0xFF AND PUSH1 0x1 EQ ISZERO PUSH2 0x8DA JUMPI DUP6 PUSH1 0x1 PUSH2 0x8B6 JUMP JUMPDEST DUP3 PUSH1 0xFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x8EE JUMPI DUP6 PUSH1 0x2 PUSH2 0x8B6 JUMP JUMPDEST DUP3 PUSH1 0xFF AND PUSH1 0x3 EQ ISZERO PUSH2 0x902 JUMPI DUP6 PUSH1 0x3 PUSH2 0x8B6 JUMP JUMPDEST DUP3 PUSH1 0xFF AND PUSH1 0x4 EQ ISZERO PUSH2 0x916 JUMPI DUP6 PUSH1 0x4 PUSH2 0x8B6 JUMP JUMPDEST DUP3 PUSH1 0xFF AND PUSH1 0x5 EQ ISZERO PUSH2 0x92E JUMPI PUSH1 0xA0 DUP7 ADD DUP1 MLOAD PUSH1 0x1 ADD SWAP1 MSTORE JUMPDEST PUSH1 0x1 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x78F JUMP JUMPDEST PUSH1 0xA0 DUP7 ADD MLOAD PUSH1 0x80 DUP8 ADD MLOAD PUSH1 0x60 DUP9 ADD MLOAD PUSH1 0x40 DUP10 ADD MLOAD PUSH1 0x20 DUP11 ADD MLOAD DUP11 MLOAD PUSH1 0xA SWAP1 SWAP2 MUL ADD PUSH1 0x14 SWAP1 SWAP2 MUL ADD PUSH1 0x1E SWAP1 SWAP2 MUL ADD PUSH1 0x28 SWAP1 SWAP2 MUL ADD PUSH1 0x32 SWAP1 SWAP2 MUL ADD SWAP2 POP DUP2 DUP8 DUP2 ISZERO ISZERO PUSH2 0x97F JUMPI INVALID JUMPDEST DIV DUP2 MSTORE DUP2 PUSH1 0xA DUP9 MUL DUP2 ISZERO ISZERO PUSH2 0x990 JUMPI INVALID JUMPDEST DIV PUSH1 0x20 DUP3 ADD MSTORE DUP2 PUSH1 0x14 DUP9 MUL DUP2 ISZERO ISZERO PUSH2 0x9A4 JUMPI INVALID JUMPDEST DIV PUSH1 0x40 DUP3 ADD MSTORE DUP2 PUSH1 0x1E DUP9 MUL DUP2 ISZERO ISZERO PUSH2 0x9B8 JUMPI INVALID JUMPDEST DIV PUSH1 0x60 DUP3 ADD MSTORE DUP2 PUSH1 0x28 DUP9 MUL DUP2 ISZERO ISZERO PUSH2 0x9CC JUMPI INVALID JUMPDEST DIV PUSH1 0x80 DUP3 ADD MSTORE DUP2 PUSH1 0x32 DUP9 MUL DUP2 ISZERO ISZERO PUSH2 0x9E0 JUMPI INVALID JUMPDEST DIV PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x1 SWAP5 POP JUMPDEST PUSH1 0x4 SLOAD DUP6 LT ISZERO PUSH2 0xBC8 JUMPI PUSH1 0x4 DUP1 SLOAD DUP7 SWAP1 DUP2 LT PUSH2 0xA03 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP4 POP DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19A74AB3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA75 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xA8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0xA98 JUMPI PUSH2 0xBBD JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x80258E47 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAD6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xAEA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x302C11CA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH2 0xBBD SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x302C11CA SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB78 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP3 PUSH1 0xFF DUP7 AND PUSH1 0x6 DUP2 LT PUSH2 0xB9F JUMPI INVALID JUMPDEST PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xD0E AND JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x9EB JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x0 NOT ADD JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x24C CALLER PUSH2 0xDAD JUMP JUMPDEST PUSH2 0x24C CALLER PUSH2 0xDBE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC53 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC67 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH1 0x0 DUP2 GT ISZERO PUSH2 0xCAD JUMPI PUSH1 0x0 SLOAD PUSH1 0x1 SLOAD PUSH2 0xCAD SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 DUP3 AND SWAP2 AND DUP4 PUSH4 0xFFFFFFFF PUSH2 0xD0E AND JUMP JUMPDEST PUSH2 0x26B PUSH2 0xDCF JUMP JUMPDEST PUSH2 0x26B PUSH1 0x3 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xE06 AND JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND ISZERO ISZERO PUSH2 0xCDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x26B PUSH1 0x2 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xE06 AND JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA9059CBB DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD85 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xD9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0xDA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x26B PUSH1 0x3 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xE54 AND JUMP JUMPDEST PUSH2 0x26B PUSH1 0x2 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xE54 AND JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH21 0xFF0000000000000000000000000000000000000000 NOT AND PUSH21 0x10000000000000000000000000000000000000000 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xE1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE25 DUP3 DUP3 PUSH2 0xCC6 JUMP JUMPDEST ISZERO PUSH2 0xE2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xE69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE73 DUP3 DUP3 PUSH2 0xCC6 JUMP JUMPDEST ISZERO ISZERO PUSH2 0xE7E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST DUP2 SLOAD DUP2 DUP4 SSTORE DUP2 DUP2 GT ISZERO PUSH2 0xDA8 JUMPI PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH2 0xDA8 SWAP2 DUP2 ADD SWAP1 DUP4 ADD PUSH2 0xEE3 JUMP JUMPDEST PUSH1 0xC0 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xBD9 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xEFD JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xEE9 JUMP JUMPDEST POP SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 LT CALLER MOD PUSH27 0x6CEAFCFDD5906365E4A9EA37491EDACA7ECEA2EAE390D605B7AA71 0xc3 STOP 0x29 ", + "object": "60806040523480156200001157600080fd5b50604051602080620010d083398101604052516000805433600160a060020a0319918216811760a060020a60ff02191690925560018054909116600160a060020a0384161790556200006c90640100000000620000c7810204565b6200008033640100000000620000e5810204565b50600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054600160a060020a031916905562000193565b620000e260028264010000000062000e066200010082021704565b50565b620000e260038264010000000062000e066200010082021704565b600160a060020a03811615156200011657600080fd5b6200012b82826401000000006200015b810204565b156200013657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a03821615156200017357600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b610f2d80620001a36000396000f3006080604052600436106100a05763ffffffff60e060020a6000350416630c08bf8881146100a55780632e6b6849146100bc578063341ccfcb146100dd57806334cdcf26146100fe5780633d19ab1314610133578063608d3d3d1461016757806374be75921461018857806381f909f3146101a957806399f4b251146101ca578063bb52c137146101df578063d43acc7914610206578063e9d618591461021b575b600080fd5b3480156100b157600080fd5b506100ba610230565b005b3480156100c857600080fd5b506100ba600160a060020a036004351661024e565b3480156100e957600080fd5b506100ba600160a060020a036004351661026e565b34801561010a57600080fd5b5061011f600160a060020a0360043516610457565b604080519115158252519081900360200190f35b34801561013f57600080fd5b5061014b600435610470565b60408051600160a060020a039092168252519081900360200190f35b34801561017357600080fd5b5061011f600160a060020a036004351661049f565b34801561019457600080fd5b506100ba600160a060020a03600435166104b2565b3480156101b557600080fd5b506100ba600160a060020a03600435166104cf565b3480156101d657600080fd5b506100ba610686565b3480156101eb57600080fd5b506101f4610bd1565b60408051918252519081900360200190f35b34801561021257600080fd5b506100ba610bdc565b34801561022757600080fd5b506100ba610be5565b6102393361049f565b151561024457600080fd5b61024c610bee565b565b6102573361049f565b151561026257600080fd5b61026b81610cb5565b50565b60008054819074010000000000000000000000000000000000000000900460ff161561029957600080fd5b6102a23361049f565b15156102ad57600080fd5b6004546103e8116102bd57600080fd5b600160a060020a038316600090815260056020526040902054156102e057600080fd5b82915081600160a060020a0316631777fb4b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561032157600080fd5b505af1158015610335573d6000803e3d6000fd5b505050506040513d602081101561034b57600080fd5b5051151561035857600080fd5b81600160a060020a03166380258e476040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561039657600080fd5b505af11580156103aa573d6000803e3d6000fd5b505050506040513d60208110156103c057600080fd5b50519050600060ff8216108015906103dc575060058160ff1611155b15156103e757600080fd5b505060048054600160a060020a039092166000818152600560205260408120849055600184018355919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b909101805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b600061046a60028363ffffffff610cc616565b92915050565b600060048260010181548110151561048457fe5b600091825260209091200154600160a060020a031692915050565b600061046a60038363ffffffff610cc616565b6104bb33610457565b15156104c657600080fd5b61026b81610cfd565b60005474010000000000000000000000000000000000000000900460ff16156104f757600080fd5b6105003361049f565b151561050b57600080fd5b60045460011061051a57600080fd5b600454600214156105865760048054600190811061053457fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff191690556001610567600482610ea0565b50600160a060020a03811660009081526005602052604081205561026b565b600454600160a060020a03821660009081526005602052604090205414610620576004805460001981019081106105b957fe5b6000918252602080832090910154600160a060020a03848116845260059092526040909220546004805492909316929181106105f157fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055505b60048054600019810190811061063257fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19169055600480549061066b906000198301610ea0565b50600160a060020a0316600090815260056020526040812055565b6000610690610ec4565b60008060008061069e610ec4565b60005474010000000000000000000000000000000000000000900460ff16156106c657600080fd5b6106cf33610457565b15156106da57600080fd5b6004546001106106e957600080fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561074f57600080fd5b505af1158015610763573d6000803e3d6000fd5b505050506040513d602081101561077957600080fd5b505196506000871161078a57600080fd5b600194505b6004548510156109395760048054869081106107a757fe5b9060005260206000200160009054906101000a9004600160a060020a0316935083600160a060020a03166319a74ab36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561080557600080fd5b505af1158015610819573d6000803e3d6000fd5b505050506040513d602081101561082f57600080fd5b5051151561083c5761092e565b83600160a060020a03166380258e476040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561087a57600080fd5b505af115801561088e573d6000803e3d6000fd5b505050506040513d60208110156108a457600080fd5b5051925060ff831615156108c6578560005b602002018051600101905261092e565b8260ff16600114156108da578560016108b6565b8260ff16600214156108ee578560026108b6565b8260ff1660031415610902578560036108b6565b8260ff1660041415610916578560046108b6565b8260ff166005141561092e5760a08601805160010190525b60019094019361078f565b60a086015160808701516060880151604089015160208a01518a51600a90910201601490910201601e909102016028909102016032909102019150818781151561097f57fe5b04815281600a880281151561099057fe5b04602082015281601488028115156109a457fe5b04604082015281601e88028115156109b857fe5b04606082015281602888028115156109cc57fe5b04608082015281603288028115156109e057fe5b0460a0820152600194505b600454851015610bc8576004805486908110610a0357fe5b9060005260206000200160009054906101000a9004600160a060020a0316935083600160a060020a03166319a74ab36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a6157600080fd5b505af1158015610a75573d6000803e3d6000fd5b505050506040513d6020811015610a8b57600080fd5b50511515610a9857610bbd565b83600160a060020a03166380258e476040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610ad657600080fd5b505af1158015610aea573d6000803e3d6000fd5b505050506040513d6020811015610b0057600080fd5b5051604080517f302c11ca0000000000000000000000000000000000000000000000000000000081529051919450610bbd91600160a060020a0387169163302c11ca9160048083019260209291908290030181600087803b158015610b6457600080fd5b505af1158015610b78573d6000803e3d6000fd5b505050506040513d6020811015610b8e57600080fd5b50518260ff861660068110610b9f57fe5b6020020151600154600160a060020a0316919063ffffffff610d0e16565b6001909401936109eb565b50505050505050565b600454600019015b90565b61024c33610dad565b61024c33610dbe565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b158015610c5357600080fd5b505af1158015610c67573d6000803e3d6000fd5b505050506040513d6020811015610c7d57600080fd5b505190506000811115610cad57600054600154610cad91600160a060020a0391821691168363ffffffff610d0e16565b61026b610dcf565b61026b60038263ffffffff610e0616565b6000600160a060020a0382161515610cdd57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61026b60028263ffffffff610e0616565b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610d7157600080fd5b505af1158015610d85573d6000803e3d6000fd5b505050506040513d6020811015610d9b57600080fd5b50511515610da857600080fd5b505050565b61026b60038263ffffffff610e5416565b61026b60028263ffffffff610e5416565b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600160a060020a0381161515610e1b57600080fd5b610e258282610cc6565b15610e2f57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a0381161515610e6957600080fd5b610e738282610cc6565b1515610e7e57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b815481835581811115610da857600083815260209020610da8918101908301610ee3565b60c0604051908101604052806006906020820280388339509192915050565b610bd991905b80821115610efd5760008155600101610ee9565b50905600a165627a7a72305820c97e98efb9f61c8f769238044b274ddcf265ed47d4444eab2134a813ff57783b0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP1 PUSH3 0x10D0 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE MLOAD PUSH1 0x0 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP2 DUP3 AND DUP2 OR PUSH1 0xA0 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT AND SWAP1 SWAP3 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SSTORE PUSH3 0x6C SWAP1 PUSH5 0x100000000 PUSH3 0xC7 DUP2 MUL DIV JUMP JUMPDEST PUSH3 0x80 CALLER PUSH5 0x100000000 PUSH3 0xE5 DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 DUP2 ADD DUP3 SSTORE PUSH1 0x0 SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x8A35ACFBC15FF81A39AE7D344FD709F28E8600B4AA8C65C6B64BFE7FE36BD19B ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP1 SSTORE PUSH3 0x193 JUMP JUMPDEST PUSH3 0xE2 PUSH1 0x2 DUP3 PUSH5 0x100000000 PUSH3 0xE06 PUSH3 0x100 DUP3 MUL OR DIV JUMP JUMPDEST POP JUMP JUMPDEST PUSH3 0xE2 PUSH1 0x3 DUP3 PUSH5 0x100000000 PUSH3 0xE06 PUSH3 0x100 DUP3 MUL OR DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x116 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x12B DUP3 DUP3 PUSH5 0x100000000 PUSH3 0x15B DUP2 MUL DIV JUMP JUMPDEST ISZERO PUSH3 0x136 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND ISZERO ISZERO PUSH3 0x173 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0xF2D DUP1 PUSH3 0x1A3 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA0 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xC08BF88 DUP2 EQ PUSH2 0xA5 JUMPI DUP1 PUSH4 0x2E6B6849 EQ PUSH2 0xBC JUMPI DUP1 PUSH4 0x341CCFCB EQ PUSH2 0xDD JUMPI DUP1 PUSH4 0x34CDCF26 EQ PUSH2 0xFE JUMPI DUP1 PUSH4 0x3D19AB13 EQ PUSH2 0x133 JUMPI DUP1 PUSH4 0x608D3D3D EQ PUSH2 0x167 JUMPI DUP1 PUSH4 0x74BE7592 EQ PUSH2 0x188 JUMPI DUP1 PUSH4 0x81F909F3 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0x99F4B251 EQ PUSH2 0x1CA JUMPI DUP1 PUSH4 0xBB52C137 EQ PUSH2 0x1DF JUMPI DUP1 PUSH4 0xD43ACC79 EQ PUSH2 0x206 JUMPI DUP1 PUSH4 0xE9D61859 EQ PUSH2 0x21B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBA PUSH2 0x230 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBA PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x24E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBA PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x26E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11F PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x457 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14B PUSH1 0x4 CALLDATALOAD PUSH2 0x470 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x173 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11F PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x49F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x194 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBA PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x4B2 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBA PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x4CF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBA PUSH2 0x686 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F4 PUSH2 0xBD1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x212 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBA PUSH2 0xBDC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x227 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBA PUSH2 0xBE5 JUMP JUMPDEST PUSH2 0x239 CALLER PUSH2 0x49F JUMP JUMPDEST ISZERO ISZERO PUSH2 0x244 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x24C PUSH2 0xBEE JUMP JUMPDEST JUMP JUMPDEST PUSH2 0x257 CALLER PUSH2 0x49F JUMP JUMPDEST ISZERO ISZERO PUSH2 0x262 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26B DUP2 PUSH2 0xCB5 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD DUP2 SWAP1 PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x299 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A2 CALLER PUSH2 0x49F JUMP JUMPDEST ISZERO ISZERO PUSH2 0x2AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH2 0x3E8 GT PUSH2 0x2BD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO PUSH2 0x2E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 SWAP2 POP DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x1777FB4B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x321 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x335 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x34B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x358 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x80258E47 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x396 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3AA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH1 0x0 PUSH1 0xFF DUP3 AND LT DUP1 ISZERO SWAP1 PUSH2 0x3DC JUMPI POP PUSH1 0x5 DUP2 PUSH1 0xFF AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x3E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP5 SWAP1 SSTORE PUSH1 0x1 DUP5 ADD DUP4 SSTORE SWAP2 SWAP1 SWAP2 MSTORE PUSH32 0x8A35ACFBC15FF81A39AE7D344FD709F28E8600B4AA8C65C6B64BFE7FE36BD19B SWAP1 SWAP2 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x46A PUSH1 0x2 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xCC6 AND JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 DUP3 PUSH1 0x1 ADD DUP2 SLOAD DUP2 LT ISZERO ISZERO PUSH2 0x484 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x46A PUSH1 0x3 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xCC6 AND JUMP JUMPDEST PUSH2 0x4BB CALLER PUSH2 0x457 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x4C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x26B DUP2 PUSH2 0xCFD JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x4F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x500 CALLER PUSH2 0x49F JUMP JUMPDEST ISZERO ISZERO PUSH2 0x50B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 LT PUSH2 0x51A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x2 EQ ISZERO PUSH2 0x586 JUMPI PUSH1 0x4 DUP1 SLOAD PUSH1 0x1 SWAP1 DUP2 LT PUSH2 0x534 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE PUSH1 0x1 PUSH2 0x567 PUSH1 0x4 DUP3 PUSH2 0xEA0 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SSTORE PUSH2 0x26B JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD EQ PUSH2 0x620 JUMPI PUSH1 0x4 DUP1 SLOAD PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x5B9 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 DUP2 AND DUP5 MSTORE PUSH1 0x5 SWAP1 SWAP3 MSTORE PUSH1 0x40 SWAP1 SWAP3 KECCAK256 SLOAD PUSH1 0x4 DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND SWAP3 SWAP2 DUP2 LT PUSH2 0x5F1 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND MUL OR SWAP1 SSTORE POP JUMPDEST PUSH1 0x4 DUP1 SLOAD PUSH1 0x0 NOT DUP2 ADD SWAP1 DUP2 LT PUSH2 0x632 JUMPI INVALID JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 SWAP1 SWAP2 KECCAK256 ADD DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE PUSH1 0x4 DUP1 SLOAD SWAP1 PUSH2 0x66B SWAP1 PUSH1 0x0 NOT DUP4 ADD PUSH2 0xEA0 JUMP JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x5 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x690 PUSH2 0xEC4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x69E PUSH2 0xEC4 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x6C6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6CF CALLER PUSH2 0x457 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x6DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x1 LT PUSH2 0x6E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x74F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x763 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x779 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP7 POP PUSH1 0x0 DUP8 GT PUSH2 0x78A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 SWAP5 POP JUMPDEST PUSH1 0x4 SLOAD DUP6 LT ISZERO PUSH2 0x939 JUMPI PUSH1 0x4 DUP1 SLOAD DUP7 SWAP1 DUP2 LT PUSH2 0x7A7 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP4 POP DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19A74AB3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x805 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x819 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x82F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x83C JUMPI PUSH2 0x92E JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x80258E47 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x87A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x88E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x8A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP3 POP PUSH1 0xFF DUP4 AND ISZERO ISZERO PUSH2 0x8C6 JUMPI DUP6 PUSH1 0x0 JUMPDEST PUSH1 0x20 MUL ADD DUP1 MLOAD PUSH1 0x1 ADD SWAP1 MSTORE PUSH2 0x92E JUMP JUMPDEST DUP3 PUSH1 0xFF AND PUSH1 0x1 EQ ISZERO PUSH2 0x8DA JUMPI DUP6 PUSH1 0x1 PUSH2 0x8B6 JUMP JUMPDEST DUP3 PUSH1 0xFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x8EE JUMPI DUP6 PUSH1 0x2 PUSH2 0x8B6 JUMP JUMPDEST DUP3 PUSH1 0xFF AND PUSH1 0x3 EQ ISZERO PUSH2 0x902 JUMPI DUP6 PUSH1 0x3 PUSH2 0x8B6 JUMP JUMPDEST DUP3 PUSH1 0xFF AND PUSH1 0x4 EQ ISZERO PUSH2 0x916 JUMPI DUP6 PUSH1 0x4 PUSH2 0x8B6 JUMP JUMPDEST DUP3 PUSH1 0xFF AND PUSH1 0x5 EQ ISZERO PUSH2 0x92E JUMPI PUSH1 0xA0 DUP7 ADD DUP1 MLOAD PUSH1 0x1 ADD SWAP1 MSTORE JUMPDEST PUSH1 0x1 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x78F JUMP JUMPDEST PUSH1 0xA0 DUP7 ADD MLOAD PUSH1 0x80 DUP8 ADD MLOAD PUSH1 0x60 DUP9 ADD MLOAD PUSH1 0x40 DUP10 ADD MLOAD PUSH1 0x20 DUP11 ADD MLOAD DUP11 MLOAD PUSH1 0xA SWAP1 SWAP2 MUL ADD PUSH1 0x14 SWAP1 SWAP2 MUL ADD PUSH1 0x1E SWAP1 SWAP2 MUL ADD PUSH1 0x28 SWAP1 SWAP2 MUL ADD PUSH1 0x32 SWAP1 SWAP2 MUL ADD SWAP2 POP DUP2 DUP8 DUP2 ISZERO ISZERO PUSH2 0x97F JUMPI INVALID JUMPDEST DIV DUP2 MSTORE DUP2 PUSH1 0xA DUP9 MUL DUP2 ISZERO ISZERO PUSH2 0x990 JUMPI INVALID JUMPDEST DIV PUSH1 0x20 DUP3 ADD MSTORE DUP2 PUSH1 0x14 DUP9 MUL DUP2 ISZERO ISZERO PUSH2 0x9A4 JUMPI INVALID JUMPDEST DIV PUSH1 0x40 DUP3 ADD MSTORE DUP2 PUSH1 0x1E DUP9 MUL DUP2 ISZERO ISZERO PUSH2 0x9B8 JUMPI INVALID JUMPDEST DIV PUSH1 0x60 DUP3 ADD MSTORE DUP2 PUSH1 0x28 DUP9 MUL DUP2 ISZERO ISZERO PUSH2 0x9CC JUMPI INVALID JUMPDEST DIV PUSH1 0x80 DUP3 ADD MSTORE DUP2 PUSH1 0x32 DUP9 MUL DUP2 ISZERO ISZERO PUSH2 0x9E0 JUMPI INVALID JUMPDEST DIV PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x1 SWAP5 POP JUMPDEST PUSH1 0x4 SLOAD DUP6 LT ISZERO PUSH2 0xBC8 JUMPI PUSH1 0x4 DUP1 SLOAD DUP7 SWAP1 DUP2 LT PUSH2 0xA03 JUMPI INVALID JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP4 POP DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x19A74AB3 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA61 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xA75 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xA8B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0xA98 JUMPI PUSH2 0xBBD JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x80258E47 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAD6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xAEA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x302C11CA00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE SWAP1 MLOAD SWAP2 SWAP5 POP PUSH2 0xBBD SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP8 AND SWAP2 PUSH4 0x302C11CA SWAP2 PUSH1 0x4 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xB64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xB78 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xB8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD DUP3 PUSH1 0xFF DUP7 AND PUSH1 0x6 DUP2 LT PUSH2 0xB9F JUMPI INVALID JUMPDEST PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xD0E AND JUMP JUMPDEST PUSH1 0x1 SWAP1 SWAP5 ADD SWAP4 PUSH2 0x9EB JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD PUSH1 0x0 NOT ADD JUMPDEST SWAP1 JUMP JUMPDEST PUSH2 0x24C CALLER PUSH2 0xDAD JUMP JUMPDEST PUSH2 0x24C CALLER PUSH2 0xDBE JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC53 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC67 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH1 0x0 DUP2 GT ISZERO PUSH2 0xCAD JUMPI PUSH1 0x0 SLOAD PUSH1 0x1 SLOAD PUSH2 0xCAD SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 DUP3 AND SWAP2 AND DUP4 PUSH4 0xFFFFFFFF PUSH2 0xD0E AND JUMP JUMPDEST PUSH2 0x26B PUSH2 0xDCF JUMP JUMPDEST PUSH2 0x26B PUSH1 0x3 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xE06 AND JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND ISZERO ISZERO PUSH2 0xCDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x26B PUSH1 0x2 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xE06 AND JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA9059CBB DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD85 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xD9B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0xDA8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x26B PUSH1 0x3 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xE54 AND JUMP JUMPDEST PUSH2 0x26B PUSH1 0x2 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xE54 AND JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH21 0xFF0000000000000000000000000000000000000000 NOT AND PUSH21 0x10000000000000000000000000000000000000000 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xE1B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE25 DUP3 DUP3 PUSH2 0xCC6 JUMP JUMPDEST ISZERO PUSH2 0xE2F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xE69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE73 DUP3 DUP3 PUSH2 0xCC6 JUMP JUMPDEST ISZERO ISZERO PUSH2 0xE7E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST DUP2 SLOAD DUP2 DUP4 SSTORE DUP2 DUP2 GT ISZERO PUSH2 0xDA8 JUMPI PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 SWAP1 KECCAK256 PUSH2 0xDA8 SWAP2 DUP2 ADD SWAP1 DUP4 ADD PUSH2 0xEE3 JUMP JUMPDEST PUSH1 0xC0 PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CODESIZE DUP4 CODECOPY POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xBD9 SWAP2 SWAP1 JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0xEFD JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0xEE9 JUMP JUMPDEST POP SWAP1 JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc9 PUSH31 0x98EFB9F61C8F769238044B274DDCF265ED47D4444EAB2134A813FF57783B00 0x29 ", "sourceMap": "556:4724:1:-;;;1070:235;8:9:-1;5:2;;;30:1;27;20:12;5:2;1070:235:1;;;;;;;;;;;;;156:8:5;:21;;167:10;-1:-1:-1;;;;;;156:21:5;;;;;-1:-1:-1;;;;;;188:19:5;;;;-1:-1:-1;636:29:3;;;;;-1:-1:-1;;;;;636:29:3;;;;;364:22:2;;:10;;;;:22;:::i;:::-;368:24:0;381:10;368:12;;;;:24;:::i;:::-;-1:-1:-1;1225:7:1;27:10:-1;;39:1;23:18;;45:23;;1246:1:1;1225:24;;;;;;;;-1:-1:-1;;;;;;1225:24:1;;;556:4724;;800:92:2;857:27;:14;876:7;857:18;;;;;;:27;:::i;:::-;800:92;:::o;824:96:0:-;883:29;:16;904:7;883:20;;;;;;:29;:::i;244:167:6:-;-1:-1:-1;;;;;316:21:6;;;;308:30;;;;;;353:18;357:4;363:7;353:3;;;;:18;:::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:6;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:6;402:4;379:27;;;244:167::o;725:166::-;809:4;-1:-1:-1;;;;;831:21:6;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:6;:11;:20;;;;;;;;;;;;;;;725:166::o;556:4724:1:-;;;;;;;" }, "gasEstimates": { @@ -299,7 +299,7 @@ "unregisterMiner(address)": "81f909f3" } }, - "metadata": "{\"compiler\":{\"version\":\"0.4.24+commit.e67f0147\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[],\"name\":\"terminate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addCoreTeam\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"minerAddress\",\"type\":\"address\"}],\"name\":\"registerMiner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isSystem\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getMinerByIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isCoreTeam\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addSystem\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"minerAddress\",\"type\":\"address\"}],\"name\":\"unregisterMiner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"mine\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getMinerCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceCoreTeam\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceSystem\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"tokenAddress\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoFees.sol\":\"AlgoFees\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCoreTeamRole.sol\":{\"keccak256\":\"0xe6fc9b275c7a4c4f00337d2a388cc97a64ad82e5a23c24c59a4593e85a05b08a\",\"urls\":[\"bzzr://40c7674b2a3543a2b2606c70df215a876bd1a064d249e658d2bbd6fe25969c2e\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoFees.sol\":{\"keccak256\":\"0x143e742903e9fb652810dd60b96a084f550c5308784c4797270c651a3f407447\",\"urls\":[\"bzzr://a56b09e9fc46585c07a4fd9cd33c6624e86c745582536921fc16a9eda742f988\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoSystemRole.sol\":{\"keccak256\":\"0x6fffe504e6805d95ca42269cc995a3de9401a12bc037068b056c186ce8569d8d\",\"urls\":[\"bzzr://a0923a2d2b1e4992f552ce49638b19d6d8328950c1d5dc1395f0d625daf21c68\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/ERC20TokenHolder.sol\":{\"keccak256\":\"0x71adbf7f060599239b7a981594e43dc8fbe8597fd2853b6fe9e70ff39883d73a\",\"urls\":[\"bzzr://70691c1638cdc0f744f8c5b5a94e4f857ba40ad053816cfbd15e13ed41a3bc66\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/IAlgoMiner.sol\":{\"keccak256\":\"0x94c226040dfda257ee61c1455bbb920db28b6ad0f5cba33ecc76319c003630b7\",\"urls\":[\"bzzr://bdd0568ed74054f0f91933dab7fbba6789cceb60ab2f5200d719347161e8feed\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/Terminable.sol\":{\"keccak256\":\"0x29a8fa3204dbd204355714601ce21d7d717a586a4de21009d8f2a3ca7981963f\",\"urls\":[\"bzzr://55d9b762620cef1e6f7b11a26d6cc123f5b608a59e0d36f9bc0a1e8ff0ff5c42\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xa6e47d62e68903c8fff23500d80e7cc8085b9127995803478d9982cd8a6d49e4\",\"urls\":[\"bzzr://7c87eb3c145fe7592c97baa287501faff7e81c1965333c9b042ffb6b387e94a1\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xdd18f05c74536a06166c90a17ec3c6932853764f292bed314ceb23e730ff83af\",\"urls\":[\"bzzr://1d8a608339978ac18782f7051816cf23b4072d8814979e3ef74788cc6025cca0\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc8a7f15fa44eb10057f8bcb58418d3aed6f5267d211d18f93f3d4e0293e3da44\",\"urls\":[\"bzzr://8825e2508348b01a091ff47b8525e583b6e5604f6679684f805d67a9a6a2a7e9\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0x0a172a0ef8681d4a7d8034d003670a9b1968d914b0bfa64e13ddca289a85d24a\",\"urls\":[\"bzzr://733b6203c967b44d6de90b5c6b144e58a380a3f29befb2dc70e765dae2f1ca18\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.4.24+commit.e67f0147\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[],\"name\":\"terminate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addCoreTeam\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"minerAddress\",\"type\":\"address\"}],\"name\":\"registerMiner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isSystem\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getMinerByIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isCoreTeam\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addSystem\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"minerAddress\",\"type\":\"address\"}],\"name\":\"unregisterMiner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"mine\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getMinerCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceCoreTeam\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceSystem\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"tokenAddress\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoFees.sol\":\"AlgoFees\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCoreTeamRole.sol\":{\"keccak256\":\"0xe6fc9b275c7a4c4f00337d2a388cc97a64ad82e5a23c24c59a4593e85a05b08a\",\"urls\":[\"bzzr://40c7674b2a3543a2b2606c70df215a876bd1a064d249e658d2bbd6fe25969c2e\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoFees.sol\":{\"keccak256\":\"0x143e742903e9fb652810dd60b96a084f550c5308784c4797270c651a3f407447\",\"urls\":[\"bzzr://a56b09e9fc46585c07a4fd9cd33c6624e86c745582536921fc16a9eda742f988\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoSystemRole.sol\":{\"keccak256\":\"0x6fffe504e6805d95ca42269cc995a3de9401a12bc037068b056c186ce8569d8d\",\"urls\":[\"bzzr://a0923a2d2b1e4992f552ce49638b19d6d8328950c1d5dc1395f0d625daf21c68\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/ERC20TokenHolder.sol\":{\"keccak256\":\"0x71adbf7f060599239b7a981594e43dc8fbe8597fd2853b6fe9e70ff39883d73a\",\"urls\":[\"bzzr://70691c1638cdc0f744f8c5b5a94e4f857ba40ad053816cfbd15e13ed41a3bc66\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/IAlgoMiner.sol\":{\"keccak256\":\"0xdc21d3ce2e847a83e62a95fc4e8a31305771c1c6549fba2102ae9a7caa09a1e5\",\"urls\":[\"bzzr://291aa93e18c12398d6d8031308b1a0231d253ec061a5449d0335bd476554383e\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/Terminable.sol\":{\"keccak256\":\"0x29a8fa3204dbd204355714601ce21d7d717a586a4de21009d8f2a3ca7981963f\",\"urls\":[\"bzzr://55d9b762620cef1e6f7b11a26d6cc123f5b608a59e0d36f9bc0a1e8ff0ff5c42\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xa6e47d62e68903c8fff23500d80e7cc8085b9127995803478d9982cd8a6d49e4\",\"urls\":[\"bzzr://7c87eb3c145fe7592c97baa287501faff7e81c1965333c9b042ffb6b387e94a1\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xdd18f05c74536a06166c90a17ec3c6932853764f292bed314ceb23e730ff83af\",\"urls\":[\"bzzr://1d8a608339978ac18782f7051816cf23b4072d8814979e3ef74788cc6025cca0\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc8a7f15fa44eb10057f8bcb58418d3aed6f5267d211d18f93f3d4e0293e3da44\",\"urls\":[\"bzzr://8825e2508348b01a091ff47b8525e583b6e5604f6679684f805d67a9a6a2a7e9\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0x0a172a0ef8681d4a7d8034d003670a9b1968d914b0bfa64e13ddca289a85d24a\",\"urls\":[\"bzzr://733b6203c967b44d6de90b5c6b144e58a380a3f29befb2dc70e765dae2f1ca18\"]}},\"version\":1}", "userdoc": { "methods": {} } @@ -459,6 +459,20 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "getMinerType", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [], @@ -488,6 +502,7 @@ "methodIdentifiers": { "getCategory()": "80258e47", "getMiner()": "302c11ca", + "getMinerType()": "4969ae70", "isAlgoMiner()": "1777fb4b", "isMining()": "19a74ab3" } @@ -867,7 +882,7 @@ "id": 2, "nodeType": "ImportDirective", "scope": 87, - "sourceUnit": 905, + "sourceUnit": 910, "src": "28:189:0", "symbolAliases": [], "unitAlias": "" @@ -892,10 +907,10 @@ "id": 3, "name": "Roles", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 904, + "referencedDeclaration": 909, "src": "260:5:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Roles_$904", + "typeIdentifier": "t_contract$_Roles_$909", "typeString": "library Roles" } }, @@ -906,10 +921,10 @@ "id": 4, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 817, + "referencedDeclaration": 822, "src": "270:10:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$817_storage_ptr", + "typeIdentifier": "t_struct$_Role_$822_storage_ptr", "typeString": "struct Roles.Role" } } @@ -924,7 +939,7 @@ "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$817_storage", + "typeIdentifier": "t_struct$_Role_$822_storage", "typeString": "struct Roles.Role" }, "typeName": { @@ -932,10 +947,10 @@ "id": 6, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 817, + "referencedDeclaration": 822, "src": "289:10:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$817_storage_ptr", + "typeIdentifier": "t_struct$_Role_$822_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -960,7 +975,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1260, + "referencedDeclaration": 1265, "src": "381:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -1068,7 +1083,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1260, + "referencedDeclaration": 1265, "src": "462:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -1134,10 +1149,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "443:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", @@ -1222,7 +1237,7 @@ "referencedDeclaration": 7, "src": "584:16:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$817_storage", + "typeIdentifier": "t_struct$_Role_$822_storage", "typeString": "struct Roles.Role storage ref" } }, @@ -1233,10 +1248,10 @@ "lValueRequested": false, "memberName": "has", "nodeType": "MemberAccess", - "referencedDeclaration": 903, + "referencedDeclaration": 908, "src": "584:20:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$817_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$817_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$822_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$822_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, @@ -1496,7 +1511,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1260, + "referencedDeclaration": 1265, "src": "797:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -1623,7 +1638,7 @@ "referencedDeclaration": 7, "src": "883:16:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$817_storage", + "typeIdentifier": "t_struct$_Role_$822_storage", "typeString": "struct Roles.Role storage ref" } }, @@ -1634,10 +1649,10 @@ "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 849, + "referencedDeclaration": 854, "src": "883:20:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$817_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$817_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$822_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$822_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, @@ -1755,7 +1770,7 @@ "referencedDeclaration": 7, "src": "990:16:0", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$817_storage", + "typeIdentifier": "t_struct$_Role_$822_storage", "typeString": "struct Roles.Role storage ref" } }, @@ -1766,10 +1781,10 @@ "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 880, + "referencedDeclaration": 885, "src": "990:23:0", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$817_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$817_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$822_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$822_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, @@ -1883,7 +1898,7 @@ "id": 89, "nodeType": "ImportDirective", "scope": 607, - "sourceUnit": 1102, + "sourceUnit": 1107, "src": "27:195:1", "symbolAliases": [], "unitAlias": "" @@ -1894,7 +1909,7 @@ "id": 90, "nodeType": "ImportDirective", "scope": 607, - "sourceUnit": 1246, + "sourceUnit": 1251, "src": "224:198:1", "symbolAliases": [], "unitAlias": "" @@ -1905,7 +1920,7 @@ "id": 91, "nodeType": "ImportDirective", "scope": 607, - "sourceUnit": 774, + "sourceUnit": 779, "src": "426:26:1", "symbolAliases": [], "unitAlias": "" @@ -2004,7 +2019,7 @@ 750, 86, 693, - 810 + 815 ], "contractKind": "contract", "documentation": null, @@ -2015,7 +2030,7 @@ 86, 693, 750, - 810 + 815 ], "name": "AlgoFees", "nodeType": "ContractDefinition", @@ -2027,10 +2042,10 @@ "id": 101, "name": "SafeERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1245, + "referencedDeclaration": 1250, "src": "641:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$1245", + "typeIdentifier": "t_contract$_SafeERC20_$1250", "typeString": "library SafeERC20" } }, @@ -2041,10 +2056,10 @@ "id": 102, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1101, + "referencedDeclaration": 1106, "src": "655:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" } } @@ -2723,10 +2738,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "1403:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", @@ -2844,10 +2859,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "1444:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", @@ -2887,7 +2902,7 @@ "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAlgoMiner_$773", + "typeIdentifier": "t_contract$_IAlgoMiner_$778", "typeString": "contract IAlgoMiner" }, "typeName": { @@ -2895,10 +2910,10 @@ "id": 173, "name": "IAlgoMiner", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 773, + "referencedDeclaration": 778, "src": "1501:10:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAlgoMiner_$773", + "typeIdentifier": "t_contract$_IAlgoMiner_$778", "typeString": "contract IAlgoMiner" } }, @@ -2935,10 +2950,10 @@ "name": "IAlgoMiner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 773, + "referencedDeclaration": 778, "src": "1524:10:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IAlgoMiner_$773_$", + "typeIdentifier": "t_type$_t_contract$_IAlgoMiner_$778_$", "typeString": "type(contract IAlgoMiner)" } }, @@ -2952,7 +2967,7 @@ "nodeType": "FunctionCall", "src": "1524:24:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAlgoMiner_$773", + "typeIdentifier": "t_contract$_IAlgoMiner_$778", "typeString": "contract IAlgoMiner" } }, @@ -2977,7 +2992,7 @@ "referencedDeclaration": 174, "src": "1577:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAlgoMiner_$773", + "typeIdentifier": "t_contract$_IAlgoMiner_$778", "typeString": "contract IAlgoMiner" } }, @@ -3021,10 +3036,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "1569:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", @@ -3096,7 +3111,7 @@ "referencedDeclaration": 174, "src": "1644:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAlgoMiner_$773", + "typeIdentifier": "t_contract$_IAlgoMiner_$778", "typeString": "contract IAlgoMiner" } }, @@ -3107,7 +3122,7 @@ "lValueRequested": false, "memberName": "getCategory", "nodeType": "MemberAccess", - "referencedDeclaration": 762, + "referencedDeclaration": 767, "src": "1644:21:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", @@ -3266,10 +3281,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "1680:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", @@ -3470,7 +3485,7 @@ "name": "notTerminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 801, + "referencedDeclaration": 806, "src": "1365:13:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -3636,10 +3651,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "1934:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", @@ -4466,7 +4481,7 @@ "name": "notTerminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 801, + "referencedDeclaration": 806, "src": "1896:13:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -4632,10 +4647,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "2672:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", @@ -4705,7 +4720,7 @@ "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1291, + "referencedDeclaration": 1296, "src": "2766:4:1", "typeDescriptions": { "typeIdentifier": "t_contract$_AlgoFees_$606", @@ -4764,7 +4779,7 @@ "referencedDeclaration": 705, "src": "2741:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" } }, @@ -4775,7 +4790,7 @@ "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 1046, + "referencedDeclaration": 1051, "src": "2741:16:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", @@ -4865,10 +4880,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "2779:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", @@ -4976,7 +4991,7 @@ "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAlgoMiner_$773", + "typeIdentifier": "t_contract$_IAlgoMiner_$778", "typeString": "contract IAlgoMiner" }, "typeName": { @@ -4984,10 +4999,10 @@ "id": 340, "name": "IAlgoMiner", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 773, + "referencedDeclaration": 778, "src": "2990:10:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAlgoMiner_$773", + "typeIdentifier": "t_contract$_IAlgoMiner_$778", "typeString": "contract IAlgoMiner" } }, @@ -5051,10 +5066,10 @@ "name": "IAlgoMiner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 773, + "referencedDeclaration": 778, "src": "3013:10:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IAlgoMiner_$773_$", + "typeIdentifier": "t_type$_t_contract$_IAlgoMiner_$778_$", "typeString": "type(contract IAlgoMiner)" } }, @@ -5068,7 +5083,7 @@ "nodeType": "FunctionCall", "src": "3013:22:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAlgoMiner_$773", + "typeIdentifier": "t_contract$_IAlgoMiner_$778", "typeString": "contract IAlgoMiner" } }, @@ -5101,7 +5116,7 @@ "referencedDeclaration": 341, "src": "3056:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAlgoMiner_$773", + "typeIdentifier": "t_contract$_IAlgoMiner_$778", "typeString": "contract IAlgoMiner" } }, @@ -5112,7 +5127,7 @@ "lValueRequested": false, "memberName": "isMining", "nodeType": "MemberAccess", - "referencedDeclaration": 767, + "referencedDeclaration": 772, "src": "3056:18:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$", @@ -5195,7 +5210,7 @@ "referencedDeclaration": 341, "src": "3125:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAlgoMiner_$773", + "typeIdentifier": "t_contract$_IAlgoMiner_$778", "typeString": "contract IAlgoMiner" } }, @@ -5206,7 +5221,7 @@ "lValueRequested": false, "memberName": "getCategory", "nodeType": "MemberAccess", - "referencedDeclaration": 762, + "referencedDeclaration": 767, "src": "3125:21:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", @@ -7684,7 +7699,7 @@ "referencedDeclaration": 341, "src": "4731:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAlgoMiner_$773", + "typeIdentifier": "t_contract$_IAlgoMiner_$778", "typeString": "contract IAlgoMiner" } }, @@ -7745,10 +7760,10 @@ "name": "IAlgoMiner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 773, + "referencedDeclaration": 778, "src": "4743:10:1", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IAlgoMiner_$773_$", + "typeIdentifier": "t_type$_t_contract$_IAlgoMiner_$778_$", "typeString": "type(contract IAlgoMiner)" } }, @@ -7762,13 +7777,13 @@ "nodeType": "FunctionCall", "src": "4743:22:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAlgoMiner_$773", + "typeIdentifier": "t_contract$_IAlgoMiner_$778", "typeString": "contract IAlgoMiner" } }, "src": "4731:34:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAlgoMiner_$773", + "typeIdentifier": "t_contract$_IAlgoMiner_$778", "typeString": "contract IAlgoMiner" } }, @@ -7802,7 +7817,7 @@ "referencedDeclaration": 341, "src": "4786:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAlgoMiner_$773", + "typeIdentifier": "t_contract$_IAlgoMiner_$778", "typeString": "contract IAlgoMiner" } }, @@ -7813,7 +7828,7 @@ "lValueRequested": false, "memberName": "isMining", "nodeType": "MemberAccess", - "referencedDeclaration": 767, + "referencedDeclaration": 772, "src": "4786:18:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$", @@ -7886,7 +7901,7 @@ "referencedDeclaration": 341, "src": "4849:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAlgoMiner_$773", + "typeIdentifier": "t_contract$_IAlgoMiner_$778", "typeString": "contract IAlgoMiner" } }, @@ -7897,7 +7912,7 @@ "lValueRequested": false, "memberName": "getCategory", "nodeType": "MemberAccess", - "referencedDeclaration": 762, + "referencedDeclaration": 767, "src": "4849:21:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", @@ -7946,7 +7961,7 @@ "referencedDeclaration": 341, "src": "4900:9:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAlgoMiner_$773", + "typeIdentifier": "t_contract$_IAlgoMiner_$778", "typeString": "contract IAlgoMiner" } }, @@ -7957,7 +7972,7 @@ "lValueRequested": false, "memberName": "getMiner", "nodeType": "MemberAccess", - "referencedDeclaration": 772, + "referencedDeclaration": 777, "src": "4900:18:1", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", @@ -8039,7 +8054,7 @@ "referencedDeclaration": 705, "src": "4880:6:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" } }, @@ -8050,10 +8065,10 @@ "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 1126, + "referencedDeclaration": 1131, "src": "4880:19:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1101_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$1101_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1106_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$1106_$", "typeString": "function (contract IERC20,address,uint256)" } }, @@ -8244,7 +8259,7 @@ "name": "notTerminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 801, + "referencedDeclaration": 806, "src": "2636:13:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -8730,7 +8745,7 @@ "id": 609, "nodeType": "ImportDirective", "scope": 694, - "sourceUnit": 905, + "sourceUnit": 910, "src": "28:189:2", "symbolAliases": [], "unitAlias": "" @@ -8755,10 +8770,10 @@ "id": 610, "name": "Roles", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 904, + "referencedDeclaration": 909, "src": "258:5:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_Roles_$904", + "typeIdentifier": "t_contract$_Roles_$909", "typeString": "library Roles" } }, @@ -8769,10 +8784,10 @@ "id": 611, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 817, + "referencedDeclaration": 822, "src": "268:10:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$817_storage_ptr", + "typeIdentifier": "t_struct$_Role_$822_storage_ptr", "typeString": "struct Roles.Role" } } @@ -8787,7 +8802,7 @@ "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$817_storage", + "typeIdentifier": "t_struct$_Role_$822_storage", "typeString": "struct Roles.Role" }, "typeName": { @@ -8795,10 +8810,10 @@ "id": 613, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 817, + "referencedDeclaration": 822, "src": "287:10:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$817_storage_ptr", + "typeIdentifier": "t_struct$_Role_$822_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -8823,7 +8838,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1260, + "referencedDeclaration": 1265, "src": "375:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -8931,7 +8946,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1260, + "referencedDeclaration": 1265, "src": "452:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -8997,10 +9012,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "435:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", @@ -9085,7 +9100,7 @@ "referencedDeclaration": 614, "src": "572:14:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$817_storage", + "typeIdentifier": "t_struct$_Role_$822_storage", "typeString": "struct Roles.Role storage ref" } }, @@ -9096,10 +9111,10 @@ "lValueRequested": false, "memberName": "has", "nodeType": "MemberAccess", - "referencedDeclaration": 903, + "referencedDeclaration": 908, "src": "572:18:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$817_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$817_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$822_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$822_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, @@ -9359,7 +9374,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1260, + "referencedDeclaration": 1265, "src": "773:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -9486,7 +9501,7 @@ "referencedDeclaration": 614, "src": "857:14:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$817_storage", + "typeIdentifier": "t_struct$_Role_$822_storage", "typeString": "struct Roles.Role storage ref" } }, @@ -9497,10 +9512,10 @@ "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 849, + "referencedDeclaration": 854, "src": "857:18:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$817_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$817_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$822_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$822_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, @@ -9618,7 +9633,7 @@ "referencedDeclaration": 614, "src": "960:14:2", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$817_storage", + "typeIdentifier": "t_struct$_Role_$822_storage", "typeString": "struct Roles.Role storage ref" } }, @@ -9629,10 +9644,10 @@ "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 880, + "referencedDeclaration": 885, "src": "960:21:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$817_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$817_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$822_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$822_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, @@ -9746,7 +9761,7 @@ "id": 696, "nodeType": "ImportDirective", "scope": 751, - "sourceUnit": 1102, + "sourceUnit": 1107, "src": "27:195:3", "symbolAliases": [], "unitAlias": "" @@ -9757,7 +9772,7 @@ "id": 697, "nodeType": "ImportDirective", "scope": 751, - "sourceUnit": 1246, + "sourceUnit": 1251, "src": "224:198:3", "symbolAliases": [], "unitAlias": "" @@ -9768,7 +9783,7 @@ "id": 698, "nodeType": "ImportDirective", "scope": 751, - "sourceUnit": 811, + "sourceUnit": 816, "src": "426:26:3", "symbolAliases": [], "unitAlias": "" @@ -9782,10 +9797,10 @@ "id": 699, "name": "Terminable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 810, + "referencedDeclaration": 815, "src": "485:10:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_Terminable_$810", + "typeIdentifier": "t_contract$_Terminable_$815", "typeString": "contract Terminable" } }, @@ -9795,7 +9810,7 @@ } ], "contractDependencies": [ - 810 + 815 ], "contractKind": "contract", "documentation": null, @@ -9803,7 +9818,7 @@ "id": 750, "linearizedBaseContracts": [ 750, - 810 + 815 ], "name": "ERC20TokenHolder", "nodeType": "ContractDefinition", @@ -9815,10 +9830,10 @@ "id": 701, "name": "SafeERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1245, + "referencedDeclaration": 1250, "src": "509:9:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$1245", + "typeIdentifier": "t_contract$_SafeERC20_$1250", "typeString": "library SafeERC20" } }, @@ -9829,10 +9844,10 @@ "id": 702, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1101, + "referencedDeclaration": 1106, "src": "523:6:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" } } @@ -9847,7 +9862,7 @@ "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" }, "typeName": { @@ -9855,10 +9870,10 @@ "id": 704, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1101, + "referencedDeclaration": 1106, "src": "538:6:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" } }, @@ -9888,7 +9903,7 @@ "referencedDeclaration": 705, "src": "636:6:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" } }, @@ -9922,10 +9937,10 @@ "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1101, + "referencedDeclaration": 1106, "src": "645:6:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$1101_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$1106_$", "typeString": "type(contract IERC20)" } }, @@ -9939,13 +9954,13 @@ "nodeType": "FunctionCall", "src": "645:20:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" } }, "src": "636:29:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" } }, @@ -9970,10 +9985,10 @@ "name": "Terminable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 810, + "referencedDeclaration": 815, "src": "603:10:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Terminable_$810_$", + "typeIdentifier": "t_type$_t_contract$_Terminable_$815_$", "typeString": "type(contract Terminable)" } }, @@ -10080,7 +10095,7 @@ "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1287, + "referencedDeclaration": 1292, "src": "773:4:3", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC20TokenHolder_$750", @@ -10139,7 +10154,7 @@ "referencedDeclaration": 705, "src": "748:6:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" } }, @@ -10150,7 +10165,7 @@ "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 1046, + "referencedDeclaration": 1051, "src": "748:16:3", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", @@ -10244,7 +10259,7 @@ "name": "_creator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 777, + "referencedDeclaration": 782, "src": "848:8:3", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10285,7 +10300,7 @@ "referencedDeclaration": 705, "src": "828:6:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" } }, @@ -10296,10 +10311,10 @@ "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 1126, + "referencedDeclaration": 1131, "src": "828:19:3", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1101_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$1101_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1106_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$1106_$", "typeString": "function (contract IERC20,address,uint256)" } }, @@ -10336,10 +10351,10 @@ "name": "Terminable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 810, + "referencedDeclaration": 815, "src": "895:10:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Terminable_$810_$", + "typeIdentifier": "t_type$_t_contract$_Terminable_$815_$", "typeString": "type(contract Terminable)" } }, @@ -10350,7 +10365,7 @@ "lValueRequested": false, "memberName": "_terminate", "nodeType": "MemberAccess", - "referencedDeclaration": 809, + "referencedDeclaration": 814, "src": "895:21:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -10401,7 +10416,7 @@ "scope": 750, "src": "681:245:3", "stateMutability": "nonpayable", - "superFunction": 809, + "superFunction": 814, "visibility": "internal" } ], @@ -10418,10 +10433,10 @@ "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/IAlgoMiner.sol", "exportedSymbols": { "IAlgoMiner": [ - 773 + 778 ] }, - "id": 774, + "id": 779, "nodeType": "SourceUnit", "nodes": [ { @@ -10440,9 +10455,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 773, + "id": 778, "linearizedBaseContracts": [ - 773 + 778 ], "name": "IAlgoMiner", "nodeType": "ContractDefinition", @@ -10497,7 +10512,7 @@ ], "src": "97:6:4" }, - "scope": 773, + "scope": 778, "src": "54:50:4", "stateMutability": "pure", "superFunction": null, @@ -10511,13 +10526,13 @@ "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "getCategory", + "name": "getMinerType", "nodeType": "FunctionDefinition", "parameters": { "id": 758, "nodeType": "ParameterList", "parameters": [], - "src": "130:2:4" + "src": "131:2:4" }, "payable": false, "returnParameters": { @@ -10530,7 +10545,7 @@ "name": "", "nodeType": "VariableDeclaration", "scope": 762, - "src": "154:5:4", + "src": "155:5:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10541,7 +10556,7 @@ "id": 759, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "154:5:4", + "src": "155:5:4", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10551,10 +10566,10 @@ "visibility": "internal" } ], - "src": "153:7:4" + "src": "154:7:4" }, - "scope": 773, - "src": "110:51:4", + "scope": 778, + "src": "110:52:4", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -10567,13 +10582,13 @@ "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "isMining", + "name": "getCategory", "nodeType": "FunctionDefinition", "parameters": { "id": 763, "nodeType": "ParameterList", "parameters": [], - "src": "184:2:4" + "src": "188:2:4" }, "payable": false, "returnParameters": { @@ -10586,31 +10601,31 @@ "name": "", "nodeType": "VariableDeclaration", "scope": 767, - "src": "208:4:4", + "src": "212:5:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint8", + "typeString": "uint8" }, "typeName": { "id": 764, - "name": "bool", + "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "208:4:4", + "src": "212:5:4", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, "value": null, "visibility": "internal" } ], - "src": "207:6:4" + "src": "211:7:4" }, - "scope": 773, - "src": "167:47:4", + "scope": 778, + "src": "168:51:4", "stateMutability": "view", "superFunction": null, "visibility": "public" @@ -10623,13 +10638,13 @@ "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "getMiner", + "name": "isMining", "nodeType": "FunctionDefinition", "parameters": { "id": 768, "nodeType": "ParameterList", "parameters": [], - "src": "237:2:4" + "src": "242:2:4" }, "payable": false, "returnParameters": { @@ -10642,7 +10657,63 @@ "name": "", "nodeType": "VariableDeclaration", "scope": 772, - "src": "261:7:4", + "src": "266:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 769, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "266:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "265:6:4" + }, + "scope": 778, + "src": "225:47:4", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 777, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getMiner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 773, + "nodeType": "ParameterList", + "parameters": [], + "src": "295:2:4" + }, + "payable": false, + "returnParameters": { + "id": 776, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 775, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 777, + "src": "319:7:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10650,10 +10721,10 @@ "typeString": "address" }, "typeName": { - "id": 769, + "id": 774, "name": "address", "nodeType": "ElementaryTypeName", - "src": "261:7:4", + "src": "319:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10663,20 +10734,20 @@ "visibility": "internal" } ], - "src": "260:9:4" + "src": "318:9:4" }, - "scope": 773, - "src": "220:50:4", + "scope": 778, + "src": "278:50:4", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 774, - "src": "27:246:4" + "scope": 779, + "src": "27:304:4" } ], - "src": "0:273:4" + "src": "0:331:4" }, "id": 4 }, @@ -10685,14 +10756,14 @@ "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/Terminable.sol", "exportedSymbols": { "Terminable": [ - 810 + 815 ] }, - "id": 811, + "id": 816, "nodeType": "SourceUnit", "nodes": [ { - "id": 775, + "id": 780, "literals": [ "solidity", "0.4", @@ -10707,19 +10778,19 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 810, + "id": 815, "linearizedBaseContracts": [ - 810 + 815 ], "name": "Terminable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 777, + "id": 782, "name": "_creator", "nodeType": "VariableDeclaration", - "scope": 810, + "scope": 815, "src": "56:25:5", "stateVariable": true, "storageLocation": "default", @@ -10728,7 +10799,7 @@ "typeString": "address" }, "typeName": { - "id": 776, + "id": 781, "name": "address", "nodeType": "ElementaryTypeName", "src": "56:7:5", @@ -10742,10 +10813,10 @@ }, { "constant": false, - "id": 779, + "id": 784, "name": "_terminated", "nodeType": "VariableDeclaration", - "scope": 810, + "scope": 815, "src": "88:25:5", "stateVariable": true, "storageLocation": "default", @@ -10754,7 +10825,7 @@ "typeString": "bool" }, "typeName": { - "id": 778, + "id": 783, "name": "bool", "nodeType": "ElementaryTypeName", "src": "88:4:5", @@ -10768,25 +10839,25 @@ }, { "body": { - "id": 791, + "id": 796, "nodeType": "Block", "src": "145:70:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 785, + "id": 790, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 782, + "id": 787, "name": "_creator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 777, + "referencedDeclaration": 782, "src": "156:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10799,18 +10870,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 783, + "id": 788, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1260, + "referencedDeclaration": 1265, "src": "167:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 784, + "id": 789, "isConstant": false, "isLValue": false, "isPure": false, @@ -10830,25 +10901,25 @@ "typeString": "address" } }, - "id": 786, + "id": 791, "nodeType": "ExpressionStatement", "src": "156:21:5" }, { "expression": { "argumentTypes": null, - "id": 789, + "id": 794, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 787, + "id": 792, "name": "_terminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 779, + "referencedDeclaration": 784, "src": "188:11:5", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10860,7 +10931,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 788, + "id": 793, "isConstant": false, "isLValue": false, "isPure": true, @@ -10881,14 +10952,14 @@ "typeString": "bool" } }, - "id": 790, + "id": 795, "nodeType": "ExpressionStatement", "src": "188:19:5" } ] }, "documentation": null, - "id": 792, + "id": 797, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -10896,19 +10967,19 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 780, + "id": 785, "nodeType": "ParameterList", "parameters": [], "src": "133:2:5" }, "payable": false, "returnParameters": { - "id": 781, + "id": 786, "nodeType": "ParameterList", "parameters": [], "src": "145:0:5" }, - "scope": 810, + "scope": 815, "src": "122:93:5", "stateMutability": "nonpayable", "superFunction": null, @@ -10916,7 +10987,7 @@ }, { "body": { - "id": 800, + "id": 805, "nodeType": "Block", "src": "248:52:5", "statements": [ @@ -10926,7 +10997,7 @@ "arguments": [ { "argumentTypes": null, - "id": 796, + "id": 801, "isConstant": false, "isLValue": false, "isPure": false, @@ -10937,11 +11008,11 @@ "src": "267:12:5", "subExpression": { "argumentTypes": null, - "id": 795, + "id": 800, "name": "_terminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 779, + "referencedDeclaration": 784, "src": "268:11:5", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10961,21 +11032,21 @@ "typeString": "bool" } ], - "id": 794, + "id": 799, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "259:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 797, + "id": 802, "isConstant": false, "isLValue": false, "isPure": false, @@ -10989,23 +11060,23 @@ "typeString": "tuple()" } }, - "id": 798, + "id": 803, "nodeType": "ExpressionStatement", "src": "259:21:5" }, { - "id": 799, + "id": 804, "nodeType": "PlaceholderStatement", "src": "291:1:5" } ] }, "documentation": null, - "id": 801, + "id": 806, "name": "notTerminated", "nodeType": "ModifierDefinition", "parameters": { - "id": 793, + "id": 798, "nodeType": "ParameterList", "parameters": [], "src": "245:2:5" @@ -11015,25 +11086,25 @@ }, { "body": { - "id": 808, + "id": 813, "nodeType": "Block", "src": "339:37:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 806, + "id": 811, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 804, + "id": 809, "name": "_terminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 779, + "referencedDeclaration": 784, "src": "350:11:5", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11045,7 +11116,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 805, + "id": 810, "isConstant": false, "isLValue": false, "isPure": true, @@ -11066,14 +11137,14 @@ "typeString": "bool" } }, - "id": 807, + "id": 812, "nodeType": "ExpressionStatement", "src": "350:18:5" } ] }, "documentation": null, - "id": 809, + "id": 814, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -11081,26 +11152,26 @@ "name": "_terminate", "nodeType": "FunctionDefinition", "parameters": { - "id": 802, + "id": 807, "nodeType": "ParameterList", "parameters": [], "src": "327:2:5" }, "payable": false, "returnParameters": { - "id": 803, + "id": 808, "nodeType": "ParameterList", "parameters": [], "src": "339:0:5" }, - "scope": 810, + "scope": 815, "src": "308:68:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 811, + "scope": 816, "src": "27:352:5" } ], @@ -11113,14 +11184,14 @@ "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol", "exportedSymbols": { "Roles": [ - 904 + 909 ] }, - "id": 905, + "id": 910, "nodeType": "SourceUnit", "nodes": [ { - "id": 812, + "id": 817, "literals": [ "solidity", "^", @@ -11136,23 +11207,23 @@ "contractKind": "library", "documentation": "@title Roles\n@dev Library for managing addresses assigned to a Role.", "fullyImplemented": true, - "id": 904, + "id": 909, "linearizedBaseContracts": [ - 904 + 909 ], "name": "Roles", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "Roles.Role", - "id": 817, + "id": 822, "members": [ { "constant": false, - "id": 816, + "id": 821, "name": "bearer", "nodeType": "VariableDeclaration", - "scope": 817, + "scope": 822, "src": "145:32:6", "stateVariable": false, "storageLocation": "default", @@ -11161,9 +11232,9 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 815, + "id": 820, "keyType": { - "id": 813, + "id": 818, "name": "address", "nodeType": "ElementaryTypeName", "src": "154:7:6", @@ -11179,7 +11250,7 @@ "typeString": "mapping(address => bool)" }, "valueType": { - "id": 814, + "id": 819, "name": "bool", "nodeType": "ElementaryTypeName", "src": "165:4:6", @@ -11195,13 +11266,13 @@ ], "name": "Role", "nodeType": "StructDefinition", - "scope": 904, + "scope": 909, "src": "127:55:6", "visibility": "public" }, { "body": { - "id": 848, + "id": 853, "nodeType": "Block", "src": "302:109:6", "statements": [ @@ -11215,18 +11286,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 829, + "id": 834, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 825, + "id": 830, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 821, + "referencedDeclaration": 826, "src": "316:7:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11241,7 +11312,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 827, + "id": 832, "isConstant": false, "isLValue": false, "isPure": true, @@ -11264,7 +11335,7 @@ "typeString": "int_const 0" } ], - "id": 826, + "id": 831, "isConstant": false, "isLValue": false, "isPure": true, @@ -11277,7 +11348,7 @@ }, "typeName": "address" }, - "id": 828, + "id": 833, "isConstant": false, "isLValue": false, "isPure": true, @@ -11305,21 +11376,21 @@ "typeString": "bool" } ], - "id": 824, + "id": 829, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "308:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 830, + "id": 835, "isConstant": false, "isLValue": false, "isPure": false, @@ -11333,7 +11404,7 @@ "typeString": "tuple()" } }, - "id": 831, + "id": 836, "nodeType": "ExpressionStatement", "src": "308:30:6" }, @@ -11343,7 +11414,7 @@ "arguments": [ { "argumentTypes": null, - "id": 837, + "id": 842, "isConstant": false, "isLValue": false, "isPure": false, @@ -11357,24 +11428,24 @@ "arguments": [ { "argumentTypes": null, - "id": 834, + "id": 839, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 819, + "referencedDeclaration": 824, "src": "357:4:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$817_storage_ptr", + "typeIdentifier": "t_struct$_Role_$822_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, { "argumentTypes": null, - "id": 835, + "id": 840, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 821, + "referencedDeclaration": 826, "src": "363:7:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11385,7 +11456,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Role_$817_storage_ptr", + "typeIdentifier": "t_struct$_Role_$822_storage_ptr", "typeString": "struct Roles.Role storage pointer" }, { @@ -11393,18 +11464,18 @@ "typeString": "address" } ], - "id": 833, + "id": 838, "name": "has", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 903, + "referencedDeclaration": 908, "src": "353:3:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$817_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$822_storage_ptr_$_t_address_$returns$_t_bool_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 836, + "id": 841, "isConstant": false, "isLValue": false, "isPure": false, @@ -11431,21 +11502,21 @@ "typeString": "bool" } ], - "id": 832, + "id": 837, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "344:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 838, + "id": 843, "isConstant": false, "isLValue": false, "isPure": false, @@ -11459,14 +11530,14 @@ "typeString": "tuple()" } }, - "id": 839, + "id": 844, "nodeType": "ExpressionStatement", "src": "344:28:6" }, { "expression": { "argumentTypes": null, - "id": 846, + "id": 851, "isConstant": false, "isLValue": false, "isPure": false, @@ -11477,39 +11548,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 840, + "id": 845, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 819, + "referencedDeclaration": 824, "src": "379:4:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$817_storage_ptr", + "typeIdentifier": "t_struct$_Role_$822_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, - "id": 843, + "id": 848, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "bearer", "nodeType": "MemberAccess", - "referencedDeclaration": 816, + "referencedDeclaration": 821, "src": "379:11:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 844, + "id": 849, "indexExpression": { "argumentTypes": null, - "id": 842, + "id": 847, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 821, + "referencedDeclaration": 826, "src": "391:7:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11532,7 +11603,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 845, + "id": 850, "isConstant": false, "isLValue": false, "isPure": true, @@ -11553,14 +11624,14 @@ "typeString": "bool" } }, - "id": 847, + "id": 852, "nodeType": "ExpressionStatement", "src": "379:27:6" } ] }, "documentation": "@dev give an account access to this role", - "id": 849, + "id": 854, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -11568,31 +11639,31 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 822, + "id": 827, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 819, + "id": 824, "name": "role", "nodeType": "VariableDeclaration", - "scope": 849, + "scope": 854, "src": "257:17:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$817_storage_ptr", + "typeIdentifier": "t_struct$_Role_$822_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 818, + "id": 823, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 817, + "referencedDeclaration": 822, "src": "257:4:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$817_storage_ptr", + "typeIdentifier": "t_struct$_Role_$822_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -11601,10 +11672,10 @@ }, { "constant": false, - "id": 821, + "id": 826, "name": "account", "nodeType": "VariableDeclaration", - "scope": 849, + "scope": 854, "src": "276:15:6", "stateVariable": false, "storageLocation": "default", @@ -11613,7 +11684,7 @@ "typeString": "address" }, "typeName": { - "id": 820, + "id": 825, "name": "address", "nodeType": "ElementaryTypeName", "src": "276:7:6", @@ -11630,12 +11701,12 @@ }, "payable": false, "returnParameters": { - "id": 823, + "id": 828, "nodeType": "ParameterList", "parameters": [], "src": "302:0:6" }, - "scope": 904, + "scope": 909, "src": "244:167:6", "stateMutability": "nonpayable", "superFunction": null, @@ -11643,7 +11714,7 @@ }, { "body": { - "id": 879, + "id": 884, "nodeType": "Block", "src": "538:109:6", "statements": [ @@ -11657,18 +11728,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 861, + "id": 866, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 857, + "id": 862, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 853, + "referencedDeclaration": 858, "src": "552:7:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11683,7 +11754,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 859, + "id": 864, "isConstant": false, "isLValue": false, "isPure": true, @@ -11706,7 +11777,7 @@ "typeString": "int_const 0" } ], - "id": 858, + "id": 863, "isConstant": false, "isLValue": false, "isPure": true, @@ -11719,7 +11790,7 @@ }, "typeName": "address" }, - "id": 860, + "id": 865, "isConstant": false, "isLValue": false, "isPure": true, @@ -11747,21 +11818,21 @@ "typeString": "bool" } ], - "id": 856, + "id": 861, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "544:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 862, + "id": 867, "isConstant": false, "isLValue": false, "isPure": false, @@ -11775,7 +11846,7 @@ "typeString": "tuple()" } }, - "id": 863, + "id": 868, "nodeType": "ExpressionStatement", "src": "544:30:6" }, @@ -11788,24 +11859,24 @@ "arguments": [ { "argumentTypes": null, - "id": 866, + "id": 871, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 851, + "referencedDeclaration": 856, "src": "592:4:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$817_storage_ptr", + "typeIdentifier": "t_struct$_Role_$822_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, { "argumentTypes": null, - "id": 867, + "id": 872, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 853, + "referencedDeclaration": 858, "src": "598:7:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11816,7 +11887,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Role_$817_storage_ptr", + "typeIdentifier": "t_struct$_Role_$822_storage_ptr", "typeString": "struct Roles.Role storage pointer" }, { @@ -11824,18 +11895,18 @@ "typeString": "address" } ], - "id": 865, + "id": 870, "name": "has", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 903, + "referencedDeclaration": 908, "src": "588:3:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$817_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$822_storage_ptr_$_t_address_$returns$_t_bool_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 868, + "id": 873, "isConstant": false, "isLValue": false, "isPure": false, @@ -11857,21 +11928,21 @@ "typeString": "bool" } ], - "id": 864, + "id": 869, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "580:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 869, + "id": 874, "isConstant": false, "isLValue": false, "isPure": false, @@ -11885,14 +11956,14 @@ "typeString": "tuple()" } }, - "id": 870, + "id": 875, "nodeType": "ExpressionStatement", "src": "580:27:6" }, { "expression": { "argumentTypes": null, - "id": 877, + "id": 882, "isConstant": false, "isLValue": false, "isPure": false, @@ -11903,39 +11974,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 871, + "id": 876, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 851, + "referencedDeclaration": 856, "src": "614:4:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$817_storage_ptr", + "typeIdentifier": "t_struct$_Role_$822_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, - "id": 874, + "id": 879, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "bearer", "nodeType": "MemberAccess", - "referencedDeclaration": 816, + "referencedDeclaration": 821, "src": "614:11:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 875, + "id": 880, "indexExpression": { "argumentTypes": null, - "id": 873, + "id": 878, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 853, + "referencedDeclaration": 858, "src": "626:7:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11958,7 +12029,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 876, + "id": 881, "isConstant": false, "isLValue": false, "isPure": true, @@ -11979,14 +12050,14 @@ "typeString": "bool" } }, - "id": 878, + "id": 883, "nodeType": "ExpressionStatement", "src": "614:28:6" } ] }, "documentation": "@dev remove an account's access to this role", - "id": 880, + "id": 885, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -11994,31 +12065,31 @@ "name": "remove", "nodeType": "FunctionDefinition", "parameters": { - "id": 854, + "id": 859, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 851, + "id": 856, "name": "role", "nodeType": "VariableDeclaration", - "scope": 880, + "scope": 885, "src": "493:17:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$817_storage_ptr", + "typeIdentifier": "t_struct$_Role_$822_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 850, + "id": 855, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 817, + "referencedDeclaration": 822, "src": "493:4:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$817_storage_ptr", + "typeIdentifier": "t_struct$_Role_$822_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -12027,10 +12098,10 @@ }, { "constant": false, - "id": 853, + "id": 858, "name": "account", "nodeType": "VariableDeclaration", - "scope": 880, + "scope": 885, "src": "512:15:6", "stateVariable": false, "storageLocation": "default", @@ -12039,7 +12110,7 @@ "typeString": "address" }, "typeName": { - "id": 852, + "id": 857, "name": "address", "nodeType": "ElementaryTypeName", "src": "512:7:6", @@ -12056,12 +12127,12 @@ }, "payable": false, "returnParameters": { - "id": 855, + "id": 860, "nodeType": "ParameterList", "parameters": [], "src": "538:0:6" }, - "scope": 904, + "scope": 909, "src": "477:170:6", "stateMutability": "nonpayable", "superFunction": null, @@ -12069,7 +12140,7 @@ }, { "body": { - "id": 902, + "id": 907, "nodeType": "Block", "src": "817:74:6", "statements": [ @@ -12083,18 +12154,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 894, + "id": 899, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 890, + "id": 895, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 884, + "referencedDeclaration": 889, "src": "831:7:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12109,7 +12180,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 892, + "id": 897, "isConstant": false, "isLValue": false, "isPure": true, @@ -12132,7 +12203,7 @@ "typeString": "int_const 0" } ], - "id": 891, + "id": 896, "isConstant": false, "isLValue": false, "isPure": true, @@ -12145,7 +12216,7 @@ }, "typeName": "address" }, - "id": 893, + "id": 898, "isConstant": false, "isLValue": false, "isPure": true, @@ -12173,21 +12244,21 @@ "typeString": "bool" } ], - "id": 889, + "id": 894, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "823:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 895, + "id": 900, "isConstant": false, "isLValue": false, "isPure": false, @@ -12201,7 +12272,7 @@ "typeString": "tuple()" } }, - "id": 896, + "id": 901, "nodeType": "ExpressionStatement", "src": "823:30:6" }, @@ -12212,39 +12283,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 897, + "id": 902, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 882, + "referencedDeclaration": 887, "src": "866:4:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$817_storage_ptr", + "typeIdentifier": "t_struct$_Role_$822_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, - "id": 898, + "id": 903, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "bearer", "nodeType": "MemberAccess", - "referencedDeclaration": 816, + "referencedDeclaration": 821, "src": "866:11:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 900, + "id": 905, "indexExpression": { "argumentTypes": null, - "id": 899, + "id": 904, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 884, + "referencedDeclaration": 889, "src": "878:7:6", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12262,15 +12333,15 @@ "typeString": "bool" } }, - "functionReturnParameters": 888, - "id": 901, + "functionReturnParameters": 893, + "id": 906, "nodeType": "Return", "src": "859:27:6" } ] }, "documentation": "@dev check if an account has this role\n@return bool", - "id": 903, + "id": 908, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -12278,31 +12349,31 @@ "name": "has", "nodeType": "FunctionDefinition", "parameters": { - "id": 885, + "id": 890, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 882, + "id": 887, "name": "role", "nodeType": "VariableDeclaration", - "scope": 903, + "scope": 908, "src": "738:17:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$817_storage_ptr", + "typeIdentifier": "t_struct$_Role_$822_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 881, + "id": 886, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 817, + "referencedDeclaration": 822, "src": "738:4:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$817_storage_ptr", + "typeIdentifier": "t_struct$_Role_$822_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -12311,10 +12382,10 @@ }, { "constant": false, - "id": 884, + "id": 889, "name": "account", "nodeType": "VariableDeclaration", - "scope": 903, + "scope": 908, "src": "757:15:6", "stateVariable": false, "storageLocation": "default", @@ -12323,7 +12394,7 @@ "typeString": "address" }, "typeName": { - "id": 883, + "id": 888, "name": "address", "nodeType": "ElementaryTypeName", "src": "757:7:6", @@ -12340,15 +12411,15 @@ }, "payable": false, "returnParameters": { - "id": 888, + "id": 893, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 887, + "id": 892, "name": "", "nodeType": "VariableDeclaration", - "scope": 903, + "scope": 908, "src": "809:4:6", "stateVariable": false, "storageLocation": "default", @@ -12357,7 +12428,7 @@ "typeString": "bool" }, "typeName": { - "id": 886, + "id": 891, "name": "bool", "nodeType": "ElementaryTypeName", "src": "809:4:6", @@ -12372,14 +12443,14 @@ ], "src": "808:6:6" }, - "scope": 904, + "scope": 909, "src": "725:166:6", "stateMutability": "view", "superFunction": null, "visibility": "internal" } ], - "scope": 905, + "scope": 910, "src": "109:784:6" } ], @@ -12392,14 +12463,14 @@ "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol", "exportedSymbols": { "SafeMath": [ - 1032 + 1037 ] }, - "id": 1033, + "id": 1038, "nodeType": "SourceUnit", "nodes": [ { - "id": 906, + "id": 911, "literals": [ "solidity", "^", @@ -12415,16 +12486,16 @@ "contractKind": "library", "documentation": "@title SafeMath\n@dev Math operations with safety checks that revert on error", "fullyImplemented": true, - "id": 1032, + "id": 1037, "linearizedBaseContracts": [ - 1032 + 1037 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 938, + "id": 943, "nodeType": "Block", "src": "271:314:7", "statements": [ @@ -12435,18 +12506,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 917, + "id": 922, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 915, + "id": 920, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, + "referencedDeclaration": 913, "src": "486:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12458,7 +12529,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 916, + "id": 921, "isConstant": false, "isLValue": false, "isPure": true, @@ -12480,11 +12551,11 @@ } }, "falseBody": null, - "id": 921, + "id": 926, "nodeType": "IfStatement", "src": "482:35:7", "trueBody": { - "id": 920, + "id": 925, "nodeType": "Block", "src": "494:23:7", "statements": [ @@ -12492,7 +12563,7 @@ "expression": { "argumentTypes": null, "hexValue": "30", - "id": 918, + "id": 923, "isConstant": false, "isLValue": false, "isPure": true, @@ -12507,8 +12578,8 @@ }, "value": "0" }, - "functionReturnParameters": 914, - "id": 919, + "functionReturnParameters": 919, + "id": 924, "nodeType": "Return", "src": "502:8:7" } @@ -12517,15 +12588,15 @@ }, { "assignments": [ - 923 + 928 ], "declarations": [ { "constant": false, - "id": 923, + "id": 928, "name": "c", "nodeType": "VariableDeclaration", - "scope": 939, + "scope": 944, "src": "523:9:7", "stateVariable": false, "storageLocation": "default", @@ -12534,7 +12605,7 @@ "typeString": "uint256" }, "typeName": { - "id": 922, + "id": 927, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "523:7:7", @@ -12547,25 +12618,25 @@ "visibility": "internal" } ], - "id": 927, + "id": 932, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 926, + "id": 931, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 924, + "id": 929, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, + "referencedDeclaration": 913, "src": "535:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12576,11 +12647,11 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 925, + "id": 930, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 910, + "referencedDeclaration": 915, "src": "539:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12606,7 +12677,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 933, + "id": 938, "isConstant": false, "isLValue": false, "isPure": false, @@ -12617,18 +12688,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 931, + "id": 936, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 929, + "id": 934, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 923, + "referencedDeclaration": 928, "src": "554:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12639,11 +12710,11 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 930, + "id": 935, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, + "referencedDeclaration": 913, "src": "558:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12660,11 +12731,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 932, + "id": 937, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 910, + "referencedDeclaration": 915, "src": "563:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12685,21 +12756,21 @@ "typeString": "bool" } ], - "id": 928, + "id": 933, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "546:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 934, + "id": 939, "isConstant": false, "isLValue": false, "isPure": false, @@ -12713,33 +12784,33 @@ "typeString": "tuple()" } }, - "id": 935, + "id": 940, "nodeType": "ExpressionStatement", "src": "546:19:7" }, { "expression": { "argumentTypes": null, - "id": 936, + "id": 941, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 923, + "referencedDeclaration": 928, "src": "579:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 914, - "id": 937, + "functionReturnParameters": 919, + "id": 942, "nodeType": "Return", "src": "572:8:7" } ] }, "documentation": "@dev Multiplies two numbers, reverts on overflow.", - "id": 939, + "id": 944, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -12747,15 +12818,15 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 911, + "id": 916, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 908, + "id": 913, "name": "a", "nodeType": "VariableDeclaration", - "scope": 939, + "scope": 944, "src": "217:9:7", "stateVariable": false, "storageLocation": "default", @@ -12764,7 +12835,7 @@ "typeString": "uint256" }, "typeName": { - "id": 907, + "id": 912, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "217:7:7", @@ -12778,10 +12849,10 @@ }, { "constant": false, - "id": 910, + "id": 915, "name": "b", "nodeType": "VariableDeclaration", - "scope": 939, + "scope": 944, "src": "228:9:7", "stateVariable": false, "storageLocation": "default", @@ -12790,7 +12861,7 @@ "typeString": "uint256" }, "typeName": { - "id": 909, + "id": 914, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "228:7:7", @@ -12807,15 +12878,15 @@ }, "payable": false, "returnParameters": { - "id": 914, + "id": 919, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 913, + "id": 918, "name": "", "nodeType": "VariableDeclaration", - "scope": 939, + "scope": 944, "src": "262:7:7", "stateVariable": false, "storageLocation": "default", @@ -12824,7 +12895,7 @@ "typeString": "uint256" }, "typeName": { - "id": 912, + "id": 917, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "262:7:7", @@ -12839,7 +12910,7 @@ ], "src": "261:9:7" }, - "scope": 1032, + "scope": 1037, "src": "204:381:7", "stateMutability": "pure", "superFunction": null, @@ -12847,7 +12918,7 @@ }, { "body": { - "id": 962, + "id": 967, "nodeType": "Block", "src": "762:203:7", "statements": [ @@ -12861,18 +12932,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 951, + "id": 956, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 949, + "id": 954, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 943, + "referencedDeclaration": 948, "src": "776:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12884,7 +12955,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 950, + "id": 955, "isConstant": false, "isLValue": false, "isPure": true, @@ -12913,21 +12984,21 @@ "typeString": "bool" } ], - "id": 948, + "id": 953, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "768:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 952, + "id": 957, "isConstant": false, "isLValue": false, "isPure": false, @@ -12941,21 +13012,21 @@ "typeString": "tuple()" } }, - "id": 953, + "id": 958, "nodeType": "ExpressionStatement", "src": "768:14:7" }, { "assignments": [ - 955 + 960 ], "declarations": [ { "constant": false, - "id": 955, + "id": 960, "name": "c", "nodeType": "VariableDeclaration", - "scope": 963, + "scope": 968, "src": "846:9:7", "stateVariable": false, "storageLocation": "default", @@ -12964,7 +13035,7 @@ "typeString": "uint256" }, "typeName": { - "id": 954, + "id": 959, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "846:7:7", @@ -12977,25 +13048,25 @@ "visibility": "internal" } ], - "id": 959, + "id": 964, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 958, + "id": 963, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 956, + "id": 961, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 941, + "referencedDeclaration": 946, "src": "858:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13006,11 +13077,11 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 957, + "id": 962, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 943, + "referencedDeclaration": 948, "src": "862:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13029,26 +13100,26 @@ { "expression": { "argumentTypes": null, - "id": 960, + "id": 965, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 955, + "referencedDeclaration": 960, "src": "959:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 947, - "id": 961, + "functionReturnParameters": 952, + "id": 966, "nodeType": "Return", "src": "952:8:7" } ] }, "documentation": "@dev Integer division of two numbers truncating the quotient, reverts on division by zero.", - "id": 963, + "id": 968, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -13056,15 +13127,15 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 944, + "id": 949, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 941, + "id": 946, "name": "a", "nodeType": "VariableDeclaration", - "scope": 963, + "scope": 968, "src": "708:9:7", "stateVariable": false, "storageLocation": "default", @@ -13073,7 +13144,7 @@ "typeString": "uint256" }, "typeName": { - "id": 940, + "id": 945, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "708:7:7", @@ -13087,10 +13158,10 @@ }, { "constant": false, - "id": 943, + "id": 948, "name": "b", "nodeType": "VariableDeclaration", - "scope": 963, + "scope": 968, "src": "719:9:7", "stateVariable": false, "storageLocation": "default", @@ -13099,7 +13170,7 @@ "typeString": "uint256" }, "typeName": { - "id": 942, + "id": 947, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "719:7:7", @@ -13116,15 +13187,15 @@ }, "payable": false, "returnParameters": { - "id": 947, + "id": 952, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 946, + "id": 951, "name": "", "nodeType": "VariableDeclaration", - "scope": 963, + "scope": 968, "src": "753:7:7", "stateVariable": false, "storageLocation": "default", @@ -13133,7 +13204,7 @@ "typeString": "uint256" }, "typeName": { - "id": 945, + "id": 950, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "753:7:7", @@ -13148,7 +13219,7 @@ ], "src": "752:9:7" }, - "scope": 1032, + "scope": 1037, "src": "695:270:7", "stateMutability": "pure", "superFunction": null, @@ -13156,7 +13227,7 @@ }, { "body": { - "id": 986, + "id": 991, "nodeType": "Block", "src": "1145:64:7", "statements": [ @@ -13170,18 +13241,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 975, + "id": 980, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 973, + "id": 978, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 967, + "referencedDeclaration": 972, "src": "1159:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13192,11 +13263,11 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 974, + "id": 979, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 965, + "referencedDeclaration": 970, "src": "1164:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13217,21 +13288,21 @@ "typeString": "bool" } ], - "id": 972, + "id": 977, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "1151:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 976, + "id": 981, "isConstant": false, "isLValue": false, "isPure": false, @@ -13245,21 +13316,21 @@ "typeString": "tuple()" } }, - "id": 977, + "id": 982, "nodeType": "ExpressionStatement", "src": "1151:15:7" }, { "assignments": [ - 979 + 984 ], "declarations": [ { "constant": false, - "id": 979, + "id": 984, "name": "c", "nodeType": "VariableDeclaration", - "scope": 987, + "scope": 992, "src": "1172:9:7", "stateVariable": false, "storageLocation": "default", @@ -13268,7 +13339,7 @@ "typeString": "uint256" }, "typeName": { - "id": 978, + "id": 983, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1172:7:7", @@ -13281,25 +13352,25 @@ "visibility": "internal" } ], - "id": 983, + "id": 988, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 982, + "id": 987, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 980, + "id": 985, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 965, + "referencedDeclaration": 970, "src": "1184:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13310,11 +13381,11 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 981, + "id": 986, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 967, + "referencedDeclaration": 972, "src": "1188:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13333,26 +13404,26 @@ { "expression": { "argumentTypes": null, - "id": 984, + "id": 989, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 979, + "referencedDeclaration": 984, "src": "1203:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 971, - "id": 985, + "functionReturnParameters": 976, + "id": 990, "nodeType": "Return", "src": "1196:8:7" } ] }, "documentation": "@dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).", - "id": 987, + "id": 992, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -13360,15 +13431,15 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 968, + "id": 973, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 965, + "id": 970, "name": "a", "nodeType": "VariableDeclaration", - "scope": 987, + "scope": 992, "src": "1091:9:7", "stateVariable": false, "storageLocation": "default", @@ -13377,7 +13448,7 @@ "typeString": "uint256" }, "typeName": { - "id": 964, + "id": 969, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1091:7:7", @@ -13391,10 +13462,10 @@ }, { "constant": false, - "id": 967, + "id": 972, "name": "b", "nodeType": "VariableDeclaration", - "scope": 987, + "scope": 992, "src": "1102:9:7", "stateVariable": false, "storageLocation": "default", @@ -13403,7 +13474,7 @@ "typeString": "uint256" }, "typeName": { - "id": 966, + "id": 971, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1102:7:7", @@ -13420,15 +13491,15 @@ }, "payable": false, "returnParameters": { - "id": 971, + "id": 976, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 970, + "id": 975, "name": "", "nodeType": "VariableDeclaration", - "scope": 987, + "scope": 992, "src": "1136:7:7", "stateVariable": false, "storageLocation": "default", @@ -13437,7 +13508,7 @@ "typeString": "uint256" }, "typeName": { - "id": 969, + "id": 974, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1136:7:7", @@ -13452,7 +13523,7 @@ ], "src": "1135:9:7" }, - "scope": 1032, + "scope": 1037, "src": "1078:131:7", "stateMutability": "pure", "superFunction": null, @@ -13460,21 +13531,21 @@ }, { "body": { - "id": 1010, + "id": 1015, "nodeType": "Block", "src": "1339:64:7", "statements": [ { "assignments": [ - 997 + 1002 ], "declarations": [ { "constant": false, - "id": 997, + "id": 1002, "name": "c", "nodeType": "VariableDeclaration", - "scope": 1011, + "scope": 1016, "src": "1345:9:7", "stateVariable": false, "storageLocation": "default", @@ -13483,7 +13554,7 @@ "typeString": "uint256" }, "typeName": { - "id": 996, + "id": 1001, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1345:7:7", @@ -13496,25 +13567,25 @@ "visibility": "internal" } ], - "id": 1001, + "id": 1006, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1000, + "id": 1005, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 998, + "id": 1003, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, + "referencedDeclaration": 994, "src": "1357:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13525,11 +13596,11 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 999, + "id": 1004, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 991, + "referencedDeclaration": 996, "src": "1361:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13555,18 +13626,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1005, + "id": 1010, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1003, + "id": 1008, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 997, + "referencedDeclaration": 1002, "src": "1376:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13577,11 +13648,11 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 1004, + "id": 1009, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, + "referencedDeclaration": 994, "src": "1381:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13602,21 +13673,21 @@ "typeString": "bool" } ], - "id": 1002, + "id": 1007, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "1368:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1006, + "id": 1011, "isConstant": false, "isLValue": false, "isPure": false, @@ -13630,33 +13701,33 @@ "typeString": "tuple()" } }, - "id": 1007, + "id": 1012, "nodeType": "ExpressionStatement", "src": "1368:15:7" }, { "expression": { "argumentTypes": null, - "id": 1008, + "id": 1013, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 997, + "referencedDeclaration": 1002, "src": "1397:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 995, - "id": 1009, + "functionReturnParameters": 1000, + "id": 1014, "nodeType": "Return", "src": "1390:8:7" } ] }, "documentation": "@dev Adds two numbers, reverts on overflow.", - "id": 1011, + "id": 1016, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -13664,15 +13735,15 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 992, + "id": 997, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 989, + "id": 994, "name": "a", "nodeType": "VariableDeclaration", - "scope": 1011, + "scope": 1016, "src": "1285:9:7", "stateVariable": false, "storageLocation": "default", @@ -13681,7 +13752,7 @@ "typeString": "uint256" }, "typeName": { - "id": 988, + "id": 993, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1285:7:7", @@ -13695,10 +13766,10 @@ }, { "constant": false, - "id": 991, + "id": 996, "name": "b", "nodeType": "VariableDeclaration", - "scope": 1011, + "scope": 1016, "src": "1296:9:7", "stateVariable": false, "storageLocation": "default", @@ -13707,7 +13778,7 @@ "typeString": "uint256" }, "typeName": { - "id": 990, + "id": 995, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1296:7:7", @@ -13724,15 +13795,15 @@ }, "payable": false, "returnParameters": { - "id": 995, + "id": 1000, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 994, + "id": 999, "name": "", "nodeType": "VariableDeclaration", - "scope": 1011, + "scope": 1016, "src": "1330:7:7", "stateVariable": false, "storageLocation": "default", @@ -13741,7 +13812,7 @@ "typeString": "uint256" }, "typeName": { - "id": 993, + "id": 998, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1330:7:7", @@ -13756,7 +13827,7 @@ ], "src": "1329:9:7" }, - "scope": 1032, + "scope": 1037, "src": "1272:131:7", "stateMutability": "pure", "superFunction": null, @@ -13764,7 +13835,7 @@ }, { "body": { - "id": 1030, + "id": 1035, "nodeType": "Block", "src": "1602:44:7", "statements": [ @@ -13778,18 +13849,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1023, + "id": 1028, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1021, + "id": 1026, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1015, + "referencedDeclaration": 1020, "src": "1616:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13801,7 +13872,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1022, + "id": 1027, "isConstant": false, "isLValue": false, "isPure": true, @@ -13830,21 +13901,21 @@ "typeString": "bool" } ], - "id": 1020, + "id": 1025, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "1608:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1024, + "id": 1029, "isConstant": false, "isLValue": false, "isPure": false, @@ -13858,7 +13929,7 @@ "typeString": "tuple()" } }, - "id": 1025, + "id": 1030, "nodeType": "ExpressionStatement", "src": "1608:15:7" }, @@ -13869,18 +13940,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1028, + "id": 1033, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1026, + "id": 1031, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1013, + "referencedDeclaration": 1018, "src": "1636:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13891,11 +13962,11 @@ "operator": "%", "rightExpression": { "argumentTypes": null, - "id": 1027, + "id": 1032, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1015, + "referencedDeclaration": 1020, "src": "1640:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13908,15 +13979,15 @@ "typeString": "uint256" } }, - "functionReturnParameters": 1019, - "id": 1029, + "functionReturnParameters": 1024, + "id": 1034, "nodeType": "Return", "src": "1629:12:7" } ] }, "documentation": "@dev Divides two numbers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.", - "id": 1031, + "id": 1036, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -13924,15 +13995,15 @@ "name": "mod", "nodeType": "FunctionDefinition", "parameters": { - "id": 1016, + "id": 1021, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1013, + "id": 1018, "name": "a", "nodeType": "VariableDeclaration", - "scope": 1031, + "scope": 1036, "src": "1548:9:7", "stateVariable": false, "storageLocation": "default", @@ -13941,7 +14012,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1012, + "id": 1017, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1548:7:7", @@ -13955,10 +14026,10 @@ }, { "constant": false, - "id": 1015, + "id": 1020, "name": "b", "nodeType": "VariableDeclaration", - "scope": 1031, + "scope": 1036, "src": "1559:9:7", "stateVariable": false, "storageLocation": "default", @@ -13967,7 +14038,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1014, + "id": 1019, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1559:7:7", @@ -13984,15 +14055,15 @@ }, "payable": false, "returnParameters": { - "id": 1019, + "id": 1024, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1018, + "id": 1023, "name": "", "nodeType": "VariableDeclaration", - "scope": 1031, + "scope": 1036, "src": "1593:7:7", "stateVariable": false, "storageLocation": "default", @@ -14001,7 +14072,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1017, + "id": 1022, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1593:7:7", @@ -14016,14 +14087,14 @@ ], "src": "1592:9:7" }, - "scope": 1032, + "scope": 1037, "src": "1535:111:7", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 1033, + "scope": 1038, "src": "117:1531:7" } ], @@ -14036,14 +14107,14 @@ "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", "exportedSymbols": { "IERC20": [ - 1101 + 1106 ] }, - "id": 1102, + "id": 1107, "nodeType": "SourceUnit", "nodes": [ { - "id": 1034, + "id": 1039, "literals": [ "solidity", "^", @@ -14059,9 +14130,9 @@ "contractKind": "interface", "documentation": "@title ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/20", "fullyImplemented": false, - "id": 1101, + "id": 1106, "linearizedBaseContracts": [ - 1101 + 1106 ], "name": "IERC20", "nodeType": "ContractDefinition", @@ -14069,7 +14140,7 @@ { "body": null, "documentation": null, - "id": 1039, + "id": 1044, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -14077,22 +14148,22 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 1035, + "id": 1040, "nodeType": "ParameterList", "parameters": [], "src": "156:2:8" }, "payable": false, "returnParameters": { - "id": 1038, + "id": 1043, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1037, + "id": 1042, "name": "", "nodeType": "VariableDeclaration", - "scope": 1039, + "scope": 1044, "src": "182:7:8", "stateVariable": false, "storageLocation": "default", @@ -14101,7 +14172,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1036, + "id": 1041, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "182:7:8", @@ -14116,7 +14187,7 @@ ], "src": "181:9:8" }, - "scope": 1101, + "scope": 1106, "src": "136:55:8", "stateMutability": "view", "superFunction": null, @@ -14125,7 +14196,7 @@ { "body": null, "documentation": null, - "id": 1046, + "id": 1051, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -14133,15 +14204,15 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 1042, + "id": 1047, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1041, + "id": 1046, "name": "who", "nodeType": "VariableDeclaration", - "scope": 1046, + "scope": 1051, "src": "214:11:8", "stateVariable": false, "storageLocation": "default", @@ -14150,7 +14221,7 @@ "typeString": "address" }, "typeName": { - "id": 1040, + "id": 1045, "name": "address", "nodeType": "ElementaryTypeName", "src": "214:7:8", @@ -14167,15 +14238,15 @@ }, "payable": false, "returnParameters": { - "id": 1045, + "id": 1050, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1044, + "id": 1049, "name": "", "nodeType": "VariableDeclaration", - "scope": 1046, + "scope": 1051, "src": "250:7:8", "stateVariable": false, "storageLocation": "default", @@ -14184,7 +14255,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1043, + "id": 1048, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "250:7:8", @@ -14199,7 +14270,7 @@ ], "src": "249:9:8" }, - "scope": 1101, + "scope": 1106, "src": "195:64:8", "stateMutability": "view", "superFunction": null, @@ -14208,7 +14279,7 @@ { "body": null, "documentation": null, - "id": 1055, + "id": 1060, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -14216,15 +14287,15 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 1051, + "id": 1056, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1048, + "id": 1053, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1055, + "scope": 1060, "src": "282:13:8", "stateVariable": false, "storageLocation": "default", @@ -14233,7 +14304,7 @@ "typeString": "address" }, "typeName": { - "id": 1047, + "id": 1052, "name": "address", "nodeType": "ElementaryTypeName", "src": "282:7:8", @@ -14247,10 +14318,10 @@ }, { "constant": false, - "id": 1050, + "id": 1055, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1055, + "scope": 1060, "src": "297:15:8", "stateVariable": false, "storageLocation": "default", @@ -14259,7 +14330,7 @@ "typeString": "address" }, "typeName": { - "id": 1049, + "id": 1054, "name": "address", "nodeType": "ElementaryTypeName", "src": "297:7:8", @@ -14276,15 +14347,15 @@ }, "payable": false, "returnParameters": { - "id": 1054, + "id": 1059, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1053, + "id": 1058, "name": "", "nodeType": "VariableDeclaration", - "scope": 1055, + "scope": 1060, "src": "341:7:8", "stateVariable": false, "storageLocation": "default", @@ -14293,7 +14364,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1052, + "id": 1057, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "341:7:8", @@ -14308,7 +14379,7 @@ ], "src": "340:9:8" }, - "scope": 1101, + "scope": 1106, "src": "263:87:8", "stateMutability": "view", "superFunction": null, @@ -14317,7 +14388,7 @@ { "body": null, "documentation": null, - "id": 1064, + "id": 1069, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -14325,15 +14396,15 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 1060, + "id": 1065, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1057, + "id": 1062, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1064, + "scope": 1069, "src": "372:10:8", "stateVariable": false, "storageLocation": "default", @@ -14342,7 +14413,7 @@ "typeString": "address" }, "typeName": { - "id": 1056, + "id": 1061, "name": "address", "nodeType": "ElementaryTypeName", "src": "372:7:8", @@ -14356,10 +14427,10 @@ }, { "constant": false, - "id": 1059, + "id": 1064, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1064, + "scope": 1069, "src": "384:13:8", "stateVariable": false, "storageLocation": "default", @@ -14368,7 +14439,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1058, + "id": 1063, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "384:7:8", @@ -14385,15 +14456,15 @@ }, "payable": false, "returnParameters": { - "id": 1063, + "id": 1068, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1062, + "id": 1067, "name": "", "nodeType": "VariableDeclaration", - "scope": 1064, + "scope": 1069, "src": "417:4:8", "stateVariable": false, "storageLocation": "default", @@ -14402,7 +14473,7 @@ "typeString": "bool" }, "typeName": { - "id": 1061, + "id": 1066, "name": "bool", "nodeType": "ElementaryTypeName", "src": "417:4:8", @@ -14417,7 +14488,7 @@ ], "src": "416:6:8" }, - "scope": 1101, + "scope": 1106, "src": "354:69:8", "stateMutability": "nonpayable", "superFunction": null, @@ -14426,7 +14497,7 @@ { "body": null, "documentation": null, - "id": 1073, + "id": 1078, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -14434,15 +14505,15 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 1069, + "id": 1074, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1066, + "id": 1071, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1073, + "scope": 1078, "src": "444:15:8", "stateVariable": false, "storageLocation": "default", @@ -14451,7 +14522,7 @@ "typeString": "address" }, "typeName": { - "id": 1065, + "id": 1070, "name": "address", "nodeType": "ElementaryTypeName", "src": "444:7:8", @@ -14465,10 +14536,10 @@ }, { "constant": false, - "id": 1068, + "id": 1073, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1073, + "scope": 1078, "src": "461:13:8", "stateVariable": false, "storageLocation": "default", @@ -14477,7 +14548,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1067, + "id": 1072, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "461:7:8", @@ -14494,15 +14565,15 @@ }, "payable": false, "returnParameters": { - "id": 1072, + "id": 1077, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1071, + "id": 1076, "name": "", "nodeType": "VariableDeclaration", - "scope": 1073, + "scope": 1078, "src": "498:4:8", "stateVariable": false, "storageLocation": "default", @@ -14511,7 +14582,7 @@ "typeString": "bool" }, "typeName": { - "id": 1070, + "id": 1075, "name": "bool", "nodeType": "ElementaryTypeName", "src": "498:4:8", @@ -14526,7 +14597,7 @@ ], "src": "497:6:8" }, - "scope": 1101, + "scope": 1106, "src": "427:77:8", "stateMutability": "nonpayable", "superFunction": null, @@ -14535,7 +14606,7 @@ { "body": null, "documentation": null, - "id": 1084, + "id": 1089, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -14543,15 +14614,15 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 1080, + "id": 1085, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1075, + "id": 1080, "name": "from", "nodeType": "VariableDeclaration", - "scope": 1084, + "scope": 1089, "src": "530:12:8", "stateVariable": false, "storageLocation": "default", @@ -14560,7 +14631,7 @@ "typeString": "address" }, "typeName": { - "id": 1074, + "id": 1079, "name": "address", "nodeType": "ElementaryTypeName", "src": "530:7:8", @@ -14574,10 +14645,10 @@ }, { "constant": false, - "id": 1077, + "id": 1082, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1084, + "scope": 1089, "src": "544:10:8", "stateVariable": false, "storageLocation": "default", @@ -14586,7 +14657,7 @@ "typeString": "address" }, "typeName": { - "id": 1076, + "id": 1081, "name": "address", "nodeType": "ElementaryTypeName", "src": "544:7:8", @@ -14600,10 +14671,10 @@ }, { "constant": false, - "id": 1079, + "id": 1084, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1084, + "scope": 1089, "src": "556:13:8", "stateVariable": false, "storageLocation": "default", @@ -14612,7 +14683,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1078, + "id": 1083, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "556:7:8", @@ -14629,15 +14700,15 @@ }, "payable": false, "returnParameters": { - "id": 1083, + "id": 1088, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1082, + "id": 1087, "name": "", "nodeType": "VariableDeclaration", - "scope": 1084, + "scope": 1089, "src": "593:4:8", "stateVariable": false, "storageLocation": "default", @@ -14646,7 +14717,7 @@ "typeString": "bool" }, "typeName": { - "id": 1081, + "id": 1086, "name": "bool", "nodeType": "ElementaryTypeName", "src": "593:4:8", @@ -14661,7 +14732,7 @@ ], "src": "592:6:8" }, - "scope": 1101, + "scope": 1106, "src": "508:91:8", "stateMutability": "nonpayable", "superFunction": null, @@ -14670,20 +14741,20 @@ { "anonymous": false, "documentation": null, - "id": 1092, + "id": 1097, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 1091, + "id": 1096, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1086, + "id": 1091, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 1092, + "scope": 1097, "src": "623:20:8", "stateVariable": false, "storageLocation": "default", @@ -14692,7 +14763,7 @@ "typeString": "address" }, "typeName": { - "id": 1085, + "id": 1090, "name": "address", "nodeType": "ElementaryTypeName", "src": "623:7:8", @@ -14706,11 +14777,11 @@ }, { "constant": false, - "id": 1088, + "id": 1093, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1092, + "scope": 1097, "src": "649:18:8", "stateVariable": false, "storageLocation": "default", @@ -14719,7 +14790,7 @@ "typeString": "address" }, "typeName": { - "id": 1087, + "id": 1092, "name": "address", "nodeType": "ElementaryTypeName", "src": "649:7:8", @@ -14733,11 +14804,11 @@ }, { "constant": false, - "id": 1090, + "id": 1095, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1092, + "scope": 1097, "src": "673:13:8", "stateVariable": false, "storageLocation": "default", @@ -14746,7 +14817,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1089, + "id": 1094, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "673:7:8", @@ -14766,20 +14837,20 @@ { "anonymous": false, "documentation": null, - "id": 1100, + "id": 1105, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 1099, + "id": 1104, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1094, + "id": 1099, "indexed": true, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1100, + "scope": 1105, "src": "715:21:8", "stateVariable": false, "storageLocation": "default", @@ -14788,7 +14859,7 @@ "typeString": "address" }, "typeName": { - "id": 1093, + "id": 1098, "name": "address", "nodeType": "ElementaryTypeName", "src": "715:7:8", @@ -14802,11 +14873,11 @@ }, { "constant": false, - "id": 1096, + "id": 1101, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1100, + "scope": 1105, "src": "742:23:8", "stateVariable": false, "storageLocation": "default", @@ -14815,7 +14886,7 @@ "typeString": "address" }, "typeName": { - "id": 1095, + "id": 1100, "name": "address", "nodeType": "ElementaryTypeName", "src": "742:7:8", @@ -14829,11 +14900,11 @@ }, { "constant": false, - "id": 1098, + "id": 1103, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1100, + "scope": 1105, "src": "771:13:8", "stateVariable": false, "storageLocation": "default", @@ -14842,7 +14913,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1097, + "id": 1102, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "771:7:8", @@ -14860,7 +14931,7 @@ "src": "695:94:8" } ], - "scope": 1102, + "scope": 1107, "src": "115:676:8" } ], @@ -14873,14 +14944,14 @@ "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", "exportedSymbols": { "SafeERC20": [ - 1245 + 1250 ] }, - "id": 1246, + "id": 1251, "nodeType": "SourceUnit", "nodes": [ { - "id": 1103, + "id": 1108, "literals": [ "solidity", "^", @@ -14893,10 +14964,10 @@ { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", "file": "./IERC20.sol", - "id": 1104, + "id": 1109, "nodeType": "ImportDirective", - "scope": 1246, - "sourceUnit": 1102, + "scope": 1251, + "sourceUnit": 1107, "src": "26:22:9", "symbolAliases": [], "unitAlias": "" @@ -14904,10 +14975,10 @@ { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "../../math/SafeMath.sol", - "id": 1105, + "id": 1110, "nodeType": "ImportDirective", - "scope": 1246, - "sourceUnit": 1033, + "scope": 1251, + "sourceUnit": 1038, "src": "49:33:9", "symbolAliases": [], "unitAlias": "" @@ -14918,31 +14989,31 @@ "contractKind": "library", "documentation": "@title SafeERC20\n@dev Wrappers around ERC20 operations that throw on failure.\nTo use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,\nwhich allows you to call the safe operations as `token.safeTransfer(...)`, etc.", "fullyImplemented": true, - "id": 1245, + "id": 1250, "linearizedBaseContracts": [ - 1245 + 1250 ], "name": "SafeERC20", "nodeType": "ContractDefinition", "nodes": [ { - "id": 1108, + "id": 1113, "libraryName": { "contractScope": null, - "id": 1106, + "id": 1111, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1032, + "referencedDeclaration": 1037, "src": "382:8:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1032", + "typeIdentifier": "t_contract$_SafeMath_$1037", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "376:27:9", "typeName": { - "id": 1107, + "id": 1112, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "395:7:9", @@ -14954,7 +15025,7 @@ }, { "body": { - "id": 1125, + "id": 1130, "nodeType": "Block", "src": "501:45:9", "statements": [ @@ -14967,11 +15038,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1120, + "id": 1125, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1112, + "referencedDeclaration": 1117, "src": "530:2:9", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14980,11 +15051,11 @@ }, { "argumentTypes": null, - "id": 1121, + "id": 1126, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1114, + "referencedDeclaration": 1119, "src": "534:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -15005,32 +15076,32 @@ ], "expression": { "argumentTypes": null, - "id": 1118, + "id": 1123, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1110, + "referencedDeclaration": 1115, "src": "515:5:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" } }, - "id": 1119, + "id": 1124, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 1064, + "referencedDeclaration": 1069, "src": "515:14:9", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 1122, + "id": 1127, "isConstant": false, "isLValue": false, "isPure": false, @@ -15052,21 +15123,21 @@ "typeString": "bool" } ], - "id": 1117, + "id": 1122, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "507:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1123, + "id": 1128, "isConstant": false, "isLValue": false, "isPure": false, @@ -15080,14 +15151,14 @@ "typeString": "tuple()" } }, - "id": 1124, + "id": 1129, "nodeType": "ExpressionStatement", "src": "507:34:9" } ] }, "documentation": null, - "id": 1126, + "id": 1131, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -15095,31 +15166,31 @@ "name": "safeTransfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 1115, + "id": 1120, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1110, + "id": 1115, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1126, + "scope": 1131, "src": "434:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 1109, + "id": 1114, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1101, + "referencedDeclaration": 1106, "src": "434:6:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" } }, @@ -15128,10 +15199,10 @@ }, { "constant": false, - "id": 1112, + "id": 1117, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1126, + "scope": 1131, "src": "452:10:9", "stateVariable": false, "storageLocation": "default", @@ -15140,7 +15211,7 @@ "typeString": "address" }, "typeName": { - "id": 1111, + "id": 1116, "name": "address", "nodeType": "ElementaryTypeName", "src": "452:7:9", @@ -15154,10 +15225,10 @@ }, { "constant": false, - "id": 1114, + "id": 1119, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1126, + "scope": 1131, "src": "468:13:9", "stateVariable": false, "storageLocation": "default", @@ -15166,7 +15237,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1113, + "id": 1118, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "468:7:9", @@ -15183,12 +15254,12 @@ }, "payable": false, "returnParameters": { - "id": 1116, + "id": 1121, "nodeType": "ParameterList", "parameters": [], "src": "501:0:9" }, - "scope": 1245, + "scope": 1250, "src": "407:139:9", "stateMutability": "nonpayable", "superFunction": null, @@ -15196,7 +15267,7 @@ }, { "body": { - "id": 1146, + "id": 1151, "nodeType": "Block", "src": "666:55:9", "statements": [ @@ -15209,11 +15280,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1140, + "id": 1145, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1130, + "referencedDeclaration": 1135, "src": "699:4:9", "typeDescriptions": { "typeIdentifier": "t_address", @@ -15222,11 +15293,11 @@ }, { "argumentTypes": null, - "id": 1141, + "id": 1146, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1132, + "referencedDeclaration": 1137, "src": "705:2:9", "typeDescriptions": { "typeIdentifier": "t_address", @@ -15235,11 +15306,11 @@ }, { "argumentTypes": null, - "id": 1142, + "id": 1147, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1134, + "referencedDeclaration": 1139, "src": "709:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -15264,32 +15335,32 @@ ], "expression": { "argumentTypes": null, - "id": 1138, + "id": 1143, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1128, + "referencedDeclaration": 1133, "src": "680:5:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" } }, - "id": 1139, + "id": 1144, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 1084, + "referencedDeclaration": 1089, "src": "680:18:9", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 1143, + "id": 1148, "isConstant": false, "isLValue": false, "isPure": false, @@ -15311,21 +15382,21 @@ "typeString": "bool" } ], - "id": 1137, + "id": 1142, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "672:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1144, + "id": 1149, "isConstant": false, "isLValue": false, "isPure": false, @@ -15339,14 +15410,14 @@ "typeString": "tuple()" } }, - "id": 1145, + "id": 1150, "nodeType": "ExpressionStatement", "src": "672:44:9" } ] }, "documentation": null, - "id": 1147, + "id": 1152, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -15354,31 +15425,31 @@ "name": "safeTransferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 1135, + "id": 1140, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1128, + "id": 1133, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1147, + "scope": 1152, "src": "581:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 1127, + "id": 1132, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1101, + "referencedDeclaration": 1106, "src": "581:6:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" } }, @@ -15387,10 +15458,10 @@ }, { "constant": false, - "id": 1130, + "id": 1135, "name": "from", "nodeType": "VariableDeclaration", - "scope": 1147, + "scope": 1152, "src": "599:12:9", "stateVariable": false, "storageLocation": "default", @@ -15399,7 +15470,7 @@ "typeString": "address" }, "typeName": { - "id": 1129, + "id": 1134, "name": "address", "nodeType": "ElementaryTypeName", "src": "599:7:9", @@ -15413,10 +15484,10 @@ }, { "constant": false, - "id": 1132, + "id": 1137, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1147, + "scope": 1152, "src": "617:10:9", "stateVariable": false, "storageLocation": "default", @@ -15425,7 +15496,7 @@ "typeString": "address" }, "typeName": { - "id": 1131, + "id": 1136, "name": "address", "nodeType": "ElementaryTypeName", "src": "617:7:9", @@ -15439,10 +15510,10 @@ }, { "constant": false, - "id": 1134, + "id": 1139, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1147, + "scope": 1152, "src": "633:13:9", "stateVariable": false, "storageLocation": "default", @@ -15451,7 +15522,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1133, + "id": 1138, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "633:7:9", @@ -15468,12 +15539,12 @@ }, "payable": false, "returnParameters": { - "id": 1136, + "id": 1141, "nodeType": "ParameterList", "parameters": [], "src": "666:0:9" }, - "scope": 1245, + "scope": 1250, "src": "550:171:9", "stateMutability": "nonpayable", "superFunction": null, @@ -15481,7 +15552,7 @@ }, { "body": { - "id": 1181, + "id": 1186, "nodeType": "Block", "src": "823:330:9", "statements": [ @@ -15495,7 +15566,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1170, + "id": 1175, "isConstant": false, "isLValue": false, "isPure": false, @@ -15509,18 +15580,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1159, + "id": 1164, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1157, + "id": 1162, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1153, + "referencedDeclaration": 1158, "src": "1045:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -15532,7 +15603,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1158, + "id": 1163, "isConstant": false, "isLValue": false, "isPure": true, @@ -15554,7 +15625,7 @@ } } ], - "id": 1160, + "id": 1165, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -15578,7 +15649,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1168, + "id": 1173, "isConstant": false, "isLValue": false, "isPure": false, @@ -15590,18 +15661,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1163, + "id": 1168, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1260, + "referencedDeclaration": 1265, "src": "1077:3:9", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1164, + "id": 1169, "isConstant": false, "isLValue": false, "isPure": false, @@ -15617,11 +15688,11 @@ }, { "argumentTypes": null, - "id": 1165, + "id": 1170, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1151, + "referencedDeclaration": 1156, "src": "1089:7:9", "typeDescriptions": { "typeIdentifier": "t_address", @@ -15642,32 +15713,32 @@ ], "expression": { "argumentTypes": null, - "id": 1161, + "id": 1166, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1149, + "referencedDeclaration": 1154, "src": "1061:5:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" } }, - "id": 1162, + "id": 1167, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 1055, + "referencedDeclaration": 1060, "src": "1061:15:9", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 1166, + "id": 1171, "isConstant": false, "isLValue": false, "isPure": false, @@ -15686,7 +15757,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1167, + "id": 1172, "isConstant": false, "isLValue": false, "isPure": true, @@ -15708,7 +15779,7 @@ } } ], - "id": 1169, + "id": 1174, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -15735,21 +15806,21 @@ "typeString": "bool" } ], - "id": 1156, + "id": 1161, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "1036:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1171, + "id": 1176, "isConstant": false, "isLValue": false, "isPure": false, @@ -15763,7 +15834,7 @@ "typeString": "tuple()" } }, - "id": 1172, + "id": 1177, "nodeType": "ExpressionStatement", "src": "1036:68:9" }, @@ -15776,11 +15847,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1176, + "id": 1181, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1151, + "referencedDeclaration": 1156, "src": "1132:7:9", "typeDescriptions": { "typeIdentifier": "t_address", @@ -15789,11 +15860,11 @@ }, { "argumentTypes": null, - "id": 1177, + "id": 1182, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1153, + "referencedDeclaration": 1158, "src": "1141:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -15814,32 +15885,32 @@ ], "expression": { "argumentTypes": null, - "id": 1174, + "id": 1179, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1149, + "referencedDeclaration": 1154, "src": "1118:5:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" } }, - "id": 1175, + "id": 1180, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "approve", "nodeType": "MemberAccess", - "referencedDeclaration": 1073, + "referencedDeclaration": 1078, "src": "1118:13:9", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 1178, + "id": 1183, "isConstant": false, "isLValue": false, "isPure": false, @@ -15861,21 +15932,21 @@ "typeString": "bool" } ], - "id": 1173, + "id": 1178, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "1110:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1179, + "id": 1184, "isConstant": false, "isLValue": false, "isPure": false, @@ -15889,14 +15960,14 @@ "typeString": "tuple()" } }, - "id": 1180, + "id": 1185, "nodeType": "ExpressionStatement", "src": "1110:38:9" } ] }, "documentation": null, - "id": 1182, + "id": 1187, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -15904,31 +15975,31 @@ "name": "safeApprove", "nodeType": "FunctionDefinition", "parameters": { - "id": 1154, + "id": 1159, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1149, + "id": 1154, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1182, + "scope": 1187, "src": "751:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 1148, + "id": 1153, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1101, + "referencedDeclaration": 1106, "src": "751:6:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" } }, @@ -15937,10 +16008,10 @@ }, { "constant": false, - "id": 1151, + "id": 1156, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1182, + "scope": 1187, "src": "769:15:9", "stateVariable": false, "storageLocation": "default", @@ -15949,7 +16020,7 @@ "typeString": "address" }, "typeName": { - "id": 1150, + "id": 1155, "name": "address", "nodeType": "ElementaryTypeName", "src": "769:7:9", @@ -15963,10 +16034,10 @@ }, { "constant": false, - "id": 1153, + "id": 1158, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1182, + "scope": 1187, "src": "790:13:9", "stateVariable": false, "storageLocation": "default", @@ -15975,7 +16046,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1152, + "id": 1157, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "790:7:9", @@ -15992,12 +16063,12 @@ }, "payable": false, "returnParameters": { - "id": 1155, + "id": 1160, "nodeType": "ParameterList", "parameters": [], "src": "823:0:9" }, - "scope": 1245, + "scope": 1250, "src": "725:428:9", "stateMutability": "nonpayable", "superFunction": null, @@ -16005,21 +16076,21 @@ }, { "body": { - "id": 1212, + "id": 1217, "nodeType": "Block", "src": "1265:135:9", "statements": [ { "assignments": [ - 1192 + 1197 ], "declarations": [ { "constant": false, - "id": 1192, + "id": 1197, "name": "newAllowance", "nodeType": "VariableDeclaration", - "scope": 1213, + "scope": 1218, "src": "1271:20:9", "stateVariable": false, "storageLocation": "default", @@ -16028,7 +16099,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1191, + "id": 1196, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1271:7:9", @@ -16041,17 +16112,17 @@ "visibility": "internal" } ], - "id": 1203, + "id": 1208, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1201, + "id": 1206, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1188, + "referencedDeclaration": 1193, "src": "1338:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -16074,14 +16145,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1196, + "id": 1201, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1281, + "referencedDeclaration": 1286, "src": "1318:4:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$1245", + "typeIdentifier": "t_contract$_SafeERC20_$1250", "typeString": "library SafeERC20" } } @@ -16089,11 +16160,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_SafeERC20_$1245", + "typeIdentifier": "t_contract$_SafeERC20_$1250", "typeString": "library SafeERC20" } ], - "id": 1195, + "id": 1200, "isConstant": false, "isLValue": false, "isPure": true, @@ -16106,7 +16177,7 @@ }, "typeName": "address" }, - "id": 1197, + "id": 1202, "isConstant": false, "isLValue": false, "isPure": false, @@ -16122,11 +16193,11 @@ }, { "argumentTypes": null, - "id": 1198, + "id": 1203, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1186, + "referencedDeclaration": 1191, "src": "1325:7:9", "typeDescriptions": { "typeIdentifier": "t_address", @@ -16147,32 +16218,32 @@ ], "expression": { "argumentTypes": null, - "id": 1193, + "id": 1198, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1184, + "referencedDeclaration": 1189, "src": "1294:5:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" } }, - "id": 1194, + "id": 1199, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 1055, + "referencedDeclaration": 1060, "src": "1294:15:9", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 1199, + "id": 1204, "isConstant": false, "isLValue": false, "isPure": false, @@ -16186,21 +16257,21 @@ "typeString": "uint256" } }, - "id": 1200, + "id": 1205, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1011, + "referencedDeclaration": 1016, "src": "1294:43:9", "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": 1202, + "id": 1207, "isConstant": false, "isLValue": false, "isPure": false, @@ -16226,11 +16297,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1207, + "id": 1212, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1186, + "referencedDeclaration": 1191, "src": "1372:7:9", "typeDescriptions": { "typeIdentifier": "t_address", @@ -16239,11 +16310,11 @@ }, { "argumentTypes": null, - "id": 1208, + "id": 1213, "name": "newAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1192, + "referencedDeclaration": 1197, "src": "1381:12:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -16264,32 +16335,32 @@ ], "expression": { "argumentTypes": null, - "id": 1205, + "id": 1210, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1184, + "referencedDeclaration": 1189, "src": "1358:5:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" } }, - "id": 1206, + "id": 1211, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "approve", "nodeType": "MemberAccess", - "referencedDeclaration": 1073, + "referencedDeclaration": 1078, "src": "1358:13:9", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 1209, + "id": 1214, "isConstant": false, "isLValue": false, "isPure": false, @@ -16311,21 +16382,21 @@ "typeString": "bool" } ], - "id": 1204, + "id": 1209, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "1350:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1210, + "id": 1215, "isConstant": false, "isLValue": false, "isPure": false, @@ -16339,14 +16410,14 @@ "typeString": "tuple()" } }, - "id": 1211, + "id": 1216, "nodeType": "ExpressionStatement", "src": "1350:45:9" } ] }, "documentation": null, - "id": 1213, + "id": 1218, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -16354,31 +16425,31 @@ "name": "safeIncreaseAllowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 1189, + "id": 1194, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1184, + "id": 1189, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1213, + "scope": 1218, "src": "1193:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 1183, + "id": 1188, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1101, + "referencedDeclaration": 1106, "src": "1193:6:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" } }, @@ -16387,10 +16458,10 @@ }, { "constant": false, - "id": 1186, + "id": 1191, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1213, + "scope": 1218, "src": "1211:15:9", "stateVariable": false, "storageLocation": "default", @@ -16399,7 +16470,7 @@ "typeString": "address" }, "typeName": { - "id": 1185, + "id": 1190, "name": "address", "nodeType": "ElementaryTypeName", "src": "1211:7:9", @@ -16413,10 +16484,10 @@ }, { "constant": false, - "id": 1188, + "id": 1193, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1213, + "scope": 1218, "src": "1232:13:9", "stateVariable": false, "storageLocation": "default", @@ -16425,7 +16496,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1187, + "id": 1192, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1232:7:9", @@ -16442,12 +16513,12 @@ }, "payable": false, "returnParameters": { - "id": 1190, + "id": 1195, "nodeType": "ParameterList", "parameters": [], "src": "1265:0:9" }, - "scope": 1245, + "scope": 1250, "src": "1157:243:9", "stateMutability": "nonpayable", "superFunction": null, @@ -16455,21 +16526,21 @@ }, { "body": { - "id": 1243, + "id": 1248, "nodeType": "Block", "src": "1512:135:9", "statements": [ { "assignments": [ - 1223 + 1228 ], "declarations": [ { "constant": false, - "id": 1223, + "id": 1228, "name": "newAllowance", "nodeType": "VariableDeclaration", - "scope": 1244, + "scope": 1249, "src": "1518:20:9", "stateVariable": false, "storageLocation": "default", @@ -16478,7 +16549,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1222, + "id": 1227, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1518:7:9", @@ -16491,17 +16562,17 @@ "visibility": "internal" } ], - "id": 1234, + "id": 1239, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1232, + "id": 1237, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1219, + "referencedDeclaration": 1224, "src": "1585:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -16524,14 +16595,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1227, + "id": 1232, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1281, + "referencedDeclaration": 1286, "src": "1565:4:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$1245", + "typeIdentifier": "t_contract$_SafeERC20_$1250", "typeString": "library SafeERC20" } } @@ -16539,11 +16610,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_SafeERC20_$1245", + "typeIdentifier": "t_contract$_SafeERC20_$1250", "typeString": "library SafeERC20" } ], - "id": 1226, + "id": 1231, "isConstant": false, "isLValue": false, "isPure": true, @@ -16556,7 +16627,7 @@ }, "typeName": "address" }, - "id": 1228, + "id": 1233, "isConstant": false, "isLValue": false, "isPure": false, @@ -16572,11 +16643,11 @@ }, { "argumentTypes": null, - "id": 1229, + "id": 1234, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1217, + "referencedDeclaration": 1222, "src": "1572:7:9", "typeDescriptions": { "typeIdentifier": "t_address", @@ -16597,32 +16668,32 @@ ], "expression": { "argumentTypes": null, - "id": 1224, + "id": 1229, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1215, + "referencedDeclaration": 1220, "src": "1541:5:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" } }, - "id": 1225, + "id": 1230, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 1055, + "referencedDeclaration": 1060, "src": "1541:15:9", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 1230, + "id": 1235, "isConstant": false, "isLValue": false, "isPure": false, @@ -16636,21 +16707,21 @@ "typeString": "uint256" } }, - "id": 1231, + "id": 1236, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 987, + "referencedDeclaration": 992, "src": "1541:43:9", "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": 1233, + "id": 1238, "isConstant": false, "isLValue": false, "isPure": false, @@ -16676,11 +16747,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1238, + "id": 1243, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1217, + "referencedDeclaration": 1222, "src": "1619:7:9", "typeDescriptions": { "typeIdentifier": "t_address", @@ -16689,11 +16760,11 @@ }, { "argumentTypes": null, - "id": 1239, + "id": 1244, "name": "newAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1223, + "referencedDeclaration": 1228, "src": "1628:12:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -16714,32 +16785,32 @@ ], "expression": { "argumentTypes": null, - "id": 1236, + "id": 1241, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1215, + "referencedDeclaration": 1220, "src": "1605:5:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" } }, - "id": 1237, + "id": 1242, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "approve", "nodeType": "MemberAccess", - "referencedDeclaration": 1073, + "referencedDeclaration": 1078, "src": "1605:13:9", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 1240, + "id": 1245, "isConstant": false, "isLValue": false, "isPure": false, @@ -16761,21 +16832,21 @@ "typeString": "bool" } ], - "id": 1235, + "id": 1240, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1263, - 1264 + 1268, + 1269 ], - "referencedDeclaration": 1263, + "referencedDeclaration": 1268, "src": "1597:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1241, + "id": 1246, "isConstant": false, "isLValue": false, "isPure": false, @@ -16789,14 +16860,14 @@ "typeString": "tuple()" } }, - "id": 1242, + "id": 1247, "nodeType": "ExpressionStatement", "src": "1597:45:9" } ] }, "documentation": null, - "id": 1244, + "id": 1249, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -16804,31 +16875,31 @@ "name": "safeDecreaseAllowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 1220, + "id": 1225, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1215, + "id": 1220, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1244, + "scope": 1249, "src": "1440:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 1214, + "id": 1219, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1101, + "referencedDeclaration": 1106, "src": "1440:6:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1101", + "typeIdentifier": "t_contract$_IERC20_$1106", "typeString": "contract IERC20" } }, @@ -16837,10 +16908,10 @@ }, { "constant": false, - "id": 1217, + "id": 1222, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1244, + "scope": 1249, "src": "1458:15:9", "stateVariable": false, "storageLocation": "default", @@ -16849,7 +16920,7 @@ "typeString": "address" }, "typeName": { - "id": 1216, + "id": 1221, "name": "address", "nodeType": "ElementaryTypeName", "src": "1458:7:9", @@ -16863,10 +16934,10 @@ }, { "constant": false, - "id": 1219, + "id": 1224, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1244, + "scope": 1249, "src": "1479:13:9", "stateVariable": false, "storageLocation": "default", @@ -16875,7 +16946,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1218, + "id": 1223, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1479:7:9", @@ -16892,19 +16963,19 @@ }, "payable": false, "returnParameters": { - "id": 1221, + "id": 1226, "nodeType": "ParameterList", "parameters": [], "src": "1512:0:9" }, - "scope": 1245, + "scope": 1250, "src": "1404:243:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 1246, + "scope": 1251, "src": "353:1296:9" } ], diff --git a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoFees.bin b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoFees.bin index 944a078a6..f56408f66 100644 --- a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoFees.bin +++ b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoFees.bin @@ -1 +1 @@ -60806040523480156200001157600080fd5b50604051602080620010d083398101604052516000805433600160a060020a0319918216811760a060020a60ff02191690925560018054909116600160a060020a0384161790556200006c90640100000000620000c7810204565b6200008033640100000000620000e5810204565b50600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054600160a060020a031916905562000193565b620000e260028264010000000062000e066200010082021704565b50565b620000e260038264010000000062000e066200010082021704565b600160a060020a03811615156200011657600080fd5b6200012b82826401000000006200015b810204565b156200013657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a03821615156200017357600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b610f2d80620001a36000396000f3006080604052600436106100a05763ffffffff60e060020a6000350416630c08bf8881146100a55780632e6b6849146100bc578063341ccfcb146100dd57806334cdcf26146100fe5780633d19ab1314610133578063608d3d3d1461016757806374be75921461018857806381f909f3146101a957806399f4b251146101ca578063bb52c137146101df578063d43acc7914610206578063e9d618591461021b575b600080fd5b3480156100b157600080fd5b506100ba610230565b005b3480156100c857600080fd5b506100ba600160a060020a036004351661024e565b3480156100e957600080fd5b506100ba600160a060020a036004351661026e565b34801561010a57600080fd5b5061011f600160a060020a0360043516610457565b604080519115158252519081900360200190f35b34801561013f57600080fd5b5061014b600435610470565b60408051600160a060020a039092168252519081900360200190f35b34801561017357600080fd5b5061011f600160a060020a036004351661049f565b34801561019457600080fd5b506100ba600160a060020a03600435166104b2565b3480156101b557600080fd5b506100ba600160a060020a03600435166104cf565b3480156101d657600080fd5b506100ba610686565b3480156101eb57600080fd5b506101f4610bd1565b60408051918252519081900360200190f35b34801561021257600080fd5b506100ba610bdc565b34801561022757600080fd5b506100ba610be5565b6102393361049f565b151561024457600080fd5b61024c610bee565b565b6102573361049f565b151561026257600080fd5b61026b81610cb5565b50565b60008054819074010000000000000000000000000000000000000000900460ff161561029957600080fd5b6102a23361049f565b15156102ad57600080fd5b6004546103e8116102bd57600080fd5b600160a060020a038316600090815260056020526040902054156102e057600080fd5b82915081600160a060020a0316631777fb4b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561032157600080fd5b505af1158015610335573d6000803e3d6000fd5b505050506040513d602081101561034b57600080fd5b5051151561035857600080fd5b81600160a060020a03166380258e476040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561039657600080fd5b505af11580156103aa573d6000803e3d6000fd5b505050506040513d60208110156103c057600080fd5b50519050600060ff8216108015906103dc575060058160ff1611155b15156103e757600080fd5b505060048054600160a060020a039092166000818152600560205260408120849055600184018355919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b909101805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b600061046a60028363ffffffff610cc616565b92915050565b600060048260010181548110151561048457fe5b600091825260209091200154600160a060020a031692915050565b600061046a60038363ffffffff610cc616565b6104bb33610457565b15156104c657600080fd5b61026b81610cfd565b60005474010000000000000000000000000000000000000000900460ff16156104f757600080fd5b6105003361049f565b151561050b57600080fd5b60045460011061051a57600080fd5b600454600214156105865760048054600190811061053457fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff191690556001610567600482610ea0565b50600160a060020a03811660009081526005602052604081205561026b565b600454600160a060020a03821660009081526005602052604090205414610620576004805460001981019081106105b957fe5b6000918252602080832090910154600160a060020a03848116845260059092526040909220546004805492909316929181106105f157fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055505b60048054600019810190811061063257fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19169055600480549061066b906000198301610ea0565b50600160a060020a0316600090815260056020526040812055565b6000610690610ec4565b60008060008061069e610ec4565b60005474010000000000000000000000000000000000000000900460ff16156106c657600080fd5b6106cf33610457565b15156106da57600080fd5b6004546001106106e957600080fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561074f57600080fd5b505af1158015610763573d6000803e3d6000fd5b505050506040513d602081101561077957600080fd5b505196506000871161078a57600080fd5b600194505b6004548510156109395760048054869081106107a757fe5b9060005260206000200160009054906101000a9004600160a060020a0316935083600160a060020a03166319a74ab36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561080557600080fd5b505af1158015610819573d6000803e3d6000fd5b505050506040513d602081101561082f57600080fd5b5051151561083c5761092e565b83600160a060020a03166380258e476040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561087a57600080fd5b505af115801561088e573d6000803e3d6000fd5b505050506040513d60208110156108a457600080fd5b5051925060ff831615156108c6578560005b602002018051600101905261092e565b8260ff16600114156108da578560016108b6565b8260ff16600214156108ee578560026108b6565b8260ff1660031415610902578560036108b6565b8260ff1660041415610916578560046108b6565b8260ff166005141561092e5760a08601805160010190525b60019094019361078f565b60a086015160808701516060880151604089015160208a01518a51600a90910201601490910201601e909102016028909102016032909102019150818781151561097f57fe5b04815281600a880281151561099057fe5b04602082015281601488028115156109a457fe5b04604082015281601e88028115156109b857fe5b04606082015281602888028115156109cc57fe5b04608082015281603288028115156109e057fe5b0460a0820152600194505b600454851015610bc8576004805486908110610a0357fe5b9060005260206000200160009054906101000a9004600160a060020a0316935083600160a060020a03166319a74ab36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a6157600080fd5b505af1158015610a75573d6000803e3d6000fd5b505050506040513d6020811015610a8b57600080fd5b50511515610a9857610bbd565b83600160a060020a03166380258e476040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610ad657600080fd5b505af1158015610aea573d6000803e3d6000fd5b505050506040513d6020811015610b0057600080fd5b5051604080517f302c11ca0000000000000000000000000000000000000000000000000000000081529051919450610bbd91600160a060020a0387169163302c11ca9160048083019260209291908290030181600087803b158015610b6457600080fd5b505af1158015610b78573d6000803e3d6000fd5b505050506040513d6020811015610b8e57600080fd5b50518260ff861660068110610b9f57fe5b6020020151600154600160a060020a0316919063ffffffff610d0e16565b6001909401936109eb565b50505050505050565b600454600019015b90565b61024c33610dad565b61024c33610dbe565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b158015610c5357600080fd5b505af1158015610c67573d6000803e3d6000fd5b505050506040513d6020811015610c7d57600080fd5b505190506000811115610cad57600054600154610cad91600160a060020a0391821691168363ffffffff610d0e16565b61026b610dcf565b61026b60038263ffffffff610e0616565b6000600160a060020a0382161515610cdd57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61026b60028263ffffffff610e0616565b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610d7157600080fd5b505af1158015610d85573d6000803e3d6000fd5b505050506040513d6020811015610d9b57600080fd5b50511515610da857600080fd5b505050565b61026b60038263ffffffff610e5416565b61026b60028263ffffffff610e5416565b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600160a060020a0381161515610e1b57600080fd5b610e258282610cc6565b15610e2f57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a0381161515610e6957600080fd5b610e738282610cc6565b1515610e7e57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b815481835581811115610da857600083815260209020610da8918101908301610ee3565b60c0604051908101604052806006906020820280388339509192915050565b610bd991905b80821115610efd5760008155600101610ee9565b50905600a165627a7a723058201033067a6ceafcfdd5906365e4a9ea37491edaca7ecea2eae390d605b7aa71c30029 \ No newline at end of file +60806040523480156200001157600080fd5b50604051602080620010d083398101604052516000805433600160a060020a0319918216811760a060020a60ff02191690925560018054909116600160a060020a0384161790556200006c90640100000000620000c7810204565b6200008033640100000000620000e5810204565b50600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054600160a060020a031916905562000193565b620000e260028264010000000062000e066200010082021704565b50565b620000e260038264010000000062000e066200010082021704565b600160a060020a03811615156200011657600080fd5b6200012b82826401000000006200015b810204565b156200013657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a03821615156200017357600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b610f2d80620001a36000396000f3006080604052600436106100a05763ffffffff60e060020a6000350416630c08bf8881146100a55780632e6b6849146100bc578063341ccfcb146100dd57806334cdcf26146100fe5780633d19ab1314610133578063608d3d3d1461016757806374be75921461018857806381f909f3146101a957806399f4b251146101ca578063bb52c137146101df578063d43acc7914610206578063e9d618591461021b575b600080fd5b3480156100b157600080fd5b506100ba610230565b005b3480156100c857600080fd5b506100ba600160a060020a036004351661024e565b3480156100e957600080fd5b506100ba600160a060020a036004351661026e565b34801561010a57600080fd5b5061011f600160a060020a0360043516610457565b604080519115158252519081900360200190f35b34801561013f57600080fd5b5061014b600435610470565b60408051600160a060020a039092168252519081900360200190f35b34801561017357600080fd5b5061011f600160a060020a036004351661049f565b34801561019457600080fd5b506100ba600160a060020a03600435166104b2565b3480156101b557600080fd5b506100ba600160a060020a03600435166104cf565b3480156101d657600080fd5b506100ba610686565b3480156101eb57600080fd5b506101f4610bd1565b60408051918252519081900360200190f35b34801561021257600080fd5b506100ba610bdc565b34801561022757600080fd5b506100ba610be5565b6102393361049f565b151561024457600080fd5b61024c610bee565b565b6102573361049f565b151561026257600080fd5b61026b81610cb5565b50565b60008054819074010000000000000000000000000000000000000000900460ff161561029957600080fd5b6102a23361049f565b15156102ad57600080fd5b6004546103e8116102bd57600080fd5b600160a060020a038316600090815260056020526040902054156102e057600080fd5b82915081600160a060020a0316631777fb4b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561032157600080fd5b505af1158015610335573d6000803e3d6000fd5b505050506040513d602081101561034b57600080fd5b5051151561035857600080fd5b81600160a060020a03166380258e476040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561039657600080fd5b505af11580156103aa573d6000803e3d6000fd5b505050506040513d60208110156103c057600080fd5b50519050600060ff8216108015906103dc575060058160ff1611155b15156103e757600080fd5b505060048054600160a060020a039092166000818152600560205260408120849055600184018355919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b909101805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b600061046a60028363ffffffff610cc616565b92915050565b600060048260010181548110151561048457fe5b600091825260209091200154600160a060020a031692915050565b600061046a60038363ffffffff610cc616565b6104bb33610457565b15156104c657600080fd5b61026b81610cfd565b60005474010000000000000000000000000000000000000000900460ff16156104f757600080fd5b6105003361049f565b151561050b57600080fd5b60045460011061051a57600080fd5b600454600214156105865760048054600190811061053457fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff191690556001610567600482610ea0565b50600160a060020a03811660009081526005602052604081205561026b565b600454600160a060020a03821660009081526005602052604090205414610620576004805460001981019081106105b957fe5b6000918252602080832090910154600160a060020a03848116845260059092526040909220546004805492909316929181106105f157fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055505b60048054600019810190811061063257fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19169055600480549061066b906000198301610ea0565b50600160a060020a0316600090815260056020526040812055565b6000610690610ec4565b60008060008061069e610ec4565b60005474010000000000000000000000000000000000000000900460ff16156106c657600080fd5b6106cf33610457565b15156106da57600080fd5b6004546001106106e957600080fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561074f57600080fd5b505af1158015610763573d6000803e3d6000fd5b505050506040513d602081101561077957600080fd5b505196506000871161078a57600080fd5b600194505b6004548510156109395760048054869081106107a757fe5b9060005260206000200160009054906101000a9004600160a060020a0316935083600160a060020a03166319a74ab36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561080557600080fd5b505af1158015610819573d6000803e3d6000fd5b505050506040513d602081101561082f57600080fd5b5051151561083c5761092e565b83600160a060020a03166380258e476040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561087a57600080fd5b505af115801561088e573d6000803e3d6000fd5b505050506040513d60208110156108a457600080fd5b5051925060ff831615156108c6578560005b602002018051600101905261092e565b8260ff16600114156108da578560016108b6565b8260ff16600214156108ee578560026108b6565b8260ff1660031415610902578560036108b6565b8260ff1660041415610916578560046108b6565b8260ff166005141561092e5760a08601805160010190525b60019094019361078f565b60a086015160808701516060880151604089015160208a01518a51600a90910201601490910201601e909102016028909102016032909102019150818781151561097f57fe5b04815281600a880281151561099057fe5b04602082015281601488028115156109a457fe5b04604082015281601e88028115156109b857fe5b04606082015281602888028115156109cc57fe5b04608082015281603288028115156109e057fe5b0460a0820152600194505b600454851015610bc8576004805486908110610a0357fe5b9060005260206000200160009054906101000a9004600160a060020a0316935083600160a060020a03166319a74ab36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a6157600080fd5b505af1158015610a75573d6000803e3d6000fd5b505050506040513d6020811015610a8b57600080fd5b50511515610a9857610bbd565b83600160a060020a03166380258e476040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610ad657600080fd5b505af1158015610aea573d6000803e3d6000fd5b505050506040513d6020811015610b0057600080fd5b5051604080517f302c11ca0000000000000000000000000000000000000000000000000000000081529051919450610bbd91600160a060020a0387169163302c11ca9160048083019260209291908290030181600087803b158015610b6457600080fd5b505af1158015610b78573d6000803e3d6000fd5b505050506040513d6020811015610b8e57600080fd5b50518260ff861660068110610b9f57fe5b6020020151600154600160a060020a0316919063ffffffff610d0e16565b6001909401936109eb565b50505050505050565b600454600019015b90565b61024c33610dad565b61024c33610dbe565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b158015610c5357600080fd5b505af1158015610c67573d6000803e3d6000fd5b505050506040513d6020811015610c7d57600080fd5b505190506000811115610cad57600054600154610cad91600160a060020a0391821691168363ffffffff610d0e16565b61026b610dcf565b61026b60038263ffffffff610e0616565b6000600160a060020a0382161515610cdd57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61026b60028263ffffffff610e0616565b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610d7157600080fd5b505af1158015610d85573d6000803e3d6000fd5b505050506040513d6020811015610d9b57600080fd5b50511515610da857600080fd5b505050565b61026b60038263ffffffff610e5416565b61026b60028263ffffffff610e5416565b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600160a060020a0381161515610e1b57600080fd5b610e258282610cc6565b15610e2f57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a0381161515610e6957600080fd5b610e738282610cc6565b1515610e7e57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b815481835581811115610da857600083815260209020610da8918101908301610ee3565b60c0604051908101604052806006906020820280388339509192915050565b610bd991905b80821115610efd5760008155600101610ee9565b50905600a165627a7a72305820c97e98efb9f61c8f769238044b274ddcf265ed47d4444eab2134a813ff57783b0029 \ No newline at end of file diff --git a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoFees.json b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoFees.json index ca512a461..2124d0262 100644 --- a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoFees.json +++ b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoFees.json @@ -175,7 +175,7 @@ "type": "constructor" } ], - "bytecode": "60806040523480156200001157600080fd5b50604051602080620010d083398101604052516000805433600160a060020a0319918216811760a060020a60ff02191690925560018054909116600160a060020a0384161790556200006c90640100000000620000c7810204565b6200008033640100000000620000e5810204565b50600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054600160a060020a031916905562000193565b620000e260028264010000000062000e066200010082021704565b50565b620000e260038264010000000062000e066200010082021704565b600160a060020a03811615156200011657600080fd5b6200012b82826401000000006200015b810204565b156200013657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a03821615156200017357600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b610f2d80620001a36000396000f3006080604052600436106100a05763ffffffff60e060020a6000350416630c08bf8881146100a55780632e6b6849146100bc578063341ccfcb146100dd57806334cdcf26146100fe5780633d19ab1314610133578063608d3d3d1461016757806374be75921461018857806381f909f3146101a957806399f4b251146101ca578063bb52c137146101df578063d43acc7914610206578063e9d618591461021b575b600080fd5b3480156100b157600080fd5b506100ba610230565b005b3480156100c857600080fd5b506100ba600160a060020a036004351661024e565b3480156100e957600080fd5b506100ba600160a060020a036004351661026e565b34801561010a57600080fd5b5061011f600160a060020a0360043516610457565b604080519115158252519081900360200190f35b34801561013f57600080fd5b5061014b600435610470565b60408051600160a060020a039092168252519081900360200190f35b34801561017357600080fd5b5061011f600160a060020a036004351661049f565b34801561019457600080fd5b506100ba600160a060020a03600435166104b2565b3480156101b557600080fd5b506100ba600160a060020a03600435166104cf565b3480156101d657600080fd5b506100ba610686565b3480156101eb57600080fd5b506101f4610bd1565b60408051918252519081900360200190f35b34801561021257600080fd5b506100ba610bdc565b34801561022757600080fd5b506100ba610be5565b6102393361049f565b151561024457600080fd5b61024c610bee565b565b6102573361049f565b151561026257600080fd5b61026b81610cb5565b50565b60008054819074010000000000000000000000000000000000000000900460ff161561029957600080fd5b6102a23361049f565b15156102ad57600080fd5b6004546103e8116102bd57600080fd5b600160a060020a038316600090815260056020526040902054156102e057600080fd5b82915081600160a060020a0316631777fb4b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561032157600080fd5b505af1158015610335573d6000803e3d6000fd5b505050506040513d602081101561034b57600080fd5b5051151561035857600080fd5b81600160a060020a03166380258e476040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561039657600080fd5b505af11580156103aa573d6000803e3d6000fd5b505050506040513d60208110156103c057600080fd5b50519050600060ff8216108015906103dc575060058160ff1611155b15156103e757600080fd5b505060048054600160a060020a039092166000818152600560205260408120849055600184018355919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b909101805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b600061046a60028363ffffffff610cc616565b92915050565b600060048260010181548110151561048457fe5b600091825260209091200154600160a060020a031692915050565b600061046a60038363ffffffff610cc616565b6104bb33610457565b15156104c657600080fd5b61026b81610cfd565b60005474010000000000000000000000000000000000000000900460ff16156104f757600080fd5b6105003361049f565b151561050b57600080fd5b60045460011061051a57600080fd5b600454600214156105865760048054600190811061053457fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff191690556001610567600482610ea0565b50600160a060020a03811660009081526005602052604081205561026b565b600454600160a060020a03821660009081526005602052604090205414610620576004805460001981019081106105b957fe5b6000918252602080832090910154600160a060020a03848116845260059092526040909220546004805492909316929181106105f157fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055505b60048054600019810190811061063257fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19169055600480549061066b906000198301610ea0565b50600160a060020a0316600090815260056020526040812055565b6000610690610ec4565b60008060008061069e610ec4565b60005474010000000000000000000000000000000000000000900460ff16156106c657600080fd5b6106cf33610457565b15156106da57600080fd5b6004546001106106e957600080fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561074f57600080fd5b505af1158015610763573d6000803e3d6000fd5b505050506040513d602081101561077957600080fd5b505196506000871161078a57600080fd5b600194505b6004548510156109395760048054869081106107a757fe5b9060005260206000200160009054906101000a9004600160a060020a0316935083600160a060020a03166319a74ab36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561080557600080fd5b505af1158015610819573d6000803e3d6000fd5b505050506040513d602081101561082f57600080fd5b5051151561083c5761092e565b83600160a060020a03166380258e476040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561087a57600080fd5b505af115801561088e573d6000803e3d6000fd5b505050506040513d60208110156108a457600080fd5b5051925060ff831615156108c6578560005b602002018051600101905261092e565b8260ff16600114156108da578560016108b6565b8260ff16600214156108ee578560026108b6565b8260ff1660031415610902578560036108b6565b8260ff1660041415610916578560046108b6565b8260ff166005141561092e5760a08601805160010190525b60019094019361078f565b60a086015160808701516060880151604089015160208a01518a51600a90910201601490910201601e909102016028909102016032909102019150818781151561097f57fe5b04815281600a880281151561099057fe5b04602082015281601488028115156109a457fe5b04604082015281601e88028115156109b857fe5b04606082015281602888028115156109cc57fe5b04608082015281603288028115156109e057fe5b0460a0820152600194505b600454851015610bc8576004805486908110610a0357fe5b9060005260206000200160009054906101000a9004600160a060020a0316935083600160a060020a03166319a74ab36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a6157600080fd5b505af1158015610a75573d6000803e3d6000fd5b505050506040513d6020811015610a8b57600080fd5b50511515610a9857610bbd565b83600160a060020a03166380258e476040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610ad657600080fd5b505af1158015610aea573d6000803e3d6000fd5b505050506040513d6020811015610b0057600080fd5b5051604080517f302c11ca0000000000000000000000000000000000000000000000000000000081529051919450610bbd91600160a060020a0387169163302c11ca9160048083019260209291908290030181600087803b158015610b6457600080fd5b505af1158015610b78573d6000803e3d6000fd5b505050506040513d6020811015610b8e57600080fd5b50518260ff861660068110610b9f57fe5b6020020151600154600160a060020a0316919063ffffffff610d0e16565b6001909401936109eb565b50505050505050565b600454600019015b90565b61024c33610dad565b61024c33610dbe565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b158015610c5357600080fd5b505af1158015610c67573d6000803e3d6000fd5b505050506040513d6020811015610c7d57600080fd5b505190506000811115610cad57600054600154610cad91600160a060020a0391821691168363ffffffff610d0e16565b61026b610dcf565b61026b60038263ffffffff610e0616565b6000600160a060020a0382161515610cdd57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61026b60028263ffffffff610e0616565b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610d7157600080fd5b505af1158015610d85573d6000803e3d6000fd5b505050506040513d6020811015610d9b57600080fd5b50511515610da857600080fd5b505050565b61026b60038263ffffffff610e5416565b61026b60028263ffffffff610e5416565b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600160a060020a0381161515610e1b57600080fd5b610e258282610cc6565b15610e2f57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a0381161515610e6957600080fd5b610e738282610cc6565b1515610e7e57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b815481835581811115610da857600083815260209020610da8918101908301610ee3565b60c0604051908101604052806006906020820280388339509192915050565b610bd991905b80821115610efd5760008155600101610ee9565b50905600a165627a7a723058201033067a6ceafcfdd5906365e4a9ea37491edaca7ecea2eae390d605b7aa71c30029", + "bytecode": "60806040523480156200001157600080fd5b50604051602080620010d083398101604052516000805433600160a060020a0319918216811760a060020a60ff02191690925560018054909116600160a060020a0384161790556200006c90640100000000620000c7810204565b6200008033640100000000620000e5810204565b50600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018054600160a060020a031916905562000193565b620000e260028264010000000062000e066200010082021704565b50565b620000e260038264010000000062000e066200010082021704565b600160a060020a03811615156200011657600080fd5b6200012b82826401000000006200015b810204565b156200013657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a03821615156200017357600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b610f2d80620001a36000396000f3006080604052600436106100a05763ffffffff60e060020a6000350416630c08bf8881146100a55780632e6b6849146100bc578063341ccfcb146100dd57806334cdcf26146100fe5780633d19ab1314610133578063608d3d3d1461016757806374be75921461018857806381f909f3146101a957806399f4b251146101ca578063bb52c137146101df578063d43acc7914610206578063e9d618591461021b575b600080fd5b3480156100b157600080fd5b506100ba610230565b005b3480156100c857600080fd5b506100ba600160a060020a036004351661024e565b3480156100e957600080fd5b506100ba600160a060020a036004351661026e565b34801561010a57600080fd5b5061011f600160a060020a0360043516610457565b604080519115158252519081900360200190f35b34801561013f57600080fd5b5061014b600435610470565b60408051600160a060020a039092168252519081900360200190f35b34801561017357600080fd5b5061011f600160a060020a036004351661049f565b34801561019457600080fd5b506100ba600160a060020a03600435166104b2565b3480156101b557600080fd5b506100ba600160a060020a03600435166104cf565b3480156101d657600080fd5b506100ba610686565b3480156101eb57600080fd5b506101f4610bd1565b60408051918252519081900360200190f35b34801561021257600080fd5b506100ba610bdc565b34801561022757600080fd5b506100ba610be5565b6102393361049f565b151561024457600080fd5b61024c610bee565b565b6102573361049f565b151561026257600080fd5b61026b81610cb5565b50565b60008054819074010000000000000000000000000000000000000000900460ff161561029957600080fd5b6102a23361049f565b15156102ad57600080fd5b6004546103e8116102bd57600080fd5b600160a060020a038316600090815260056020526040902054156102e057600080fd5b82915081600160a060020a0316631777fb4b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561032157600080fd5b505af1158015610335573d6000803e3d6000fd5b505050506040513d602081101561034b57600080fd5b5051151561035857600080fd5b81600160a060020a03166380258e476040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561039657600080fd5b505af11580156103aa573d6000803e3d6000fd5b505050506040513d60208110156103c057600080fd5b50519050600060ff8216108015906103dc575060058160ff1611155b15156103e757600080fd5b505060048054600160a060020a039092166000818152600560205260408120849055600184018355919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b909101805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b600061046a60028363ffffffff610cc616565b92915050565b600060048260010181548110151561048457fe5b600091825260209091200154600160a060020a031692915050565b600061046a60038363ffffffff610cc616565b6104bb33610457565b15156104c657600080fd5b61026b81610cfd565b60005474010000000000000000000000000000000000000000900460ff16156104f757600080fd5b6105003361049f565b151561050b57600080fd5b60045460011061051a57600080fd5b600454600214156105865760048054600190811061053457fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff191690556001610567600482610ea0565b50600160a060020a03811660009081526005602052604081205561026b565b600454600160a060020a03821660009081526005602052604090205414610620576004805460001981019081106105b957fe5b6000918252602080832090910154600160a060020a03848116845260059092526040909220546004805492909316929181106105f157fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a031602179055505b60048054600019810190811061063257fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff19169055600480549061066b906000198301610ea0565b50600160a060020a0316600090815260056020526040812055565b6000610690610ec4565b60008060008061069e610ec4565b60005474010000000000000000000000000000000000000000900460ff16156106c657600080fd5b6106cf33610457565b15156106da57600080fd5b6004546001106106e957600080fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561074f57600080fd5b505af1158015610763573d6000803e3d6000fd5b505050506040513d602081101561077957600080fd5b505196506000871161078a57600080fd5b600194505b6004548510156109395760048054869081106107a757fe5b9060005260206000200160009054906101000a9004600160a060020a0316935083600160a060020a03166319a74ab36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561080557600080fd5b505af1158015610819573d6000803e3d6000fd5b505050506040513d602081101561082f57600080fd5b5051151561083c5761092e565b83600160a060020a03166380258e476040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561087a57600080fd5b505af115801561088e573d6000803e3d6000fd5b505050506040513d60208110156108a457600080fd5b5051925060ff831615156108c6578560005b602002018051600101905261092e565b8260ff16600114156108da578560016108b6565b8260ff16600214156108ee578560026108b6565b8260ff1660031415610902578560036108b6565b8260ff1660041415610916578560046108b6565b8260ff166005141561092e5760a08601805160010190525b60019094019361078f565b60a086015160808701516060880151604089015160208a01518a51600a90910201601490910201601e909102016028909102016032909102019150818781151561097f57fe5b04815281600a880281151561099057fe5b04602082015281601488028115156109a457fe5b04604082015281601e88028115156109b857fe5b04606082015281602888028115156109cc57fe5b04608082015281603288028115156109e057fe5b0460a0820152600194505b600454851015610bc8576004805486908110610a0357fe5b9060005260206000200160009054906101000a9004600160a060020a0316935083600160a060020a03166319a74ab36040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a6157600080fd5b505af1158015610a75573d6000803e3d6000fd5b505050506040513d6020811015610a8b57600080fd5b50511515610a9857610bbd565b83600160a060020a03166380258e476040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610ad657600080fd5b505af1158015610aea573d6000803e3d6000fd5b505050506040513d6020811015610b0057600080fd5b5051604080517f302c11ca0000000000000000000000000000000000000000000000000000000081529051919450610bbd91600160a060020a0387169163302c11ca9160048083019260209291908290030181600087803b158015610b6457600080fd5b505af1158015610b78573d6000803e3d6000fd5b505050506040513d6020811015610b8e57600080fd5b50518260ff861660068110610b9f57fe5b6020020151600154600160a060020a0316919063ffffffff610d0e16565b6001909401936109eb565b50505050505050565b600454600019015b90565b61024c33610dad565b61024c33610dbe565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b158015610c5357600080fd5b505af1158015610c67573d6000803e3d6000fd5b505050506040513d6020811015610c7d57600080fd5b505190506000811115610cad57600054600154610cad91600160a060020a0391821691168363ffffffff610d0e16565b61026b610dcf565b61026b60038263ffffffff610e0616565b6000600160a060020a0382161515610cdd57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61026b60028263ffffffff610e0616565b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610d7157600080fd5b505af1158015610d85573d6000803e3d6000fd5b505050506040513d6020811015610d9b57600080fd5b50511515610da857600080fd5b505050565b61026b60038263ffffffff610e5416565b61026b60028263ffffffff610e5416565b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600160a060020a0381161515610e1b57600080fd5b610e258282610cc6565b15610e2f57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a0381161515610e6957600080fd5b610e738282610cc6565b1515610e7e57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19169055565b815481835581811115610da857600083815260209020610da8918101908301610ee3565b60c0604051908101604052806006906020820280388339509192915050565b610bd991905b80821115610efd5760008155600101610ee9565b50905600a165627a7a72305820c97e98efb9f61c8f769238044b274ddcf265ed47d4444eab2134a813ff57783b0029", "functionHashes": { "addCoreTeam(address)": "2e6b6849", "addSystem(address)": "74be7592", diff --git a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoMiner-sol-output.json b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoMiner-sol-output.json index 27cf6e665..65fe094ae 100644 --- a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoMiner-sol-output.json +++ b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoMiner-sol-output.json @@ -1,5 +1,36 @@ { "contracts": { + "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCommon.sol": { + "AlgoCommon": { + "abi": [], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820a82cc7d287f8450e22843025dd73eaa06172ebd434e1e3cf86a642a33d96584e0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x35 DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xa8 0x2c 0xc7 0xd2 DUP8 0xf8 GASLIMIT 0xe 0x22 DUP5 ADDRESS 0x25 0xdd PUSH20 0xEAA06172EBD434E1E3CF86A642A33D96584E0029 ", + "sourceMap": "27:1033:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27:1033:0;;;;;;;" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "10600", + "executionCost": "66", + "totalCost": "10666" + }, + "internal": { + "getCapacityByCategory(uint8)": "infinite" + } + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.4.24+commit.e67f0147\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCommon.sol\":\"AlgoCommon\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCommon.sol\":{\"keccak256\":\"0x2314139702cc63c8daa379e521abea3be32730ba896f68f3f865749907e64539\",\"urls\":[\"bzzr://b945e0ec5a4ca8a52b5e816c5bb00807d0ca43c5363102821b36c8c4ee98a2d5\"]}},\"version\":1}", + "userdoc": { + "methods": {} + } + } + }, "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCoreTeamRole.sol": { "AlgoCoreTeamRole": { "abi": [ @@ -189,6 +220,20 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "getReferral", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [ @@ -217,6 +262,20 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "getCurrentDay", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": false, "inputs": [], @@ -226,6 +285,20 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "getMinerType", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [ @@ -292,6 +365,24 @@ "stateMutability": "view", "type": "function" }, + { + "constant": false, + "inputs": [ + { + "name": "newOwnerAddress", + "type": "address" + }, + { + "name": "newReferralAddress", + "type": "address" + } + ], + "name": "resetMiner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": false, "inputs": [], @@ -310,20 +401,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "constant": false, - "inputs": [ - { - "name": "newOwnerAddress", - "type": "address" - } - ], - "name": "resetMiner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "constant": false, "inputs": [], @@ -356,6 +433,34 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "getCurrentYearSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCurrentYear", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": false, "inputs": [], @@ -387,7 +492,7 @@ "inputs": [ { "name": "minerType", - "type": "uint16" + "type": "uint8" }, { "name": "category", @@ -397,6 +502,10 @@ "name": "minerAccountAddress", "type": "address" }, + { + "name": "referralAccountAddress", + "type": "address" + }, { "name": "tokenAddress", "type": "address" @@ -413,25 +522,30 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "60806040523480156200001157600080fd5b506040516080806200122083398101604090815281516020830151918301516060909301516000805433600160a060020a0319918216811760a060020a60ff02191690925560018054909116600160a060020a038416179055919391620000819064010000000062000126810204565b620000953364010000000062000144810204565b620000a9336401000000006200015f810204565b60008360ff1610158015620000c2575060058360ff1611155b1515620000ce57600080fd5b506005805461ffff191661ffff949094169390931762ff000019166201000060ff939093169290920291909117630100000060b860020a0319166301000000600160a060020a0392909216919091021790556200020d565b6200014160028264010000000062000f3d6200017a82021704565b50565b6200014160038264010000000062000f3d6200017a82021704565b6200014160048264010000000062000f3d6200017a82021704565b600160a060020a03811615156200019057600080fd5b620001a58282640100000000620001d5810204565b15620001b057600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a0382161515620001ed57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b611003806200021d6000396000f3006080604052600436106101485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630c08bf88811461014d578063162f986d146101645780631777fb4b1461017957806319a74ab3146101a257806321b79d98146101b7578063231d4e2a146101cc57806329d10b6e146101ed5780632e6b68491461020e578063302c11ca1461022f57806334cdcf2614610260578063363aa6c714610281578063427534a414610296578063608d3d3d146102ab57806374be7592146102cc57806380258e47146102ed57806381a244591461031857806399f4b251146103395780639e614ca01461034e578063ada436e914610363578063b2a32cd514610384578063be95249414610399578063c6846ef8146103ae578063d43acc79146103d5578063da408679146103ea578063e9d61859146103ff575b600080fd5b34801561015957600080fd5b50610162610414565b005b34801561017057600080fd5b50610162610432565b34801561018557600080fd5b5061018e6104a1565b604080519115158252519081900360200190f35b3480156101ae57600080fd5b5061018e6104a6565b3480156101c357600080fd5b506101626104dd565b3480156101d857600080fd5b50610162600160a060020a0360043516610577565b3480156101f957600080fd5b50610162600160a060020a0360043516610663565b34801561021a57600080fd5b50610162600160a060020a0360043516610680565b34801561023b57600080fd5b5061024461069d565b60408051600160a060020a039092168252519081900360200190f35b34801561026c57600080fd5b5061018e600160a060020a03600435166106b3565b34801561028d57600080fd5b506101626106cc565b3480156102a257600080fd5b50610162610764565b3480156102b757600080fd5b5061018e600160a060020a03600435166107d0565b3480156102d857600080fd5b50610162600160a060020a03600435166107e3565b3480156102f957600080fd5b50610302610800565b6040805160ff9092168252519081900360200190f35b34801561032457600080fd5b5061018e600160a060020a036004351661080f565b34801561034557600080fd5b50610162610822565b34801561035a57600080fd5b50610162610a1e565b34801561036f57600080fd5b50610162600160a060020a0360043516610a92565b34801561039057600080fd5b50610162610b2b565b3480156103a557600080fd5b50610162610c45565b3480156103ba57600080fd5b506103c3610c4e565b60408051918252519081900360200190f35b3480156103e157600080fd5b50610162610c54565b3480156103f657600080fd5b50610162610c5d565b34801561040b57600080fd5b50610162610cf2565b61041d336107d0565b151561042857600080fd5b610430610cfb565b565b60005460a060020a900460ff161561044957600080fd5b6104523361080f565b151561045d57600080fd5b600160055460b860020a900460ff16600381111561047757fe5b1461048157600080fd5b600580546002919060b860020a60ff02191660b860020a835b0217905550565b600190565b6000600160055460b860020a900460ff1660038111156104c257fe5b1480156104d8575060055460c060020a900460ff165b905090565b60005460a060020a900460ff16156104f457600080fd5b60055463010000009004600160a060020a0316331461051257600080fd5b600160055460b860020a900460ff16600381111561052c57fe5b1461053657600080fd5b60055460c060020a900460ff161561054d57600080fd5b6005805478ff000000000000000000000000000000000000000000000000191660c060020a179055565b610580336107d0565b151561058b57600080fd5b600060055460b860020a900460ff1660038111156105a557fe5b146105af57600080fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051610660928492600160a060020a03909116916370a08231916024808201926020929091908290030181600087803b15801561061b57600080fd5b505af115801561062f573d6000803e3d6000fd5b505050506040513d602081101561064557600080fd5b5051600154600160a060020a0316919063ffffffff610dc216565b50565b61066c3361080f565b151561067757600080fd5b61066081610e7a565b610689336107d0565b151561069457600080fd5b61066081610e8b565b60055463010000009004600160a060020a031690565b60006106c660028363ffffffff610e9c16565b92915050565b60005460a060020a900460ff16156106e357600080fd5b6106ec3361080f565b15156106f757600080fd5b600360055460b860020a900460ff16600381111561071157fe5b141561071c57600080fd5b6005805460b860020a60ff021916770300000000000000000000000000000000000000000000001778ff00ffffffffffffffffffffffffffffffffffffffff00000019169055565b60005460a060020a900460ff161561077b57600080fd5b6107843361080f565b151561078f57600080fd5b600260055460b860020a900460ff1660038111156107a957fe5b146107b357600080fd5b600580546001919060b860020a60ff02191660b860020a8361049a565b60006106c660038363ffffffff610e9c16565b6107ec336106b3565b15156107f757600080fd5b61066081610ed3565b60055462010000900460ff1690565b60006106c660048363ffffffff610e9c16565b6000805460a060020a900460ff161561083a57600080fd5b610843336106b3565b151561084e57600080fd5b600160055460b860020a900460ff16600381111561086857fe5b1461087257600080fd5b60055460c060020a900460ff16151561088a57600080fd5b60055460d060020a900461ffff16151561090957600580547bffff00000000000000000000000000000000000000000000000000001979ff0000000000000000000000000000000000000000000000000019909116790100000000000000000000000000000000000000000000000000171660d060020a1790556109dd565b60058054600161ffff60d060020a808404821692909201811682027bffff00000000000000000000000000000000000000000000000000001990931692909217928390559091041661016e14156109dd57600580547bffff000000000000000000000000000000000000000000000000000019600160ff790100000000000000000000000000000000000000000000000000808504821692909201160279ff0000000000000000000000000000000000000000000000000019909216919091171660d060020a179055600654600290046006555b5060065461016d9004600081116109f357600080fd5b60055460015461066091600160a060020a03918216916301000000909104168363ffffffff610dc216565b60005460a060020a900460ff1615610a3557600080fd5b610a3e336107d0565b1515610a4957600080fd5b600060055460b860020a900460ff166003811115610a6357fe5b1415610a6e57600080fd5b6005805478ffff000000000000000000000000000000000000000000000019169055565b60005460a060020a900460ff1615610aa957600080fd5b610ab23361080f565b1515610abd57600080fd5b600360055460b860020a900460ff166003811115610ad757fe5b14610ae157600080fd5b60058054600160a060020a039290921663010000000260b860020a60ff021990921660b860020a1776ffffffffffffffffffffffffffffffffffffffff0000001916919091179055565b6000805460a060020a900460ff1615610b4357600080fd5b610b4c336107d0565b1515610b5757600080fd5b600060055460b860020a900460ff166003811115610b7157fe5b14610b7b57600080fd5b6006541515610c2c57600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610bea57600080fd5b505af1158015610bfe573d6000803e3d6000fd5b505050506040513d6020811015610c1457600080fd5b50519050801515610c2457600080fd5b600281046006555b506005805460b860020a60ff02191660b860020a179055565b61043033610ee4565b61016d81565b61043033610ef5565b60005460a060020a900460ff1615610c7457600080fd5b60055463010000009004600160a060020a03163314610c9257600080fd5b600160055460b860020a900460ff166003811115610cac57fe5b14610cb657600080fd5b60055460c060020a900460ff161515610cce57600080fd5b6005805478ff00000000000000000000000000000000000000000000000019169055565b61043033610f06565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b158015610d6057600080fd5b505af1158015610d74573d6000803e3d6000fd5b505050506040513d6020811015610d8a57600080fd5b505190506000811115610dba57600054600154610dba91600160a060020a0391821691168363ffffffff610dc216565b610660610f17565b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610e3e57600080fd5b505af1158015610e52573d6000803e3d6000fd5b505050506040513d6020811015610e6857600080fd5b50511515610e7557600080fd5b505050565b61066060048263ffffffff610f3d16565b61066060038263ffffffff610f3d16565b6000600160a060020a0382161515610eb357600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61066060028263ffffffff610f3d16565b61066060048263ffffffff610f8b16565b61066060038263ffffffff610f8b16565b61066060028263ffffffff610f8b16565b6000805474ff0000000000000000000000000000000000000000191660a060020a179055565b600160a060020a0381161515610f5257600080fd5b610f5c8282610e9c565b15610f6657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a0381161515610fa057600080fd5b610faa8282610e9c565b1515610fb557600080fd5b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a723058200a38ca8f69ea6e0732674e2a58d5b93661b5c2aa8a6c6b89ced63a3d5f3186730029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x80 DUP1 PUSH3 0x1220 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x60 SWAP1 SWAP4 ADD MLOAD PUSH1 0x0 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP2 DUP3 AND DUP2 OR PUSH1 0xA0 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT AND SWAP1 SWAP3 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SSTORE SWAP2 SWAP4 SWAP2 PUSH3 0x81 SWAP1 PUSH5 0x100000000 PUSH3 0x126 DUP2 MUL DIV JUMP JUMPDEST PUSH3 0x95 CALLER PUSH5 0x100000000 PUSH3 0x144 DUP2 MUL DIV JUMP JUMPDEST PUSH3 0xA9 CALLER PUSH5 0x100000000 PUSH3 0x15F DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0xFF AND LT ISZERO DUP1 ISZERO PUSH3 0xC2 JUMPI POP PUSH1 0x5 DUP4 PUSH1 0xFF AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH3 0xCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5 DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0xFFFF SWAP5 SWAP1 SWAP5 AND SWAP4 SWAP1 SWAP4 OR PUSH3 0xFF0000 NOT AND PUSH3 0x10000 PUSH1 0xFF SWAP4 SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 MUL SWAP2 SWAP1 SWAP2 OR PUSH4 0x1000000 PUSH1 0xB8 PUSH1 0x2 EXP SUB NOT AND PUSH4 0x1000000 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 MUL OR SWAP1 SSTORE PUSH3 0x20D JUMP JUMPDEST PUSH3 0x141 PUSH1 0x2 DUP3 PUSH5 0x100000000 PUSH3 0xF3D PUSH3 0x17A DUP3 MUL OR DIV JUMP JUMPDEST POP JUMP JUMPDEST PUSH3 0x141 PUSH1 0x3 DUP3 PUSH5 0x100000000 PUSH3 0xF3D PUSH3 0x17A DUP3 MUL OR DIV JUMP JUMPDEST PUSH3 0x141 PUSH1 0x4 DUP3 PUSH5 0x100000000 PUSH3 0xF3D PUSH3 0x17A DUP3 MUL OR DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x190 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x1A5 DUP3 DUP3 PUSH5 0x100000000 PUSH3 0x1D5 DUP2 MUL DIV JUMP JUMPDEST ISZERO PUSH3 0x1B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND ISZERO ISZERO PUSH3 0x1ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x1003 DUP1 PUSH3 0x21D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x148 JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xC08BF88 DUP2 EQ PUSH2 0x14D JUMPI DUP1 PUSH4 0x162F986D EQ PUSH2 0x164 JUMPI DUP1 PUSH4 0x1777FB4B EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x19A74AB3 EQ PUSH2 0x1A2 JUMPI DUP1 PUSH4 0x21B79D98 EQ PUSH2 0x1B7 JUMPI DUP1 PUSH4 0x231D4E2A EQ PUSH2 0x1CC JUMPI DUP1 PUSH4 0x29D10B6E EQ PUSH2 0x1ED JUMPI DUP1 PUSH4 0x2E6B6849 EQ PUSH2 0x20E JUMPI DUP1 PUSH4 0x302C11CA EQ PUSH2 0x22F JUMPI DUP1 PUSH4 0x34CDCF26 EQ PUSH2 0x260 JUMPI DUP1 PUSH4 0x363AA6C7 EQ PUSH2 0x281 JUMPI DUP1 PUSH4 0x427534A4 EQ PUSH2 0x296 JUMPI DUP1 PUSH4 0x608D3D3D EQ PUSH2 0x2AB JUMPI DUP1 PUSH4 0x74BE7592 EQ PUSH2 0x2CC JUMPI DUP1 PUSH4 0x80258E47 EQ PUSH2 0x2ED JUMPI DUP1 PUSH4 0x81A24459 EQ PUSH2 0x318 JUMPI DUP1 PUSH4 0x99F4B251 EQ PUSH2 0x339 JUMPI DUP1 PUSH4 0x9E614CA0 EQ PUSH2 0x34E JUMPI DUP1 PUSH4 0xADA436E9 EQ PUSH2 0x363 JUMPI DUP1 PUSH4 0xB2A32CD5 EQ PUSH2 0x384 JUMPI DUP1 PUSH4 0xBE952494 EQ PUSH2 0x399 JUMPI DUP1 PUSH4 0xC6846EF8 EQ PUSH2 0x3AE JUMPI DUP1 PUSH4 0xD43ACC79 EQ PUSH2 0x3D5 JUMPI DUP1 PUSH4 0xDA408679 EQ PUSH2 0x3EA JUMPI DUP1 PUSH4 0xE9D61859 EQ PUSH2 0x3FF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x159 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x162 PUSH2 0x414 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x170 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x162 PUSH2 0x432 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x185 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18E PUSH2 0x4A1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18E PUSH2 0x4A6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x162 PUSH2 0x4DD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x162 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x577 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x162 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x663 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x21A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x162 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x680 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x23B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x244 PUSH2 0x69D JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x26C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x6B3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x28D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x162 PUSH2 0x6CC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x162 PUSH2 0x764 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x7D0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x162 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x7E3 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x302 PUSH2 0x800 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x324 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18E PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x80F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x345 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x162 PUSH2 0x822 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x162 PUSH2 0xA1E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x36F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x162 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0xA92 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x390 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x162 PUSH2 0xB2B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x162 PUSH2 0xC45 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C3 PUSH2 0xC4E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3E1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x162 PUSH2 0xC54 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x162 PUSH2 0xC5D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x162 PUSH2 0xCF2 JUMP JUMPDEST PUSH2 0x41D CALLER PUSH2 0x7D0 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x428 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x430 PUSH2 0xCFB JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x449 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x452 CALLER PUSH2 0x80F JUMP JUMPDEST ISZERO ISZERO PUSH2 0x45D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x5 SLOAD PUSH1 0xB8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x477 JUMPI INVALID JUMPDEST EQ PUSH2 0x481 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x2 SWAP2 SWAP1 PUSH1 0xB8 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT AND PUSH1 0xB8 PUSH1 0x2 EXP DUP4 JUMPDEST MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x5 SLOAD PUSH1 0xB8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x4C2 JUMPI INVALID JUMPDEST EQ DUP1 ISZERO PUSH2 0x4D8 JUMPI POP PUSH1 0x5 SLOAD PUSH1 0xC0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x4F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH4 0x1000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x512 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x5 SLOAD PUSH1 0xB8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x52C JUMPI INVALID JUMPDEST EQ PUSH2 0x536 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xC0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x54D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH25 0xFF000000000000000000000000000000000000000000000000 NOT AND PUSH1 0xC0 PUSH1 0x2 EXP OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x580 CALLER PUSH2 0x7D0 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x58B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x5 SLOAD PUSH1 0xB8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x5A5 JUMPI INVALID JUMPDEST EQ PUSH2 0x5AF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH2 0x660 SWAP3 DUP5 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x61B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x62F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x645 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xDC2 AND JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x66C CALLER PUSH2 0x80F JUMP JUMPDEST ISZERO ISZERO PUSH2 0x677 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x660 DUP2 PUSH2 0xE7A JUMP JUMPDEST PUSH2 0x689 CALLER PUSH2 0x7D0 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x694 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x660 DUP2 PUSH2 0xE8B JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH4 0x1000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6C6 PUSH1 0x2 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xE9C AND JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x6E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6EC CALLER PUSH2 0x80F JUMP JUMPDEST ISZERO ISZERO PUSH2 0x6F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 PUSH1 0x5 SLOAD PUSH1 0xB8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x711 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x71C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0xB8 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT AND PUSH24 0x30000000000000000000000000000000000000000000000 OR PUSH25 0xFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x77B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x784 CALLER PUSH2 0x80F JUMP JUMPDEST ISZERO ISZERO PUSH2 0x78F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x5 SLOAD PUSH1 0xB8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x7A9 JUMPI INVALID JUMPDEST EQ PUSH2 0x7B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 SWAP2 SWAP1 PUSH1 0xB8 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT AND PUSH1 0xB8 PUSH1 0x2 EXP DUP4 PUSH2 0x49A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6C6 PUSH1 0x3 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xE9C AND JUMP JUMPDEST PUSH2 0x7EC CALLER PUSH2 0x6B3 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x7F7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x660 DUP2 PUSH2 0xED3 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6C6 PUSH1 0x4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0xE9C AND JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x83A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x843 CALLER PUSH2 0x6B3 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x84E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x5 SLOAD PUSH1 0xB8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x868 JUMPI INVALID JUMPDEST EQ PUSH2 0x872 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xC0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0x88A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xD0 PUSH1 0x2 EXP SWAP1 DIV PUSH2 0xFFFF AND ISZERO ISZERO PUSH2 0x909 JUMPI PUSH1 0x5 DUP1 SLOAD PUSH28 0xFFFF0000000000000000000000000000000000000000000000000000 NOT PUSH26 0xFF00000000000000000000000000000000000000000000000000 NOT SWAP1 SWAP2 AND PUSH26 0x100000000000000000000000000000000000000000000000000 OR AND PUSH1 0xD0 PUSH1 0x2 EXP OR SWAP1 SSTORE PUSH2 0x9DD JUMP JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH2 0xFFFF PUSH1 0xD0 PUSH1 0x2 EXP DUP1 DUP5 DIV DUP3 AND SWAP3 SWAP1 SWAP3 ADD DUP2 AND DUP3 MUL PUSH28 0xFFFF0000000000000000000000000000000000000000000000000000 NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP3 DUP4 SWAP1 SSTORE SWAP1 SWAP2 DIV AND PUSH2 0x16E EQ ISZERO PUSH2 0x9DD JUMPI PUSH1 0x5 DUP1 SLOAD PUSH28 0xFFFF0000000000000000000000000000000000000000000000000000 NOT PUSH1 0x1 PUSH1 0xFF PUSH26 0x100000000000000000000000000000000000000000000000000 DUP1 DUP6 DIV DUP3 AND SWAP3 SWAP1 SWAP3 ADD AND MUL PUSH26 0xFF00000000000000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR AND PUSH1 0xD0 PUSH1 0x2 EXP OR SWAP1 SSTORE PUSH1 0x6 SLOAD PUSH1 0x2 SWAP1 DIV PUSH1 0x6 SSTORE JUMPDEST POP PUSH1 0x6 SLOAD PUSH2 0x16D SWAP1 DIV PUSH1 0x0 DUP2 GT PUSH2 0x9F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SLOAD PUSH2 0x660 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 DUP3 AND SWAP2 PUSH4 0x1000000 SWAP1 SWAP2 DIV AND DUP4 PUSH4 0xFFFFFFFF PUSH2 0xDC2 AND JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xA35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA3E CALLER PUSH2 0x7D0 JUMP JUMPDEST ISZERO ISZERO PUSH2 0xA49 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x5 SLOAD PUSH1 0xB8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xA63 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0xA6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH25 0xFFFF0000000000000000000000000000000000000000000000 NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xAA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB2 CALLER PUSH2 0x80F JUMP JUMPDEST ISZERO ISZERO PUSH2 0xABD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 PUSH1 0x5 SLOAD PUSH1 0xB8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xAD7 JUMPI INVALID JUMPDEST EQ PUSH2 0xAE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP3 SWAP1 SWAP3 AND PUSH4 0x1000000 MUL PUSH1 0xB8 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT SWAP1 SWAP3 AND PUSH1 0xB8 PUSH1 0x2 EXP OR PUSH23 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 NOT AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xB43 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB4C CALLER PUSH2 0x7D0 JUMP JUMPDEST ISZERO ISZERO PUSH2 0xB57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x5 SLOAD PUSH1 0xB8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xB71 JUMPI INVALID JUMPDEST EQ PUSH2 0xB7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 SLOAD ISZERO ISZERO PUSH2 0xC2C JUMPI PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBFE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xC14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP1 ISZERO ISZERO PUSH2 0xC24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 DUP2 DIV PUSH1 0x6 SSTORE JUMPDEST POP PUSH1 0x5 DUP1 SLOAD PUSH1 0xB8 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT AND PUSH1 0xB8 PUSH1 0x2 EXP OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x430 CALLER PUSH2 0xEE4 JUMP JUMPDEST PUSH2 0x16D DUP2 JUMP JUMPDEST PUSH2 0x430 CALLER PUSH2 0xEF5 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xC74 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH4 0x1000000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xC92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x5 SLOAD PUSH1 0xB8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xCAC JUMPI INVALID JUMPDEST EQ PUSH2 0xCB6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0xC0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xCCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 DUP1 SLOAD PUSH25 0xFF000000000000000000000000000000000000000000000000 NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x430 CALLER PUSH2 0xF06 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xD60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xD74 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xD8A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH1 0x0 DUP2 GT ISZERO PUSH2 0xDBA JUMPI PUSH1 0x0 SLOAD PUSH1 0x1 SLOAD PUSH2 0xDBA SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 DUP3 AND SWAP2 AND DUP4 PUSH4 0xFFFFFFFF PUSH2 0xDC2 AND JUMP JUMPDEST PUSH2 0x660 PUSH2 0xF17 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA9059CBB DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xE52 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE68 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0xE75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x660 PUSH1 0x4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xF3D AND JUMP JUMPDEST PUSH2 0x660 PUSH1 0x3 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xF3D AND JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND ISZERO ISZERO PUSH2 0xEB3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x660 PUSH1 0x2 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xF3D AND JUMP JUMPDEST PUSH2 0x660 PUSH1 0x4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xF8B AND JUMP JUMPDEST PUSH2 0x660 PUSH1 0x3 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xF8B AND JUMP JUMPDEST PUSH2 0x660 PUSH1 0x2 DUP3 PUSH4 0xFFFFFFFF PUSH2 0xF8B AND JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH21 0xFF0000000000000000000000000000000000000000 NOT AND PUSH1 0xA0 PUSH1 0x2 EXP OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xF52 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF5C DUP3 DUP3 PUSH2 0xE9C JUMP JUMPDEST ISZERO PUSH2 0xF66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xFA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xFAA DUP3 DUP3 PUSH2 0xE9C JUMP JUMPDEST ISZERO ISZERO PUSH2 0xFB5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 EXP CODESIZE 0xca DUP16 PUSH10 0xEA6E0732674E2A58D5B9 CALLDATASIZE PUSH2 0xB5C2 0xaa DUP11 PUSH13 0x6B89CED63A3D5F318673002900 ", - "sourceMap": "592:4229:1:-;;;1163:410;8:9:-1;5:2;;;30:1;27;20:12;5:2;1163:410:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;156:8:6;:21;;167:10;-1:-1:-1;;;;;;156:21:6;;;;;-1:-1:-1;;;;;;188:19:6;;;;-1:-1:-1;636:29:4;;;;;-1:-1:-1;;;;;636:29:4;;;;;1163:410:1;;;364:22:3;;:10;;;;:22;:::i;:::-;368:24:0;381:10;368:12;;;;:24;:::i;:::-;366:26:2;381:10;366:14;;;;:26;:::i;:::-;1441:1:1;1429:8;:13;;;;:30;;;;;1458:1;1446:8;:13;;;;1429:30;1421:39;;;;;;;;-1:-1:-1;1473:10:1;:22;;-1:-1:-1;;1473:22:1;;;;;;;;;;-1:-1:-1;;1506:20:1;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1537:28:1;;-1:-1:-1;;;;;1537:28:1;;;;;;;;;;;592:4229;;800:92:3;857:27;:14;876:7;857:18;;;;;;:27;:::i;:::-;800:92;:::o;824:96:0:-;883:29;:16;904:7;883:20;;;;;;:29;:::i;836:94:2:-;897:25;:12;914:7;897:16;;;;;;:25;:::i;244:167:7:-;-1:-1:-1;;;;;316:21:7;;;;308:30;;;;;;353:18;357:4;363:7;353:3;;;;:18;:::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:7;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:7;402:4;379:27;;;244:167::o;725:166::-;809:4;-1:-1:-1;;;;;831:21:7;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:7;:11;:20;;;;;;;;;;;;;;;725:166::o;592:4229:1:-;;;;;;;" + "object": "60806040523480156200001157600080fd5b5060405160a080620014c7833981016040908152815160208301519183015160608401516080909401516000805433600160a060020a0319918216811760a060020a60ff02191690925560018054909116600160a060020a0384161790559294919262000087906401000000006200014c810204565b6200009b336401000000006200016a810204565b620000af3364010000000062000185810204565b60008460ff1610158015620000c8575060058460ff1611155b1515620000d457600080fd5b6005805486919060ff191660018381811115620000ed57fe5b0217905550506005805461ff00191661010060ff9590951694909402939093176201000060b060020a03191662010000600160a060020a03938416021790925560068054600160a060020a031916929091169190911790555062000233565b62000167600282640100000000620011be620001a082021704565b50565b62000167600382640100000000620011be620001a082021704565b62000167600482640100000000620011be620001a082021704565b600160a060020a0381161515620001b657600080fd5b620001cb8282640100000000620001fb810204565b15620001d657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a03821615156200021357600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61128480620002436000396000f30060806040526004361061017f5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630c08bf888114610184578063162f986d1461019b5780631777fb4b146101b057806319a74ab3146101d957806321b79d98146101ee578063231d4e2a1461020357806329d10b6e146102245780632e6b684914610245578063302c11ca14610266578063329b1c921461029757806334cdcf26146102ac578063363aa6c7146102cd5780633e6968b6146102e2578063427534a41461030e5780634969ae7014610323578063608d3d3d1461034e57806374be75921461036f57806380258e471461039057806381a24459146103a55780638329138f146103c657806399f4b251146103ed5780639e614ca014610402578063b2a32cd514610417578063be9524941461042c578063c6846ef814610441578063cdfd0f6414610468578063ce41607a1461047d578063d43acc7914610492578063da408679146104a7578063e9d61859146104bc575b600080fd5b34801561019057600080fd5b506101996104d1565b005b3480156101a757600080fd5b506101996104ef565b3480156101bc57600080fd5b506101c561055e565b604080519115158252519081900360200190f35b3480156101e557600080fd5b506101c5610563565b3480156101fa57600080fd5b5061019961059a565b34801561020f57600080fd5b50610199600160a060020a0360043516610630565b34801561023057600080fd5b50610199600160a060020a036004351661071c565b34801561025157600080fd5b50610199600160a060020a0360043516610739565b34801561027257600080fd5b5061027b610756565b60408051600160a060020a039092168252519081900360200190f35b3480156102a357600080fd5b5061027b61076b565b3480156102b857600080fd5b506101c5600160a060020a036004351661077a565b3480156102d957600080fd5b50610199610795565b3480156102ee57600080fd5b506102f7610846565b6040805161ffff9092168252519081900360200190f35b34801561031a57600080fd5b50610199610857565b34801561032f57600080fd5b506103386108c3565b6040805160ff9092168252519081900360200190f35b34801561035a57600080fd5b506101c5600160a060020a03600435166108d7565b34801561037b57600080fd5b50610199600160a060020a03600435166108ea565b34801561039c57600080fd5b50610338610907565b3480156103b157600080fd5b506101c5600160a060020a0360043516610915565b3480156103d257600080fd5b50610199600160a060020a0360043581169060243516610928565b3480156103f957600080fd5b506101996109db565b34801561040e57600080fd5b50610199610c2e565b34801561042357600080fd5b50610199610c9f565b34801561043857600080fd5b50610199610dfd565b34801561044d57600080fd5b50610456610e06565b60408051918252519081900360200190f35b34801561047457600080fd5b50610456610e0c565b34801561048957600080fd5b50610338610e12565b34801561049e57600080fd5b50610199610e35565b3480156104b357600080fd5b50610199610e3e565b3480156104c857600080fd5b50610199610ecf565b6104da336108d7565b15156104e557600080fd5b6104ed610ed8565b565b60005460a060020a900460ff161561050657600080fd5b61050f33610915565b151561051a57600080fd5b600160065460a060020a900460ff16600381111561053457fe5b1461053e57600080fd5b600680546002919060a060020a60ff02191660a060020a835b0217905550565b600190565b6000600160065460a060020a900460ff16600381111561057f57fe5b148015610595575060065460a860020a900460ff165b905090565b60005460a060020a900460ff16156105b157600080fd5b600554620100009004600160a060020a031633146105ce57600080fd5b600160065460a060020a900460ff1660038111156105e857fe5b146105f257600080fd5b60065460a860020a900460ff161561060957600080fd5b6006805475ff000000000000000000000000000000000000000000191660a860020a179055565b610639336108d7565b151561064457600080fd5b600060065460a060020a900460ff16600381111561065e57fe5b1461066857600080fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051610719928492600160a060020a03909116916370a08231916024808201926020929091908290030181600087803b1580156106d457600080fd5b505af11580156106e8573d6000803e3d6000fd5b505050506040513d60208110156106fe57600080fd5b5051600154600160a060020a0316919063ffffffff610f9f16565b50565b61072533610915565b151561073057600080fd5b61071981611057565b610742336108d7565b151561074d57600080fd5b61071981611068565b600554620100009004600160a060020a031690565b600654600160a060020a031690565b600061078d60028363ffffffff61107916565b90505b919050565b60005460a060020a900460ff16156107ac57600080fd5b6107b533610915565b15156107c057600080fd5b600360065460a060020a900460ff1660038111156107da57fe5b14156107e557600080fd5b600680546005805475ffffffffffffffffffffffffffffffffffffffff00001916905560a060020a60ff021916740300000000000000000000000000000000000000001775ff00ffffffffffffffffffffffffffffffffffffffff19169055565b60065460b860020a900461ffff1690565b60005460a060020a900460ff161561086e57600080fd5b61087733610915565b151561088257600080fd5b600260065460a060020a900460ff16600381111561089c57fe5b146108a657600080fd5b600680546001919060a060020a60ff02191660a060020a83610557565b60055460009060ff16600181111561059557fe5b600061078d60038363ffffffff61107916565b6108f33361077a565b15156108fe57600080fd5b610719816110b0565b600554610100900460ff1690565b600061078d60048363ffffffff61107916565b60005460a060020a900460ff161561093f57600080fd5b61094833610915565b151561095357600080fd5b600360065460a060020a900460ff16600381111561096d57fe5b1461097757600080fd5b600680546005805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a039687160217905560a060020a60ff02191660a060020a1773ffffffffffffffffffffffffffffffffffffffff191691909216179055565b60008054819060a060020a900460ff16156109f557600080fd5b6109fe3361077a565b1515610a0957600080fd5b600060055460ff166001811115610a1c57fe5b14610a2657600080fd5b600160065460a060020a900460ff166003811115610a4057fe5b14610a4a57600080fd5b60065460a860020a900460ff161515610a6257600080fd5b60065460b860020a900461ffff161515610ad8576006805478ffff00000000000000000000000000000000000000000000001976ff0000000000000000000000000000000000000000000019909116760100000000000000000000000000000000000000000000171660b860020a179055610ba0565b60068054600161ffff60b860020a8084048216929092018116820278ffff00000000000000000000000000000000000000000000001990931692909217928390559091041661016e1415610ba0576006805478ffff000000000000000000000000000000000000000000000019600160ff760100000000000000000000000000000000000000000000808504821692909201160276ff0000000000000000000000000000000000000000000019909216919091171660b860020a179055600754600290046007555b60075461016d9004915060008211610bb757600080fd5b600554600154610be191600160a060020a039182169162010000909104168463ffffffff610f9f16565b600654600160a060020a031615610c2a57506064600a82020460008111610c0757600080fd5b600654600154610c2a91600160a060020a0391821691168363ffffffff610f9f16565b5050565b60005460a060020a900460ff1615610c4557600080fd5b610c4e336108d7565b1515610c5957600080fd5b600060065460a060020a900460ff166003811115610c7357fe5b1415610c7e57600080fd5b6006805475ffff000000000000000000000000000000000000000019169055565b600080548190819060a060020a900460ff1615610cbb57600080fd5b610cc4336108d7565b1515610ccf57600080fd5b600060065460a060020a900460ff166003811115610ce957fe5b14610cf357600080fd5b600060055460ff166001811115610d0657fe5b148015610d135750600754155b15610de257600554610d2c90610100900460ff166110c1565b92506064600a8402600154604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290519390920486019450600160a060020a0316916370a08231916024808201926020929091908290030181600087803b158015610da057600080fd5b505af1158015610db4573d6000803e3d6000fd5b505050506040513d6020811015610dca57600080fd5b50519050818114610dda57600080fd5b600283046007555b50506006805460a060020a60ff02191660a060020a17905550565b6104ed33611173565b61016d81565b60075490565b600654760100000000000000000000000000000000000000000000900460ff1690565b6104ed33611184565b60005460a060020a900460ff1615610e5557600080fd5b600554620100009004600160a060020a03163314610e7257600080fd5b600160065460a060020a900460ff166003811115610e8c57fe5b14610e9657600080fd5b60065460a860020a900460ff161515610eae57600080fd5b6006805475ff00000000000000000000000000000000000000000019169055565b6104ed33611195565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b158015610f3d57600080fd5b505af1158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b505190506000811115610f9757600054600154610f9791600160a060020a0391821691168363ffffffff610f9f16565b6107196111a6565b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561101b57600080fd5b505af115801561102f573d6000803e3d6000fd5b505050506040513d602081101561104557600080fd5b5051151561105257600080fd5b505050565b61071960048263ffffffff6111be16565b61071960038263ffffffff6111be16565b6000600160a060020a038216151561109057600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61071960028263ffffffff6111be16565b600060ff821615156110de575069152d02c7e14af6800000610790565b8160ff16600114156110fb575069d3c21bcecceda1000000610790565b8160ff166002141561111957506a01a784379d99db42000000610790565b8160ff166003141561113757506a027b46536c66c8e3000000610790565b8160ff166004141561115557506a034f086f3b33b684000000610790565b8160ff166005141561079057506a0422ca8b0a00a425000000610790565b61071960048263ffffffff61120c16565b61071960038263ffffffff61120c16565b61071960028263ffffffff61120c16565b6000805460a060020a60ff02191660a060020a179055565b600160a060020a03811615156111d357600080fd5b6111dd8282611079565b156111e757600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038116151561122157600080fd5b61122b8282611079565b151561123657600080fd5b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a72305820d37bea8cf990d36f43cc5b4af261b636128105f981b5fa7014ca1bf22a0030880029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0xA0 DUP1 PUSH3 0x14C7 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 SWAP1 DUP2 MSTORE DUP2 MLOAD PUSH1 0x20 DUP4 ADD MLOAD SWAP2 DUP4 ADD MLOAD PUSH1 0x60 DUP5 ADD MLOAD PUSH1 0x80 SWAP1 SWAP5 ADD MLOAD PUSH1 0x0 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP2 DUP3 AND DUP2 OR PUSH1 0xA0 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT AND SWAP1 SWAP3 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SSTORE SWAP3 SWAP5 SWAP2 SWAP3 PUSH3 0x87 SWAP1 PUSH5 0x100000000 PUSH3 0x14C DUP2 MUL DIV JUMP JUMPDEST PUSH3 0x9B CALLER PUSH5 0x100000000 PUSH3 0x16A DUP2 MUL DIV JUMP JUMPDEST PUSH3 0xAF CALLER PUSH5 0x100000000 PUSH3 0x185 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0xFF AND LT ISZERO DUP1 ISZERO PUSH3 0xC8 JUMPI POP PUSH1 0x5 DUP5 PUSH1 0xFF AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH3 0xD4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 DUP1 SLOAD DUP7 SWAP2 SWAP1 PUSH1 0xFF NOT AND PUSH1 0x1 DUP4 DUP2 DUP2 GT ISZERO PUSH3 0xED JUMPI INVALID JUMPDEST MUL OR SWAP1 SSTORE POP POP PUSH1 0x5 DUP1 SLOAD PUSH2 0xFF00 NOT AND PUSH2 0x100 PUSH1 0xFF SWAP6 SWAP1 SWAP6 AND SWAP5 SWAP1 SWAP5 MUL SWAP4 SWAP1 SWAP4 OR PUSH3 0x10000 PUSH1 0xB0 PUSH1 0x2 EXP SUB NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP4 DUP5 AND MUL OR SWAP1 SWAP3 SSTORE PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT AND SWAP3 SWAP1 SWAP2 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP PUSH3 0x233 JUMP JUMPDEST PUSH3 0x167 PUSH1 0x2 DUP3 PUSH5 0x100000000 PUSH3 0x11BE PUSH3 0x1A0 DUP3 MUL OR DIV JUMP JUMPDEST POP JUMP JUMPDEST PUSH3 0x167 PUSH1 0x3 DUP3 PUSH5 0x100000000 PUSH3 0x11BE PUSH3 0x1A0 DUP3 MUL OR DIV JUMP JUMPDEST PUSH3 0x167 PUSH1 0x4 DUP3 PUSH5 0x100000000 PUSH3 0x11BE PUSH3 0x1A0 DUP3 MUL OR DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x1B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x1CB DUP3 DUP3 PUSH5 0x100000000 PUSH3 0x1FB DUP2 MUL DIV JUMP JUMPDEST ISZERO PUSH3 0x1D6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND ISZERO ISZERO PUSH3 0x213 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x1284 DUP1 PUSH3 0x243 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x17F JUMPI PUSH4 0xFFFFFFFF PUSH29 0x100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xC08BF88 DUP2 EQ PUSH2 0x184 JUMPI DUP1 PUSH4 0x162F986D EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0x1777FB4B EQ PUSH2 0x1B0 JUMPI DUP1 PUSH4 0x19A74AB3 EQ PUSH2 0x1D9 JUMPI DUP1 PUSH4 0x21B79D98 EQ PUSH2 0x1EE JUMPI DUP1 PUSH4 0x231D4E2A EQ PUSH2 0x203 JUMPI DUP1 PUSH4 0x29D10B6E EQ PUSH2 0x224 JUMPI DUP1 PUSH4 0x2E6B6849 EQ PUSH2 0x245 JUMPI DUP1 PUSH4 0x302C11CA EQ PUSH2 0x266 JUMPI DUP1 PUSH4 0x329B1C92 EQ PUSH2 0x297 JUMPI DUP1 PUSH4 0x34CDCF26 EQ PUSH2 0x2AC JUMPI DUP1 PUSH4 0x363AA6C7 EQ PUSH2 0x2CD JUMPI DUP1 PUSH4 0x3E6968B6 EQ PUSH2 0x2E2 JUMPI DUP1 PUSH4 0x427534A4 EQ PUSH2 0x30E JUMPI DUP1 PUSH4 0x4969AE70 EQ PUSH2 0x323 JUMPI DUP1 PUSH4 0x608D3D3D EQ PUSH2 0x34E JUMPI DUP1 PUSH4 0x74BE7592 EQ PUSH2 0x36F JUMPI DUP1 PUSH4 0x80258E47 EQ PUSH2 0x390 JUMPI DUP1 PUSH4 0x81A24459 EQ PUSH2 0x3A5 JUMPI DUP1 PUSH4 0x8329138F EQ PUSH2 0x3C6 JUMPI DUP1 PUSH4 0x99F4B251 EQ PUSH2 0x3ED JUMPI DUP1 PUSH4 0x9E614CA0 EQ PUSH2 0x402 JUMPI DUP1 PUSH4 0xB2A32CD5 EQ PUSH2 0x417 JUMPI DUP1 PUSH4 0xBE952494 EQ PUSH2 0x42C JUMPI DUP1 PUSH4 0xC6846EF8 EQ PUSH2 0x441 JUMPI DUP1 PUSH4 0xCDFD0F64 EQ PUSH2 0x468 JUMPI DUP1 PUSH4 0xCE41607A EQ PUSH2 0x47D JUMPI DUP1 PUSH4 0xD43ACC79 EQ PUSH2 0x492 JUMPI DUP1 PUSH4 0xDA408679 EQ PUSH2 0x4A7 JUMPI DUP1 PUSH4 0xE9D61859 EQ PUSH2 0x4BC JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x190 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH2 0x4D1 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH2 0x4EF JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C5 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C5 PUSH2 0x563 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1FA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH2 0x59A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x20F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x630 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x230 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x71C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x251 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x739 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x272 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27B PUSH2 0x756 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2A3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27B PUSH2 0x76B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x77A JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH2 0x795 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2F7 PUSH2 0x846 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0xFFFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x31A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH2 0x857 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x32F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x338 PUSH2 0x8C3 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xFF SWAP1 SWAP3 AND DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x35A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x8D7 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x37B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x8EA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x39C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x338 PUSH2 0x907 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C5 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x915 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3D2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD DUP2 AND SWAP1 PUSH1 0x24 CALLDATALOAD AND PUSH2 0x928 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH2 0x9DB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x40E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH2 0xC2E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x423 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH2 0xC9F JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x438 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH2 0xDFD JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x456 PUSH2 0xE06 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x474 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x456 PUSH2 0xE0C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x489 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x338 PUSH2 0xE12 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH2 0xE35 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH2 0xE3E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH2 0xECF JUMP JUMPDEST PUSH2 0x4DA CALLER PUSH2 0x8D7 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x4E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4ED PUSH2 0xED8 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x506 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x50F CALLER PUSH2 0x915 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x51A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x6 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x534 JUMPI INVALID JUMPDEST EQ PUSH2 0x53E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x2 SWAP2 SWAP1 PUSH1 0xA0 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT AND PUSH1 0xA0 PUSH1 0x2 EXP DUP4 JUMPDEST MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x6 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x57F JUMPI INVALID JUMPDEST EQ DUP1 ISZERO PUSH2 0x595 JUMPI POP PUSH1 0x6 SLOAD PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x5B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0x5CE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x6 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x5E8 JUMPI INVALID JUMPDEST EQ PUSH2 0x5F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x609 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH22 0xFF000000000000000000000000000000000000000000 NOT AND PUSH1 0xA8 PUSH1 0x2 EXP OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x639 CALLER PUSH2 0x8D7 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x644 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x6 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x65E JUMPI INVALID JUMPDEST EQ PUSH2 0x668 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH2 0x719 SWAP3 DUP5 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP1 SWAP2 AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x6D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x6E8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x6FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD PUSH1 0x1 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 SWAP1 PUSH4 0xFFFFFFFF PUSH2 0xF9F AND JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x725 CALLER PUSH2 0x915 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x730 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x719 DUP2 PUSH2 0x1057 JUMP JUMPDEST PUSH2 0x742 CALLER PUSH2 0x8D7 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x74D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x719 DUP2 PUSH2 0x1068 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x78D PUSH1 0x2 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x1079 AND JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x7AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7B5 CALLER PUSH2 0x915 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x7C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 PUSH1 0x6 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x7DA JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x7E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x5 DUP1 SLOAD PUSH22 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 NOT AND SWAP1 SSTORE PUSH1 0xA0 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT AND PUSH21 0x30000000000000000000000000000000000000000 OR PUSH22 0xFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0xB8 PUSH1 0x2 EXP SWAP1 DIV PUSH2 0xFFFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x86E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x877 CALLER PUSH2 0x915 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x882 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 PUSH1 0x6 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x89C JUMPI INVALID JUMPDEST EQ PUSH2 0x8A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 SWAP2 SWAP1 PUSH1 0xA0 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT AND PUSH1 0xA0 PUSH1 0x2 EXP DUP4 PUSH2 0x557 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x0 SWAP1 PUSH1 0xFF AND PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x595 JUMPI INVALID JUMPDEST PUSH1 0x0 PUSH2 0x78D PUSH1 0x3 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x1079 AND JUMP JUMPDEST PUSH2 0x8F3 CALLER PUSH2 0x77A JUMP JUMPDEST ISZERO ISZERO PUSH2 0x8FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x719 DUP2 PUSH2 0x10B0 JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x78D PUSH1 0x4 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x1079 AND JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x93F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x948 CALLER PUSH2 0x915 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x953 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 PUSH1 0x6 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x96D JUMPI INVALID JUMPDEST EQ PUSH2 0x977 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x5 DUP1 SLOAD PUSH22 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 NOT AND PUSH3 0x10000 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP7 DUP8 AND MUL OR SWAP1 SSTORE PUSH1 0xA0 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT AND PUSH1 0xA0 PUSH1 0x2 EXP OR PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND SWAP2 SWAP1 SWAP3 AND OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD DUP2 SWAP1 PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x9F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9FE CALLER PUSH2 0x77A JUMP JUMPDEST ISZERO ISZERO PUSH2 0xA09 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x5 SLOAD PUSH1 0xFF AND PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xA1C JUMPI INVALID JUMPDEST EQ PUSH2 0xA26 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x6 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xA40 JUMPI INVALID JUMPDEST EQ PUSH2 0xA4A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xA62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0xB8 PUSH1 0x2 EXP SWAP1 DIV PUSH2 0xFFFF AND ISZERO ISZERO PUSH2 0xAD8 JUMPI PUSH1 0x6 DUP1 SLOAD PUSH25 0xFFFF0000000000000000000000000000000000000000000000 NOT PUSH23 0xFF00000000000000000000000000000000000000000000 NOT SWAP1 SWAP2 AND PUSH23 0x100000000000000000000000000000000000000000000 OR AND PUSH1 0xB8 PUSH1 0x2 EXP OR SWAP1 SSTORE PUSH2 0xBA0 JUMP JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH1 0x1 PUSH2 0xFFFF PUSH1 0xB8 PUSH1 0x2 EXP DUP1 DUP5 DIV DUP3 AND SWAP3 SWAP1 SWAP3 ADD DUP2 AND DUP3 MUL PUSH25 0xFFFF0000000000000000000000000000000000000000000000 NOT SWAP1 SWAP4 AND SWAP3 SWAP1 SWAP3 OR SWAP3 DUP4 SWAP1 SSTORE SWAP1 SWAP2 DIV AND PUSH2 0x16E EQ ISZERO PUSH2 0xBA0 JUMPI PUSH1 0x6 DUP1 SLOAD PUSH25 0xFFFF0000000000000000000000000000000000000000000000 NOT PUSH1 0x1 PUSH1 0xFF PUSH23 0x100000000000000000000000000000000000000000000 DUP1 DUP6 DIV DUP3 AND SWAP3 SWAP1 SWAP3 ADD AND MUL PUSH23 0xFF00000000000000000000000000000000000000000000 NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR AND PUSH1 0xB8 PUSH1 0x2 EXP OR SWAP1 SSTORE PUSH1 0x7 SLOAD PUSH1 0x2 SWAP1 DIV PUSH1 0x7 SSTORE JUMPDEST PUSH1 0x7 SLOAD PUSH2 0x16D SWAP1 DIV SWAP2 POP PUSH1 0x0 DUP3 GT PUSH2 0xBB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SLOAD PUSH2 0xBE1 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 DUP3 AND SWAP2 PUSH3 0x10000 SWAP1 SWAP2 DIV AND DUP5 PUSH4 0xFFFFFFFF PUSH2 0xF9F AND JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND ISZERO PUSH2 0xC2A JUMPI POP PUSH1 0x64 PUSH1 0xA DUP3 MUL DIV PUSH1 0x0 DUP2 GT PUSH2 0xC07 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 SLOAD PUSH2 0xC2A SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 DUP3 AND SWAP2 AND DUP4 PUSH4 0xFFFFFFFF PUSH2 0xF9F AND JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xC45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC4E CALLER PUSH2 0x8D7 JUMP JUMPDEST ISZERO ISZERO PUSH2 0xC59 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x6 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xC73 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0xC7E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH22 0xFFFF0000000000000000000000000000000000000000 NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD DUP2 SWAP1 DUP2 SWAP1 PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xCBB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCC4 CALLER PUSH2 0x8D7 JUMP JUMPDEST ISZERO ISZERO PUSH2 0xCCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x6 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xCE9 JUMPI INVALID JUMPDEST EQ PUSH2 0xCF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x5 SLOAD PUSH1 0xFF AND PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xD06 JUMPI INVALID JUMPDEST EQ DUP1 ISZERO PUSH2 0xD13 JUMPI POP PUSH1 0x7 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0xDE2 JUMPI PUSH1 0x5 SLOAD PUSH2 0xD2C SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x10C1 JUMP JUMPDEST SWAP3 POP PUSH1 0x64 PUSH1 0xA DUP5 MUL PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD SWAP4 SWAP1 SWAP3 DIV DUP7 ADD SWAP5 POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP3 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDA0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDB4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xDCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP2 DUP2 EQ PUSH2 0xDDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x2 DUP4 DIV PUSH1 0x7 SSTORE JUMPDEST POP POP PUSH1 0x6 DUP1 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT AND PUSH1 0xA0 PUSH1 0x2 EXP OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x4ED CALLER PUSH2 0x1173 JUMP JUMPDEST PUSH2 0x16D DUP2 JUMP JUMPDEST PUSH1 0x7 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH23 0x100000000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x4ED CALLER PUSH2 0x1184 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xE55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH3 0x10000 SWAP1 DIV PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND CALLER EQ PUSH2 0xE72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x6 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x3 DUP2 GT ISZERO PUSH2 0xE8C JUMPI INVALID JUMPDEST EQ PUSH2 0xE96 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xEAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH22 0xFF000000000000000000000000000000000000000000 NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x4ED CALLER PUSH2 0x1195 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xF3D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF51 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xF67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH1 0x0 DUP2 GT ISZERO PUSH2 0xF97 JUMPI PUSH1 0x0 SLOAD PUSH1 0x1 SLOAD PUSH2 0xF97 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 DUP3 AND SWAP2 AND DUP4 PUSH4 0xFFFFFFFF PUSH2 0xF9F AND JUMP JUMPDEST PUSH2 0x719 PUSH2 0x11A6 JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA9059CBB DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH29 0x100000000000000000000000000000000000000000000000000000000 MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x101B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x102F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1045 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x1052 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x719 PUSH1 0x4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x11BE AND JUMP JUMPDEST PUSH2 0x719 PUSH1 0x3 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x11BE AND JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND ISZERO ISZERO PUSH2 0x1090 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x719 PUSH1 0x2 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x11BE AND JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND ISZERO ISZERO PUSH2 0x10DE JUMPI POP PUSH10 0x152D02C7E14AF6800000 PUSH2 0x790 JUMP JUMPDEST DUP2 PUSH1 0xFF AND PUSH1 0x1 EQ ISZERO PUSH2 0x10FB JUMPI POP PUSH10 0xD3C21BCECCEDA1000000 PUSH2 0x790 JUMP JUMPDEST DUP2 PUSH1 0xFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x1119 JUMPI POP PUSH11 0x1A784379D99DB42000000 PUSH2 0x790 JUMP JUMPDEST DUP2 PUSH1 0xFF AND PUSH1 0x3 EQ ISZERO PUSH2 0x1137 JUMPI POP PUSH11 0x27B46536C66C8E3000000 PUSH2 0x790 JUMP JUMPDEST DUP2 PUSH1 0xFF AND PUSH1 0x4 EQ ISZERO PUSH2 0x1155 JUMPI POP PUSH11 0x34F086F3B33B684000000 PUSH2 0x790 JUMP JUMPDEST DUP2 PUSH1 0xFF AND PUSH1 0x5 EQ ISZERO PUSH2 0x790 JUMPI POP PUSH11 0x422CA8B0A00A425000000 PUSH2 0x790 JUMP JUMPDEST PUSH2 0x719 PUSH1 0x4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x120C AND JUMP JUMPDEST PUSH2 0x719 PUSH1 0x3 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x120C AND JUMP JUMPDEST PUSH2 0x719 PUSH1 0x2 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x120C AND JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT AND PUSH1 0xA0 PUSH1 0x2 EXP OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x11D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x11DD DUP3 DUP3 PUSH2 0x1079 JUMP JUMPDEST ISZERO PUSH2 0x11E7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x1221 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x122B DUP3 DUP3 PUSH2 0x1079 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1236 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xd3 PUSH28 0xEA8CF990D36F43CC5B4AF261B636128105F981B5FA7014CA1BF22A00 ADDRESS DUP9 STOP 0x29 ", + "sourceMap": "620:5468:2:-;;;1311:490;8:9:-1;5:2;;;30:1;27;20:12;5:2;1311:490:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;156:8:7;:21;;167:10;-1:-1:-1;;;;;;156:21:7;;;;;-1:-1:-1;;;;;;188:19:7;;;;-1:-1:-1;636:29:5;;;;;-1:-1:-1;;;;;636:29:5;;;;;1311:490:2;;;;364:22:4;;:10;;;;:22;:::i;:::-;368:24:1;381:10;368:12;;;;:24;:::i;:::-;366:26:3;381:10;366:14;;;;:26;:::i;:::-;1624:1:2;1612:8;:13;;;;:30;;;;;1641:1;1629:8;:13;;;;1612:30;1604:39;;;;;;;;1656:10;:22;;1669:9;;1656:10;-1:-1:-1;;1656:22:2;;1669:9;1656:22;;;;;;;;;;;;-1:-1:-1;;1689:9:2;:20;;-1:-1:-1;;1689:20:2;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1720:28:2;;-1:-1:-1;;;;;1720:28:2;;;;;;;;1759:9;:34;;-1:-1:-1;;;;;;1759:34:2;;;;;;;;;;;-1:-1:-1;620:5468:2;;800:92:4;857:27;:14;876:7;857:18;;;;;;:27;:::i;:::-;800:92;:::o;824:96:1:-;883:29;:16;904:7;883:20;;;;;;:29;:::i;836:94:3:-;897:25;:12;914:7;897:16;;;;;;:25;:::i;244:167:8:-;-1:-1:-1;;;;;316:21:8;;;;308:30;;;;;;353:18;357:4;363:7;353:3;;;;:18;:::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:8;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:8;402:4;379:27;;;244:167::o;725:166::-;809:4;-1:-1:-1;;;;;831:21:8;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:8;:11;:20;;;;;;;;;;;;;;;725:166::o;620:5468:2:-;;;;;;;" }, "gasEstimates": { "creation": { - "codeDepositCost": "819800", + "codeDepositCost": "948000", "executionCost": "infinite", "totalCost": "infinite" }, "external": { - "DAYS_PER_YEAR()": "646", + "DAYS_PER_YEAR()": "712", "activateMiner()": "infinite", "addCoreTeam(address)": "infinite", "addSupervisor(address)": "infinite", "addSystem(address)": "infinite", "deactivateMiner()": "infinite", - "getCategory()": "718", + "getCategory()": "784", + "getCurrentDay()": "737", + "getCurrentYear()": "982", + "getCurrentYearSupply()": "934", "getMiner()": "724", + "getMinerType()": "744", + "getReferral()": "735", "isAlgoMiner()": "234", "isCoreTeam(address)": "infinite", "isMining()": "881", @@ -443,11 +557,11 @@ "renounceCoreTeam()": "infinite", "renounceSupervisor()": "infinite", "renounceSystem()": "infinite", - "resetMiner(address)": "infinite", + "resetMiner(address,address)": "infinite", "resumeMining()": "infinite", "startMining()": "21742", "stopAndRemoveOwnership()": "infinite", - "stopMining()": "22094", + "stopMining()": "22204", "terminate()": "infinite" } }, @@ -459,7 +573,12 @@ "addSystem(address)": "74be7592", "deactivateMiner()": "9e614ca0", "getCategory()": "80258e47", + "getCurrentDay()": "3e6968b6", + "getCurrentYear()": "ce41607a", + "getCurrentYearSupply()": "cdfd0f64", "getMiner()": "302c11ca", + "getMinerType()": "4969ae70", + "getReferral()": "329b1c92", "isAlgoMiner()": "1777fb4b", "isCoreTeam(address)": "608d3d3d", "isMining()": "19a74ab3", @@ -471,7 +590,7 @@ "renounceCoreTeam()": "d43acc79", "renounceSupervisor()": "be952494", "renounceSystem()": "e9d61859", - "resetMiner(address)": "ada436e9", + "resetMiner(address,address)": "8329138f", "resumeMining()": "427534a4", "startMining()": "21b79d98", "stopAndRemoveOwnership()": "363aa6c7", @@ -479,7 +598,7 @@ "terminate()": "0c08bf88" } }, - "metadata": "{\"compiler\":{\"version\":\"0.4.24+commit.e67f0147\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[],\"name\":\"terminate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pauseMining\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isAlgoMiner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isMining\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"startMining\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newMinerAddress\",\"type\":\"address\"}],\"name\":\"migrateMiner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addSupervisor\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addCoreTeam\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getMiner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isSystem\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"stopAndRemoveOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"resumeMining\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isCoreTeam\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addSystem\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCategory\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isSupervisor\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"mine\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"deactivateMiner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwnerAddress\",\"type\":\"address\"}],\"name\":\"resetMiner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"activateMiner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceSupervisor\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"DAYS_PER_YEAR\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceCoreTeam\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"stopMining\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceSystem\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"minerType\",\"type\":\"uint16\"},{\"name\":\"category\",\"type\":\"uint8\"},{\"name\":\"minerAccountAddress\",\"type\":\"address\"},{\"name\":\"tokenAddress\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoMiner.sol\":\"AlgoMiner\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCoreTeamRole.sol\":{\"keccak256\":\"0xe6fc9b275c7a4c4f00337d2a388cc97a64ad82e5a23c24c59a4593e85a05b08a\",\"urls\":[\"bzzr://40c7674b2a3543a2b2606c70df215a876bd1a064d249e658d2bbd6fe25969c2e\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoMiner.sol\":{\"keccak256\":\"0xb98f40d28a99d50fe3a6c5b8411495818db9a438b3f765f73280ae03c6c6063b\",\"urls\":[\"bzzr://dba29214974be1b8b9698babc431c5784cae1dc4785c928e3a050f1ff8ed0434\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoSupervisorRole.sol\":{\"keccak256\":\"0x20955eaf60f79f885c941d97e208320c9e0bc1f05b8121342f8187f9a39fd46b\",\"urls\":[\"bzzr://8e30e53aa0322307873f8c0a4fc3c58b7562a0fde92a0921a52bdef4e129ec4b\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoSystemRole.sol\":{\"keccak256\":\"0x6fffe504e6805d95ca42269cc995a3de9401a12bc037068b056c186ce8569d8d\",\"urls\":[\"bzzr://a0923a2d2b1e4992f552ce49638b19d6d8328950c1d5dc1395f0d625daf21c68\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/ERC20TokenHolder.sol\":{\"keccak256\":\"0x71adbf7f060599239b7a981594e43dc8fbe8597fd2853b6fe9e70ff39883d73a\",\"urls\":[\"bzzr://70691c1638cdc0f744f8c5b5a94e4f857ba40ad053816cfbd15e13ed41a3bc66\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/IAlgoMiner.sol\":{\"keccak256\":\"0x94c226040dfda257ee61c1455bbb920db28b6ad0f5cba33ecc76319c003630b7\",\"urls\":[\"bzzr://bdd0568ed74054f0f91933dab7fbba6789cceb60ab2f5200d719347161e8feed\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/Terminable.sol\":{\"keccak256\":\"0x29a8fa3204dbd204355714601ce21d7d717a586a4de21009d8f2a3ca7981963f\",\"urls\":[\"bzzr://55d9b762620cef1e6f7b11a26d6cc123f5b608a59e0d36f9bc0a1e8ff0ff5c42\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xa6e47d62e68903c8fff23500d80e7cc8085b9127995803478d9982cd8a6d49e4\",\"urls\":[\"bzzr://7c87eb3c145fe7592c97baa287501faff7e81c1965333c9b042ffb6b387e94a1\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xdd18f05c74536a06166c90a17ec3c6932853764f292bed314ceb23e730ff83af\",\"urls\":[\"bzzr://1d8a608339978ac18782f7051816cf23b4072d8814979e3ef74788cc6025cca0\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc8a7f15fa44eb10057f8bcb58418d3aed6f5267d211d18f93f3d4e0293e3da44\",\"urls\":[\"bzzr://8825e2508348b01a091ff47b8525e583b6e5604f6679684f805d67a9a6a2a7e9\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0x0a172a0ef8681d4a7d8034d003670a9b1968d914b0bfa64e13ddca289a85d24a\",\"urls\":[\"bzzr://733b6203c967b44d6de90b5c6b144e58a380a3f29befb2dc70e765dae2f1ca18\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.4.24+commit.e67f0147\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[],\"name\":\"terminate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pauseMining\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isAlgoMiner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isMining\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"startMining\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newMinerAddress\",\"type\":\"address\"}],\"name\":\"migrateMiner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addSupervisor\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addCoreTeam\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getMiner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getReferral\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isSystem\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"stopAndRemoveOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCurrentDay\",\"outputs\":[{\"name\":\"\",\"type\":\"uint16\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"resumeMining\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getMinerType\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isCoreTeam\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addSystem\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCategory\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isSupervisor\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwnerAddress\",\"type\":\"address\"},{\"name\":\"newReferralAddress\",\"type\":\"address\"}],\"name\":\"resetMiner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"mine\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"deactivateMiner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"activateMiner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceSupervisor\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"DAYS_PER_YEAR\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCurrentYearSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCurrentYear\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceCoreTeam\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"stopMining\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceSystem\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"minerType\",\"type\":\"uint8\"},{\"name\":\"category\",\"type\":\"uint8\"},{\"name\":\"minerAccountAddress\",\"type\":\"address\"},{\"name\":\"referralAccountAddress\",\"type\":\"address\"},{\"name\":\"tokenAddress\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoMiner.sol\":\"AlgoMiner\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCommon.sol\":{\"keccak256\":\"0x2314139702cc63c8daa379e521abea3be32730ba896f68f3f865749907e64539\",\"urls\":[\"bzzr://b945e0ec5a4ca8a52b5e816c5bb00807d0ca43c5363102821b36c8c4ee98a2d5\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCoreTeamRole.sol\":{\"keccak256\":\"0xe6fc9b275c7a4c4f00337d2a388cc97a64ad82e5a23c24c59a4593e85a05b08a\",\"urls\":[\"bzzr://40c7674b2a3543a2b2606c70df215a876bd1a064d249e658d2bbd6fe25969c2e\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoMiner.sol\":{\"keccak256\":\"0x33f0f5ea1227c09f23bb01dc90941de6aac68ccf624f8c8843b94f61b0042883\",\"urls\":[\"bzzr://bd3a3d0bbff65fc4367244d68a37a355179565074752d6ecd368a72ff9c5ac87\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoSupervisorRole.sol\":{\"keccak256\":\"0x20955eaf60f79f885c941d97e208320c9e0bc1f05b8121342f8187f9a39fd46b\",\"urls\":[\"bzzr://8e30e53aa0322307873f8c0a4fc3c58b7562a0fde92a0921a52bdef4e129ec4b\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoSystemRole.sol\":{\"keccak256\":\"0x6fffe504e6805d95ca42269cc995a3de9401a12bc037068b056c186ce8569d8d\",\"urls\":[\"bzzr://a0923a2d2b1e4992f552ce49638b19d6d8328950c1d5dc1395f0d625daf21c68\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/ERC20TokenHolder.sol\":{\"keccak256\":\"0x71adbf7f060599239b7a981594e43dc8fbe8597fd2853b6fe9e70ff39883d73a\",\"urls\":[\"bzzr://70691c1638cdc0f744f8c5b5a94e4f857ba40ad053816cfbd15e13ed41a3bc66\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/IAlgoMiner.sol\":{\"keccak256\":\"0xdc21d3ce2e847a83e62a95fc4e8a31305771c1c6549fba2102ae9a7caa09a1e5\",\"urls\":[\"bzzr://291aa93e18c12398d6d8031308b1a0231d253ec061a5449d0335bd476554383e\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/Terminable.sol\":{\"keccak256\":\"0x29a8fa3204dbd204355714601ce21d7d717a586a4de21009d8f2a3ca7981963f\",\"urls\":[\"bzzr://55d9b762620cef1e6f7b11a26d6cc123f5b608a59e0d36f9bc0a1e8ff0ff5c42\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xa6e47d62e68903c8fff23500d80e7cc8085b9127995803478d9982cd8a6d49e4\",\"urls\":[\"bzzr://7c87eb3c145fe7592c97baa287501faff7e81c1965333c9b042ffb6b387e94a1\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xdd18f05c74536a06166c90a17ec3c6932853764f292bed314ceb23e730ff83af\",\"urls\":[\"bzzr://1d8a608339978ac18782f7051816cf23b4072d8814979e3ef74788cc6025cca0\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc8a7f15fa44eb10057f8bcb58418d3aed6f5267d211d18f93f3d4e0293e3da44\",\"urls\":[\"bzzr://8825e2508348b01a091ff47b8525e583b6e5604f6679684f805d67a9a6a2a7e9\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0x0a172a0ef8681d4a7d8034d003670a9b1968d914b0bfa64e13ddca289a85d24a\",\"urls\":[\"bzzr://733b6203c967b44d6de90b5c6b144e58a380a3f29befb2dc70e765dae2f1ca18\"]}},\"version\":1}", "userdoc": { "methods": {} } @@ -714,6 +833,20 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "getMinerType", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [], @@ -743,6 +876,7 @@ "methodIdentifiers": { "getCategory()": "80258e47", "getMiner()": "302c11ca", + "getMinerType()": "4969ae70", "isAlgoMiner()": "1777fb4b", "isMining()": "19a74ab3" } @@ -794,7 +928,7 @@ "linkReferences": {}, "object": "604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820ba9d82b11504517181f938ed511f09c0a22046ef39e2e32460a2175b508e16a80029", "opcodes": "PUSH1 0x4C PUSH1 0x2C PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x0 DUP2 EQ PUSH1 0x1C JUMPI PUSH1 0x1E JUMP JUMPDEST INVALID JUMPDEST POP ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN STOP PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xba SWAP14 DUP3 0xb1 ISZERO DIV MLOAD PUSH18 0x81F938ED511F09C0A22046EF39E2E32460A2 OR JUMPDEST POP DUP15 AND 0xa8 STOP 0x29 ", - "sourceMap": "109:784:7:-;;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" + "sourceMap": "109:784:8:-;;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" }, "gasEstimates": { "creation": { @@ -828,7 +962,7 @@ "linkReferences": {}, "object": "604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820da2bd0dd3588878574232c2d13f92e16f4b0e8ad94ede9adb0d087f862d4f8cf0029", "opcodes": "PUSH1 0x4C PUSH1 0x2C PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x0 DUP2 EQ PUSH1 0x1C JUMPI PUSH1 0x1E JUMP JUMPDEST INVALID JUMPDEST POP ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN STOP PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xda 0x2b 0xd0 0xdd CALLDATALOAD DUP9 DUP8 DUP6 PUSH21 0x232C2D13F92E16F4B0E8AD94EDE9ADB0D087F862D4 0xf8 0xcf STOP 0x29 ", - "sourceMap": "117:1531:8:-;;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" + "sourceMap": "117:1531:9:-;;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" }, "gasEstimates": { "creation": { @@ -1068,7 +1202,7 @@ "linkReferences": {}, "object": "604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820c0f55d8db2bd761049fa5ba6b6c207a4d595b758946aba3715580373517606710029", "opcodes": "PUSH1 0x4C PUSH1 0x2C PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x0 DUP2 EQ PUSH1 0x1C JUMPI PUSH1 0x1E JUMP JUMPDEST INVALID JUMPDEST POP ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN STOP PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc0 0xf5 0x5d DUP14 0xb2 0xbd PUSH23 0x1049FA5BA6B6C207A4D595B758946ABA37155803735176 MOD PUSH18 0x2900000000000000000000000000000000 ", - "sourceMap": "353:1296:10:-;;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" + "sourceMap": "353:1296:11:-;;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" }, "gasEstimates": { "creation": { @@ -1094,19 +1228,1354 @@ } }, "sources": { + "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCommon.sol": { + "ast": { + "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCommon.sol", + "exportedSymbols": { + "AlgoCommon": [ + 97 + ] + }, + "id": 98, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:0" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 97, + "linearizedBaseContracts": [ + 97 + ], + "name": "AlgoCommon", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 8, + "name": "TOKEN_FACTOR", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "56:58:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 3, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "97:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "3138", + "id": 5, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "111:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + } + ], + "id": 4, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "103:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 6, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "103:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "97:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 13, + "name": "CAT_0_VALUE", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "121:61:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "121:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "313030303030", + "id": 10, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "161:6:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100000_by_1", + "typeString": "int_const 100000" + }, + "value": "100000" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 11, + "name": "TOKEN_FACTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "170:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "161:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18, + "name": "CAT_1_VALUE", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "189:62:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "189:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030303030", + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "229:7:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "value": "1000000" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 16, + "name": "TOKEN_FACTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "239:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "229:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 25, + "name": "CAT_2_VALUE", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "258:66:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "258:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 24, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_2000000_by_1", + "typeString": "int_const 2000000" + }, + "id": 22, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "298:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31303030303030", + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "302:7:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "value": "1000000" + }, + "src": "298:11:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_2000000_by_1", + "typeString": "int_const 2000000" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 23, + "name": "TOKEN_FACTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "312:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "298:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 32, + "name": "CAT_3_VALUE", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "331:66:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "331:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 31, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_3000000_by_1", + "typeString": "int_const 3000000" + }, + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "371:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31303030303030", + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "375:7:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "value": "1000000" + }, + "src": "371:11:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_3000000_by_1", + "typeString": "int_const 3000000" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 30, + "name": "TOKEN_FACTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "385:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "371:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 39, + "name": "CAT_4_VALUE", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "404:66:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 33, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "404:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 38, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_4000000_by_1", + "typeString": "int_const 4000000" + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "444:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31303030303030", + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "448:7:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "value": "1000000" + }, + "src": "444:11:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_4000000_by_1", + "typeString": "int_const 4000000" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 37, + "name": "TOKEN_FACTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "458:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "444:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 46, + "name": "CAT_5_VALUE", + "nodeType": "VariableDeclaration", + "scope": 97, + "src": "477:66:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 40, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "477:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 45, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_5000000_by_1", + "typeString": "int_const 5000000" + }, + "id": 43, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "35", + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "517:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31303030303030", + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "521:7:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "value": "1000000" + }, + "src": "517:11:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_5000000_by_1", + "typeString": "int_const 5000000" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 44, + "name": "TOKEN_FACTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "531:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "517:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 95, + "nodeType": "Block", + "src": "631:426:0", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 55, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 53, + "name": "category", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 48, + "src": "645:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "657:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "645:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 61, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 59, + "name": "category", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 48, + "src": "714:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 60, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "726:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "714:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 67, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 65, + "name": "category", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 48, + "src": "783:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 66, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "795:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "783:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 73, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 71, + "name": "category", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 48, + "src": "852:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "864:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "852:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 79, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 77, + "name": "category", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 48, + "src": "921:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "933:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "921:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 85, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 83, + "name": "category", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 48, + "src": "990:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "35", + "id": 84, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1002:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "src": "990:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 89, + "nodeType": "IfStatement", + "src": "987:63:0", + "trueBody": { + "id": 88, + "nodeType": "Block", + "src": "1005:45:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 86, + "name": "CAT_5_VALUE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "1027:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 52, + "id": 87, + "nodeType": "Return", + "src": "1020:18:0" + } + ] + } + }, + "id": 90, + "nodeType": "IfStatement", + "src": "918:132:0", + "trueBody": { + "id": 82, + "nodeType": "Block", + "src": "936:45:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 80, + "name": "CAT_4_VALUE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39, + "src": "958:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 52, + "id": 81, + "nodeType": "Return", + "src": "951:18:0" + } + ] + } + }, + "id": 91, + "nodeType": "IfStatement", + "src": "849:201:0", + "trueBody": { + "id": 76, + "nodeType": "Block", + "src": "867:45:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 74, + "name": "CAT_3_VALUE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32, + "src": "889:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 52, + "id": 75, + "nodeType": "Return", + "src": "882:18:0" + } + ] + } + }, + "id": 92, + "nodeType": "IfStatement", + "src": "780:270:0", + "trueBody": { + "id": 70, + "nodeType": "Block", + "src": "798:45:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 68, + "name": "CAT_2_VALUE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "820:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 52, + "id": 69, + "nodeType": "Return", + "src": "813:18:0" + } + ] + } + }, + "id": 93, + "nodeType": "IfStatement", + "src": "711:339:0", + "trueBody": { + "id": 64, + "nodeType": "Block", + "src": "729:45:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 62, + "name": "CAT_1_VALUE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18, + "src": "751:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 52, + "id": 63, + "nodeType": "Return", + "src": "744:18:0" + } + ] + } + }, + "id": 94, + "nodeType": "IfStatement", + "src": "642:408:0", + "trueBody": { + "id": 58, + "nodeType": "Block", + "src": "660:45:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 56, + "name": "CAT_0_VALUE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13, + "src": "682:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 52, + "id": 57, + "nodeType": "Return", + "src": "675:18:0" + } + ] + } + } + ] + }, + "documentation": null, + "id": 96, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCapacityByCategory", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 49, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 48, + "name": "category", + "nodeType": "VariableDeclaration", + "scope": 96, + "src": "583:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 47, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "583:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "582:16:0" + }, + "payable": false, + "returnParameters": { + "id": 52, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 51, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 96, + "src": "622:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 50, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "622:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "621:9:0" + }, + "scope": 97, + "src": "552:505:0", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 98, + "src": "27:1033:0" + } + ], + "src": "0:1060:0" + }, + "id": 0 + }, "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCoreTeamRole.sol": { "ast": { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCoreTeamRole.sol", "exportedSymbols": { "AlgoCoreTeamRole": [ - 86 + 184 ] }, - "id": 87, + "id": 185, "nodeType": "SourceUnit", "nodes": [ { - "id": 1, + "id": 99, "literals": [ "solidity", "^", @@ -1114,16 +2583,16 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:0" + "src": "0:24:1" }, { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol", "file": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol", - "id": 2, + "id": 100, "nodeType": "ImportDirective", - "scope": 87, - "sourceUnit": 935, - "src": "28:189:0", + "scope": 185, + "sourceUnit": 1162, + "src": "28:189:1", "symbolAliases": [], "unitAlias": "" }, @@ -1133,64 +2602,64 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 86, + "id": 184, "linearizedBaseContracts": [ - 86 + 184 ], "name": "AlgoCoreTeamRole", "nodeType": "ContractDefinition", "nodes": [ { - "id": 5, + "id": 103, "libraryName": { "contractScope": null, - "id": 3, + "id": 101, "name": "Roles", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 934, - "src": "260:5:0", + "referencedDeclaration": 1161, + "src": "260:5:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Roles_$934", + "typeIdentifier": "t_contract$_Roles_$1161", "typeString": "library Roles" } }, "nodeType": "UsingForDirective", - "src": "254:27:0", + "src": "254:27:1", "typeName": { "contractScope": null, - "id": 4, + "id": 102, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 847, - "src": "270:10:0", + "referencedDeclaration": 1074, + "src": "270:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage_ptr", + "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", "typeString": "struct Roles.Role" } } }, { "constant": false, - "id": 7, + "id": 105, "name": "_coreTeamMembers", "nodeType": "VariableDeclaration", - "scope": 86, - "src": "289:35:0", + "scope": 184, + "src": "289:35:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage", + "typeIdentifier": "t_struct$_Role_$1074_storage", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 6, + "id": 104, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 847, - "src": "289:10:0", + "referencedDeclaration": 1074, + "src": "289:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage_ptr", + "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -1199,9 +2668,9 @@ }, { "body": { - "id": 15, + "id": 113, "nodeType": "Block", - "src": "357:43:0", + "src": "357:43:1", "statements": [ { "expression": { @@ -1211,18 +2680,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 11, + "id": 109, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1290, - "src": "381:3:0", + "referencedDeclaration": 1517, + "src": "381:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 12, + "id": 110, "isConstant": false, "isLValue": false, "isPure": false, @@ -1230,7 +2699,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "381:10:0", + "src": "381:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1244,18 +2713,18 @@ "typeString": "address" } ], - "id": 10, + "id": 108, "name": "_addCoreTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "368:12:0", + "referencedDeclaration": 171, + "src": "368:12:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 13, + "id": 111, "isConstant": false, "isLValue": false, "isPure": false, @@ -1263,20 +2732,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "368:24:0", + "src": "368:24:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 14, + "id": 112, "nodeType": "ExpressionStatement", - "src": "368:24:0" + "src": "368:24:1" } ] }, "documentation": null, - "id": 16, + "id": 114, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -1284,29 +2753,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 8, + "id": 106, "nodeType": "ParameterList", "parameters": [], - "src": "345:2:0" + "src": "345:2:1" }, "payable": false, "returnParameters": { - "id": 9, + "id": 107, "nodeType": "ParameterList", "parameters": [], - "src": "357:0:0" + "src": "357:0:1" }, - "scope": 86, - "src": "333:67:0", + "scope": 184, + "src": "333:67:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 26, + "id": 124, "nodeType": "Block", - "src": "432:62:0", + "src": "432:62:1", "statements": [ { "expression": { @@ -1319,18 +2788,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 20, + "id": 118, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1290, - "src": "462:3:0", + "referencedDeclaration": 1517, + "src": "462:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 21, + "id": 119, "isConstant": false, "isLValue": false, "isPure": false, @@ -1338,7 +2807,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "462:10:0", + "src": "462:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1352,18 +2821,18 @@ "typeString": "address" } ], - "id": 19, + "id": 117, "name": "isCoreTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 40, - "src": "451:10:0", + "referencedDeclaration": 138, + "src": "451:10:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 22, + "id": 120, "isConstant": false, "isLValue": false, "isPure": false, @@ -1371,7 +2840,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "451:22:0", + "src": "451:22:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1385,21 +2854,21 @@ "typeString": "bool" } ], - "id": 18, + "id": 116, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1293, - 1294 + 1520, + 1521 ], - "referencedDeclaration": 1293, - "src": "443:7:0", + "referencedDeclaration": 1520, + "src": "443:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 23, + "id": 121, "isConstant": false, "isLValue": false, "isPure": false, @@ -1407,41 +2876,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "443:31:0", + "src": "443:31:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 24, + "id": 122, "nodeType": "ExpressionStatement", - "src": "443:31:0" + "src": "443:31:1" }, { - "id": 25, + "id": 123, "nodeType": "PlaceholderStatement", - "src": "485:1:0" + "src": "485:1:1" } ] }, "documentation": null, - "id": 27, + "id": 125, "name": "onlyCoreTeam", "nodeType": "ModifierDefinition", "parameters": { - "id": 17, + "id": 115, "nodeType": "ParameterList", "parameters": [], - "src": "429:2:0" + "src": "429:2:1" }, - "src": "408:86:0", + "src": "408:86:1", "visibility": "internal" }, { "body": { - "id": 39, + "id": 137, "nodeType": "Block", - "src": "566:55:0", + "src": "566:55:1", "statements": [ { "expression": { @@ -1449,12 +2918,12 @@ "arguments": [ { "argumentTypes": null, - "id": 36, + "id": 134, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29, - "src": "605:7:0", + "referencedDeclaration": 127, + "src": "605:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1470,32 +2939,32 @@ ], "expression": { "argumentTypes": null, - "id": 34, + "id": 132, "name": "_coreTeamMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "584:16:0", + "referencedDeclaration": 105, + "src": "584:16:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage", + "typeIdentifier": "t_struct$_Role_$1074_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 35, + "id": 133, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "has", "nodeType": "MemberAccess", - "referencedDeclaration": 933, - "src": "584:20:0", + "referencedDeclaration": 1160, + "src": "584:20:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$847_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$847_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$1074_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$1074_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 37, + "id": 135, "isConstant": false, "isLValue": false, "isPure": false, @@ -1503,21 +2972,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "584:29:0", + "src": "584:29:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 33, - "id": 38, + "functionReturnParameters": 131, + "id": 136, "nodeType": "Return", - "src": "577:36:0" + "src": "577:36:1" } ] }, "documentation": null, - "id": 40, + "id": 138, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1525,16 +2994,16 @@ "name": "isCoreTeam", "nodeType": "FunctionDefinition", "parameters": { - "id": 30, + "id": 128, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 29, + "id": 127, "name": "account", "nodeType": "VariableDeclaration", - "scope": 40, - "src": "522:15:0", + "scope": 138, + "src": "522:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1542,10 +3011,10 @@ "typeString": "address" }, "typeName": { - "id": 28, + "id": 126, "name": "address", "nodeType": "ElementaryTypeName", - "src": "522:7:0", + "src": "522:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1555,20 +3024,20 @@ "visibility": "internal" } ], - "src": "521:17:0" + "src": "521:17:1" }, "payable": false, "returnParameters": { - "id": 33, + "id": 131, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 32, + "id": 130, "name": "", "nodeType": "VariableDeclaration", - "scope": 40, - "src": "560:4:0", + "scope": 138, + "src": "560:4:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1576,10 +3045,10 @@ "typeString": "bool" }, "typeName": { - "id": 31, + "id": 129, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "560:4:0", + "src": "560:4:1", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1589,19 +3058,19 @@ "visibility": "internal" } ], - "src": "559:6:0" + "src": "559:6:1" }, - "scope": 86, - "src": "502:119:0", + "scope": 184, + "src": "502:119:1", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 51, + "id": 149, "nodeType": "Block", - "src": "687:40:0", + "src": "687:40:1", "statements": [ { "expression": { @@ -1609,12 +3078,12 @@ "arguments": [ { "argumentTypes": null, - "id": 48, + "id": 146, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "711:7:0", + "referencedDeclaration": 140, + "src": "711:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1628,18 +3097,18 @@ "typeString": "address" } ], - "id": 47, + "id": 145, "name": "_addCoreTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "698:12:0", + "referencedDeclaration": 171, + "src": "698:12:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 49, + "id": 147, "isConstant": false, "isLValue": false, "isPure": false, @@ -1647,57 +3116,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "698:21:0", + "src": "698:21:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 50, + "id": 148, "nodeType": "ExpressionStatement", - "src": "698:21:0" + "src": "698:21:1" } ] }, "documentation": null, - "id": 52, + "id": 150, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 45, + "id": 143, "modifierName": { "argumentTypes": null, - "id": 44, + "id": 142, "name": "onlyCoreTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27, - "src": "674:12:0", + "referencedDeclaration": 125, + "src": "674:12:1", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "674:12:0" + "src": "674:12:1" } ], "name": "addCoreTeam", "nodeType": "FunctionDefinition", "parameters": { - "id": 43, + "id": 141, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 42, + "id": 140, "name": "account", "nodeType": "VariableDeclaration", - "scope": 52, - "src": "650:15:0", + "scope": 150, + "src": "650:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1705,10 +3174,10 @@ "typeString": "address" }, "typeName": { - "id": 41, + "id": 139, "name": "address", "nodeType": "ElementaryTypeName", - "src": "650:7:0", + "src": "650:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1718,26 +3187,26 @@ "visibility": "internal" } ], - "src": "649:17:0" + "src": "649:17:1" }, "payable": false, "returnParameters": { - "id": 46, + "id": 144, "nodeType": "ParameterList", "parameters": [], - "src": "687:0:0" + "src": "687:0:1" }, - "scope": 86, - "src": "629:98:0", + "scope": 184, + "src": "629:98:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 60, + "id": 158, "nodeType": "Block", - "src": "770:46:0", + "src": "770:46:1", "statements": [ { "expression": { @@ -1747,18 +3216,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 56, + "id": 154, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1290, - "src": "797:3:0", + "referencedDeclaration": 1517, + "src": "797:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 57, + "id": 155, "isConstant": false, "isLValue": false, "isPure": false, @@ -1766,7 +3235,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "797:10:0", + "src": "797:10:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1780,18 +3249,18 @@ "typeString": "address" } ], - "id": 55, + "id": 153, "name": "_removeCoreTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 85, - "src": "781:15:0", + "referencedDeclaration": 183, + "src": "781:15:1", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 58, + "id": 156, "isConstant": false, "isLValue": false, "isPure": false, @@ -1799,20 +3268,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "781:27:0", + "src": "781:27:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 59, + "id": 157, "nodeType": "ExpressionStatement", - "src": "781:27:0" + "src": "781:27:1" } ] }, "documentation": null, - "id": 61, + "id": 159, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1820,29 +3289,29 @@ "name": "renounceCoreTeam", "nodeType": "FunctionDefinition", "parameters": { - "id": 53, + "id": 151, "nodeType": "ParameterList", "parameters": [], - "src": "760:2:0" + "src": "760:2:1" }, "payable": false, "returnParameters": { - "id": 54, + "id": 152, "nodeType": "ParameterList", "parameters": [], - "src": "770:0:0" + "src": "770:0:1" }, - "scope": 86, - "src": "735:81:0", + "scope": 184, + "src": "735:81:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 72, + "id": 170, "nodeType": "Block", - "src": "872:48:0", + "src": "872:48:1", "statements": [ { "expression": { @@ -1850,12 +3319,12 @@ "arguments": [ { "argumentTypes": null, - "id": 69, + "id": 167, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "904:7:0", + "referencedDeclaration": 161, + "src": "904:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1871,32 +3340,32 @@ ], "expression": { "argumentTypes": null, - "id": 66, + "id": 164, "name": "_coreTeamMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "883:16:0", + "referencedDeclaration": 105, + "src": "883:16:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage", + "typeIdentifier": "t_struct$_Role_$1074_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 68, + "id": 166, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 879, - "src": "883:20:0", + "referencedDeclaration": 1106, + "src": "883:20:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$847_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$847_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$1074_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$1074_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 70, + "id": 168, "isConstant": false, "isLValue": false, "isPure": false, @@ -1904,20 +3373,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "883:29:0", + "src": "883:29:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 71, + "id": 169, "nodeType": "ExpressionStatement", - "src": "883:29:0" + "src": "883:29:1" } ] }, "documentation": null, - "id": 73, + "id": 171, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1925,16 +3394,16 @@ "name": "_addCoreTeam", "nodeType": "FunctionDefinition", "parameters": { - "id": 64, + "id": 162, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 63, + "id": 161, "name": "account", "nodeType": "VariableDeclaration", - "scope": 73, - "src": "846:15:0", + "scope": 171, + "src": "846:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1942,10 +3411,10 @@ "typeString": "address" }, "typeName": { - "id": 62, + "id": 160, "name": "address", "nodeType": "ElementaryTypeName", - "src": "846:7:0", + "src": "846:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1955,26 +3424,26 @@ "visibility": "internal" } ], - "src": "845:17:0" + "src": "845:17:1" }, "payable": false, "returnParameters": { - "id": 65, + "id": 163, "nodeType": "ParameterList", "parameters": [], - "src": "872:0:0" + "src": "872:0:1" }, - "scope": 86, - "src": "824:96:0", + "scope": 184, + "src": "824:96:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 84, + "id": 182, "nodeType": "Block", - "src": "979:51:0", + "src": "979:51:1", "statements": [ { "expression": { @@ -1982,12 +3451,12 @@ "arguments": [ { "argumentTypes": null, - "id": 81, + "id": 179, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 75, - "src": "1014:7:0", + "referencedDeclaration": 173, + "src": "1014:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2003,32 +3472,32 @@ ], "expression": { "argumentTypes": null, - "id": 78, + "id": 176, "name": "_coreTeamMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "990:16:0", + "referencedDeclaration": 105, + "src": "990:16:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage", + "typeIdentifier": "t_struct$_Role_$1074_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 80, + "id": 178, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 910, - "src": "990:23:0", + "referencedDeclaration": 1137, + "src": "990:23:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$847_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$847_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$1074_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$1074_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 82, + "id": 180, "isConstant": false, "isLValue": false, "isPure": false, @@ -2036,20 +3505,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "990:32:0", + "src": "990:32:1", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 83, + "id": 181, "nodeType": "ExpressionStatement", - "src": "990:32:0" + "src": "990:32:1" } ] }, "documentation": null, - "id": 85, + "id": 183, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2057,16 +3526,16 @@ "name": "_removeCoreTeam", "nodeType": "FunctionDefinition", "parameters": { - "id": 76, + "id": 174, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 75, + "id": 173, "name": "account", "nodeType": "VariableDeclaration", - "scope": 85, - "src": "953:15:0", + "scope": 183, + "src": "953:15:1", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2074,10 +3543,10 @@ "typeString": "address" }, "typeName": { - "id": 74, + "id": 172, "name": "address", "nodeType": "ElementaryTypeName", - "src": "953:7:0", + "src": "953:7:1", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2087,125 +3556,136 @@ "visibility": "internal" } ], - "src": "952:17:0" + "src": "952:17:1" }, "payable": false, "returnParameters": { - "id": 77, + "id": 175, "nodeType": "ParameterList", "parameters": [], - "src": "979:0:0" + "src": "979:0:1" }, - "scope": 86, - "src": "928:102:0", + "scope": 184, + "src": "928:102:1", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 87, - "src": "221:812:0" + "scope": 185, + "src": "221:812:1" } ], - "src": "0:1035:0" + "src": "0:1035:1" }, - "id": 0 + "id": 1 }, "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoMiner.sol": { "ast": { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoMiner.sol", "exportedSymbols": { "AlgoMiner": [ - 549 + 771 ] }, - "id": 550, + "id": 772, "nodeType": "SourceUnit", "nodes": [ { - "id": 88, + "id": 186, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:1" + "src": "0:23:2" }, { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", "file": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", - "id": 89, + "id": 187, "nodeType": "ImportDirective", - "scope": 550, - "sourceUnit": 1132, - "src": "27:195:1", + "scope": 772, + "sourceUnit": 1359, + "src": "27:195:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", "file": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", - "id": 90, + "id": 188, "nodeType": "ImportDirective", - "scope": 550, - "sourceUnit": 1276, - "src": "224:198:1", + "scope": 772, + "sourceUnit": 1503, + "src": "224:198:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/IAlgoMiner.sol", "file": "./IAlgoMiner.sol", - "id": 91, + "id": 189, "nodeType": "ImportDirective", - "scope": 550, - "sourceUnit": 804, - "src": "426:26:1", + "scope": 772, + "sourceUnit": 1031, + "src": "426:26:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCommon.sol", + "file": "./AlgoCommon.sol", + "id": 190, + "nodeType": "ImportDirective", + "scope": 772, + "sourceUnit": 98, + "src": "454:26:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/ERC20TokenHolder.sol", "file": "./ERC20TokenHolder.sol", - "id": 92, + "id": 191, "nodeType": "ImportDirective", - "scope": 550, - "sourceUnit": 781, - "src": "454:32:1", + "scope": 772, + "sourceUnit": 1003, + "src": "482:32:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoSystemRole.sol", "file": "./AlgoSystemRole.sol", - "id": 93, + "id": 192, "nodeType": "ImportDirective", - "scope": 550, - "sourceUnit": 724, - "src": "488:30:1", + "scope": 772, + "sourceUnit": 946, + "src": "516:30:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCoreTeamRole.sol", "file": "./AlgoCoreTeamRole.sol", - "id": 94, + "id": 193, "nodeType": "ImportDirective", - "scope": 550, - "sourceUnit": 87, - "src": "520:32:1", + "scope": 772, + "sourceUnit": 185, + "src": "548:32:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoSupervisorRole.sol", "file": "./AlgoSupervisorRole.sol", - "id": 95, + "id": 194, "nodeType": "ImportDirective", - "scope": 550, - "sourceUnit": 637, - "src": "554:34:1", + "scope": 772, + "sourceUnit": 859, + "src": "582:34:2", "symbolAliases": [], "unitAlias": "" }, @@ -2215,153 +3695,173 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 96, + "id": 195, + "name": "AlgoCommon", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 97, + "src": "642:10:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AlgoCommon_$97", + "typeString": "contract AlgoCommon" + } + }, + "id": 196, + "nodeType": "InheritanceSpecifier", + "src": "642:10:2" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 197, "name": "ERC20TokenHolder", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 780, - "src": "614:16:1", + "referencedDeclaration": 1002, + "src": "654:16:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20TokenHolder_$780", + "typeIdentifier": "t_contract$_ERC20TokenHolder_$1002", "typeString": "contract ERC20TokenHolder" } }, - "id": 97, + "id": 198, "nodeType": "InheritanceSpecifier", - "src": "614:16:1" + "src": "654:16:2" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 98, + "id": 199, "name": "AlgoSystemRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 723, - "src": "632:14:1", + "referencedDeclaration": 945, + "src": "672:14:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_AlgoSystemRole_$723", + "typeIdentifier": "t_contract$_AlgoSystemRole_$945", "typeString": "contract AlgoSystemRole" } }, - "id": 99, + "id": 200, "nodeType": "InheritanceSpecifier", - "src": "632:14:1" + "src": "672:14:2" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 100, + "id": 201, "name": "AlgoCoreTeamRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 86, - "src": "648:16:1", + "referencedDeclaration": 184, + "src": "688:16:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_AlgoCoreTeamRole_$86", + "typeIdentifier": "t_contract$_AlgoCoreTeamRole_$184", "typeString": "contract AlgoCoreTeamRole" } }, - "id": 101, + "id": 202, "nodeType": "InheritanceSpecifier", - "src": "648:16:1" + "src": "688:16:2" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 102, + "id": 203, "name": "AlgoSupervisorRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 636, - "src": "666:18:1", + "referencedDeclaration": 858, + "src": "706:18:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_AlgoSupervisorRole_$636", + "typeIdentifier": "t_contract$_AlgoSupervisorRole_$858", "typeString": "contract AlgoSupervisorRole" } }, - "id": 103, + "id": 204, "nodeType": "InheritanceSpecifier", - "src": "666:18:1" + "src": "706:18:2" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 104, + "id": 205, "name": "IAlgoMiner", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 803, - "src": "686:10:1", + "referencedDeclaration": 1030, + "src": "726:10:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAlgoMiner_$803", + "typeIdentifier": "t_contract$_IAlgoMiner_$1030", "typeString": "contract IAlgoMiner" } }, - "id": 105, + "id": 206, "nodeType": "InheritanceSpecifier", - "src": "686:10:1" + "src": "726:10:2" } ], "contractDependencies": [ - 636, - 86, - 780, - 723, - 803, - 840 + 1002, + 97, + 1030, + 184, + 945, + 858, + 1067 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 549, + "id": 771, "linearizedBaseContracts": [ - 549, - 803, - 636, - 86, - 723, - 780, - 840 + 771, + 1030, + 858, + 184, + 945, + 1002, + 1067, + 97 ], "name": "AlgoMiner", "nodeType": "ContractDefinition", "nodes": [ { - "id": 108, + "id": 209, "libraryName": { "contractScope": null, - "id": 106, + "id": 207, "name": "SafeERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1275, - "src": "710:9:1", + "referencedDeclaration": 1502, + "src": "750:9:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$1275", + "typeIdentifier": "t_contract$_SafeERC20_$1502", "typeString": "library SafeERC20" } }, "nodeType": "UsingForDirective", - "src": "704:27:1", + "src": "744:27:2", "typeName": { "contractScope": null, - "id": 107, + "id": 208, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1131, - "src": "724:6:1", + "referencedDeclaration": 1358, + "src": "764:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" } } }, { "constant": true, - "id": 111, + "id": 212, "name": "DAYS_PER_YEAR", "nodeType": "VariableDeclaration", - "scope": 549, - "src": "739:43:1", + "scope": 771, + "src": "779:43:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2369,10 +3869,10 @@ "typeString": "uint256" }, "typeName": { - "id": 109, + "id": 210, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "739:7:1", + "src": "779:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2381,14 +3881,14 @@ "value": { "argumentTypes": null, "hexValue": "333635", - "id": 110, + "id": 211, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "779:3:1", + "src": "819:3:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_365_by_1", @@ -2399,59 +3899,82 @@ "visibility": "public" }, { - "canonicalName": "AlgoMiner.MinerState", - "id": 116, + "canonicalName": "AlgoMiner.MinerType", + "id": 215, "members": [ { - "id": 112, + "id": 213, + "name": "PoolBased", + "nodeType": "EnumValue", + "src": "857:9:2" + }, + { + "id": 214, + "name": "NonPoolBased", + "nodeType": "EnumValue", + "src": "877:12:2" + } + ], + "name": "MinerType", + "nodeType": "EnumDefinition", + "src": "831:65:2" + }, + { + "canonicalName": "AlgoMiner.MinerState", + "id": 220, + "members": [ + { + "id": 216, "name": "Deactivated", "nodeType": "EnumValue", - "src": "818:11:1" + "src": "931:11:2" }, { - "id": 113, + "id": 217, "name": "Activated", "nodeType": "EnumValue", - "src": "840:9:1" + "src": "953:9:2" }, { - "id": 114, + "id": 218, "name": "Suspended", "nodeType": "EnumValue", - "src": "860:9:1" + "src": "973:9:2" }, { - "id": 115, + "id": 219, "name": "Stopped", "nodeType": "EnumValue", - "src": "880:7:1" + "src": "993:7:2" } ], "name": "MinerState", "nodeType": "EnumDefinition", - "src": "791:103:1" + "src": "904:103:2" }, { "constant": false, - "id": 118, + "id": 222, "name": "_minerType", "nodeType": "VariableDeclaration", - "scope": 549, - "src": "902:25:1", + "scope": 771, + "src": "1015:28:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_enum$_MinerType_$215", + "typeString": "enum AlgoMiner.MinerType" }, "typeName": { - "id": 117, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "902:6:1", + "contractScope": null, + "id": 221, + "name": "MinerType", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 215, + "src": "1015:9:2", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_enum$_MinerType_$215", + "typeString": "enum AlgoMiner.MinerType" } }, "value": null, @@ -2459,11 +3982,11 @@ }, { "constant": false, - "id": 120, + "id": 224, "name": "_category", "nodeType": "VariableDeclaration", - "scope": 549, - "src": "934:23:1", + "scope": 771, + "src": "1050:23:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2471,10 +3994,10 @@ "typeString": "uint8" }, "typeName": { - "id": 119, + "id": 223, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "934:5:1", + "src": "1050:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2485,11 +4008,11 @@ }, { "constant": false, - "id": 122, + "id": 226, "name": "_miner", "nodeType": "VariableDeclaration", - "scope": 549, - "src": "964:22:1", + "scope": 771, + "src": "1080:22:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2497,10 +4020,10 @@ "typeString": "address" }, "typeName": { - "id": 121, + "id": 225, "name": "address", "nodeType": "ElementaryTypeName", - "src": "964:7:1", + "src": "1080:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2511,26 +4034,52 @@ }, { "constant": false, - "id": 124, - "name": "_state", + "id": 228, + "name": "_referral", "nodeType": "VariableDeclaration", - "scope": 549, - "src": "995:25:1", + "scope": 771, + "src": "1109:25:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1109:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 230, + "name": "_state", + "nodeType": "VariableDeclaration", + "scope": 771, + "src": "1143:25:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" }, "typeName": { "contractScope": null, - "id": 123, + "id": 229, "name": "MinerState", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 116, - "src": "995:10:1", + "referencedDeclaration": 220, + "src": "1143:10:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, @@ -2539,11 +4088,11 @@ }, { "constant": false, - "id": 126, + "id": 232, "name": "_mining", "nodeType": "VariableDeclaration", - "scope": 549, - "src": "1027:20:1", + "scope": 771, + "src": "1175:20:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2551,10 +4100,10 @@ "typeString": "bool" }, "typeName": { - "id": 125, + "id": 231, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1027:4:1", + "src": "1175:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2565,11 +4114,11 @@ }, { "constant": false, - "id": 128, + "id": 234, "name": "_currentYear", "nodeType": "VariableDeclaration", - "scope": 549, - "src": "1054:26:1", + "scope": 771, + "src": "1202:26:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2577,10 +4126,10 @@ "typeString": "uint8" }, "typeName": { - "id": 127, + "id": 233, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1054:5:1", + "src": "1202:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2591,11 +4140,11 @@ }, { "constant": false, - "id": 130, + "id": 236, "name": "_currentDay", "nodeType": "VariableDeclaration", - "scope": 549, - "src": "1087:26:1", + "scope": 771, + "src": "1235:26:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2603,10 +4152,10 @@ "typeString": "uint16" }, "typeName": { - "id": 129, + "id": 235, "name": "uint16", "nodeType": "ElementaryTypeName", - "src": "1087:6:1", + "src": "1235:6:2", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -2617,11 +4166,11 @@ }, { "constant": false, - "id": 132, + "id": 238, "name": "_currentYearSupply", "nodeType": "VariableDeclaration", - "scope": 549, - "src": "1120:34:1", + "scope": 771, + "src": "1268:34:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2629,10 +4178,10 @@ "typeString": "uint256" }, "typeName": { - "id": 131, + "id": 237, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1120:7:1", + "src": "1268:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2643,9 +4192,9 @@ }, { "body": { - "id": 174, + "id": 286, "nodeType": "Block", - "src": "1400:173:1", + "src": "1583:218:2", "statements": [ { "expression": { @@ -2657,7 +4206,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 159, + "id": 267, "isConstant": false, "isLValue": false, "isPure": false, @@ -2668,19 +4217,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 155, + "id": 263, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 153, + "id": 261, "name": "category", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 136, - "src": "1429:8:1", + "referencedDeclaration": 242, + "src": "1612:8:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2691,14 +4240,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 154, + "id": 262, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1441:1:1", + "src": "1624:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2706,7 +4255,7 @@ }, "value": "0" }, - "src": "1429:13:1", + "src": "1612:13:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2720,19 +4269,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 158, + "id": 266, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 156, + "id": 264, "name": "category", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 136, - "src": "1446:8:1", + "referencedDeclaration": 242, + "src": "1629:8:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2743,14 +4292,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "35", - "id": 157, + "id": 265, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1458:1:1", + "src": "1641:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -2758,13 +4307,13 @@ }, "value": "5" }, - "src": "1446:13:1", + "src": "1629:13:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1429:30:1", + "src": "1612:30:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2778,1532 +4327,15 @@ "typeString": "bool" } ], - "id": 152, + "id": 260, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1293, - 1294 + 1520, + 1521 ], - "referencedDeclaration": 1293, - "src": "1421:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1421:39:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 161, - "nodeType": "ExpressionStatement", - "src": "1421:39:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 162, - "name": "_minerType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 118, - "src": "1473:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 163, - "name": "minerType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 134, - "src": "1486:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "1473:22:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 165, - "nodeType": "ExpressionStatement", - "src": "1473:22:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 166, - "name": "_category", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 120, - "src": "1506:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 167, - "name": "category", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 136, - "src": "1518:8:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1506:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 169, - "nodeType": "ExpressionStatement", - "src": "1506:20:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 170, - "name": "_miner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 122, - "src": "1537:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 171, - "name": "minerAccountAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "1546:19:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1537:28:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 173, - "nodeType": "ExpressionStatement", - "src": "1537:28:1" - } - ] - }, - "documentation": null, - "id": 175, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 143, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 140, - "src": "1286:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 144, - "modifierName": { - "argumentTypes": null, - "id": 142, - "name": "ERC20TokenHolder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 780, - "src": "1269:16:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20TokenHolder_$780_$", - "typeString": "type(contract ERC20TokenHolder)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1269:30:1" - }, - { - "arguments": [], - "id": 146, - "modifierName": { - "argumentTypes": null, - "id": 145, - "name": "AlgoSystemRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 723, - "src": "1309:14:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_AlgoSystemRole_$723_$", - "typeString": "type(contract AlgoSystemRole)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1309:16:1" - }, - { - "arguments": [], - "id": 148, - "modifierName": { - "argumentTypes": null, - "id": 147, - "name": "AlgoCoreTeamRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 86, - "src": "1335:16:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_AlgoCoreTeamRole_$86_$", - "typeString": "type(contract AlgoCoreTeamRole)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1335:18:1" - }, - { - "arguments": [], - "id": 150, - "modifierName": { - "argumentTypes": null, - "id": 149, - "name": "AlgoSupervisorRole", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 636, - "src": "1363:18:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_AlgoSupervisorRole_$636_$", - "typeString": "type(contract AlgoSupervisorRole)" - } - }, - "nodeType": "ModifierInvocation", - "src": "1363:20:1" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 141, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 134, - "name": "minerType", - "nodeType": "VariableDeclaration", - "scope": 175, - "src": "1175:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 133, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1175:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 136, - "name": "category", - "nodeType": "VariableDeclaration", - "scope": 175, - "src": "1193:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 135, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1193:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 138, - "name": "minerAccountAddress", - "nodeType": "VariableDeclaration", - "scope": 175, - "src": "1209:27:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 137, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1209:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 140, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 175, - "src": "1238:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 139, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1238:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1174:85:1" - }, - "payable": false, - "returnParameters": { - "id": 151, - "nodeType": "ParameterList", - "parameters": [], - "src": "1400:0:1" - }, - "scope": 549, - "src": "1163:410:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 185, - "nodeType": "Block", - "src": "1602:60:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 181, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 178, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1290, - "src": "1621:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1621:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 180, - "name": "_miner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 122, - "src": "1635:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1621:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 177, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1293, - 1294 - ], - "referencedDeclaration": 1293, - "src": "1613:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1613:29:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 183, - "nodeType": "ExpressionStatement", - "src": "1613:29:1" - }, - { - "id": 184, - "nodeType": "PlaceholderStatement", - "src": "1653:1:1" - } - ] - }, - "documentation": null, - "id": 186, - "name": "onlyMiner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 176, - "nodeType": "ParameterList", - "parameters": [], - "src": "1599:2:1" - }, - "src": "1581:81:1", - "visibility": "internal" - }, - { - "body": { - "id": 231, - "nodeType": "Block", - "src": "1733:326:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MinerState_$116", - "typeString": "enum AlgoMiner.MinerState" - }, - "id": 197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 194, - "name": "_state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "1752:6:1", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", - "typeString": "enum AlgoMiner.MinerState" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 195, - "name": "MinerState", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "1762:10:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MinerState_$116_$", - "typeString": "type(enum AlgoMiner.MinerState)" - } - }, - "id": 196, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Deactivated", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1762:22:1", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", - "typeString": "enum AlgoMiner.MinerState" - } - }, - "src": "1752:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 193, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1293, - 1294 - ], - "referencedDeclaration": 1293, - "src": "1744:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1744:41:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 199, - "nodeType": "ExpressionStatement", - "src": "1744:41:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 200, - "name": "_currentYearSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 132, - "src": "1801:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1823:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1801:23:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 225, - "nodeType": "IfStatement", - "src": "1798:212:1", - "trueBody": { - "id": 224, - "nodeType": "Block", - "src": "1826:184:1", - "statements": [ - { - "assignments": [ - 204 - ], - "declarations": [ - { - "constant": false, - "id": 204, - "name": "currentBalance", - "nodeType": "VariableDeclaration", - "scope": 232, - "src": "1841:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 203, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1841:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 211, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 208, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "1891:4:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AlgoMiner_$549", - "typeString": "contract AlgoMiner" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_AlgoMiner_$549", - "typeString": "contract AlgoMiner" - } - ], - "id": 207, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1883:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1883:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 205, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 735, - "src": "1866:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", - "typeString": "contract IERC20" - } - }, - "id": 206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 1076, - "src": "1866:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1866:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1841:56:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 213, - "name": "currentBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 204, - "src": "1922:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 214, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1940:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1922:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1293, - 1294 - ], - "referencedDeclaration": 1293, - "src": "1914:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1914:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 217, - "nodeType": "ExpressionStatement", - "src": "1914:28:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 218, - "name": "_currentYearSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 132, - "src": "1959:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 219, - "name": "currentBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 204, - "src": "1980:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 220, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1997:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "1980:18:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1959:39:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 223, - "nodeType": "ExpressionStatement", - "src": "1959:39:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 226, - "name": "_state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "2022:6:1", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", - "typeString": "enum AlgoMiner.MinerState" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 227, - "name": "MinerState", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "2031:10:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MinerState_$116_$", - "typeString": "type(enum AlgoMiner.MinerState)" - } - }, - "id": 228, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Activated", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2031:20:1", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", - "typeString": "enum AlgoMiner.MinerState" - } - }, - "src": "2022:29:1", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", - "typeString": "enum AlgoMiner.MinerState" - } - }, - "id": 230, - "nodeType": "ExpressionStatement", - "src": "2022:29:1" - } - ] - }, - "documentation": null, - "id": 232, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 189, - "modifierName": { - "argumentTypes": null, - "id": 188, - "name": "notTerminated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 831, - "src": "1706:13:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1706:13:1" - }, - { - "arguments": null, - "id": 191, - "modifierName": { - "argumentTypes": null, - "id": 190, - "name": "onlyCoreTeam", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27, - "src": "1720:12:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1720:12:1" - } - ], - "name": "activateMiner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 187, - "nodeType": "ParameterList", - "parameters": [], - "src": "1696:2:1" - }, - "payable": false, - "returnParameters": { - "id": 192, - "nodeType": "ParameterList", - "parameters": [], - "src": "1733:0:1" - }, - "scope": 549, - "src": "1674:385:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 255, - "nodeType": "Block", - "src": "2128:138:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MinerState_$116", - "typeString": "enum AlgoMiner.MinerState" - }, - "id": 243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 240, - "name": "_state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "2147:6:1", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", - "typeString": "enum AlgoMiner.MinerState" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 241, - "name": "MinerState", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "2157:10:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MinerState_$116_$", - "typeString": "type(enum AlgoMiner.MinerState)" - } - }, - "id": 242, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Deactivated", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2157:22:1", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", - "typeString": "enum AlgoMiner.MinerState" - } - }, - "src": "2147:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 239, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1293, - 1294 - ], - "referencedDeclaration": 1293, - "src": "2139:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2139:41:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 245, - "nodeType": "ExpressionStatement", - "src": "2139:41:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 246, - "name": "_state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "2201:6:1", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", - "typeString": "enum AlgoMiner.MinerState" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 247, - "name": "MinerState", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "2210:10:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MinerState_$116_$", - "typeString": "type(enum AlgoMiner.MinerState)" - } - }, - "id": 248, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Deactivated", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2210:22:1", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", - "typeString": "enum AlgoMiner.MinerState" - } - }, - "src": "2201:31:1", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", - "typeString": "enum AlgoMiner.MinerState" - } - }, - "id": 250, - "nodeType": "ExpressionStatement", - "src": "2201:31:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 251, - "name": "_mining", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 126, - "src": "2243:7:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2253:5:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "2243:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 254, - "nodeType": "ExpressionStatement", - "src": "2243:15:1" - } - ] - }, - "documentation": null, - "id": 256, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 235, - "modifierName": { - "argumentTypes": null, - "id": 234, - "name": "notTerminated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 831, - "src": "2101:13:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2101:13:1" - }, - { - "arguments": null, - "id": 237, - "modifierName": { - "argumentTypes": null, - "id": 236, - "name": "onlyCoreTeam", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27, - "src": "2115:12:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2115:12:1" - } - ], - "name": "deactivateMiner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 233, - "nodeType": "ParameterList", - "parameters": [], - "src": "2091:2:1" - }, - "payable": false, - "returnParameters": { - "id": 238, - "nodeType": "ParameterList", - "parameters": [], - "src": "2128:0:1" - }, - "scope": 549, - "src": "2067:199:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 282, - "nodeType": "Block", - "src": "2399:142:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_MinerState_$116", - "typeString": "enum AlgoMiner.MinerState" - }, - "id": 267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 264, - "name": "_state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "2418:6:1", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", - "typeString": "enum AlgoMiner.MinerState" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 265, - "name": "MinerState", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "2428:10:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MinerState_$116_$", - "typeString": "type(enum AlgoMiner.MinerState)" - } - }, - "id": 266, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Deactivated", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2428:22:1", - "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", - "typeString": "enum AlgoMiner.MinerState" - } - }, - "src": "2418:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 263, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1293, - 1294 - ], - "referencedDeclaration": 1293, - "src": "2410:7:1", + "referencedDeclaration": 1520, + "src": "1604:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" @@ -4317,7 +4349,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2410:41:1", + "src": "1604:39:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" @@ -4325,7 +4357,1913 @@ }, "id": 269, "nodeType": "ExpressionStatement", - "src": "2410:41:1" + "src": "1604:39:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 270, + "name": "_minerType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 222, + "src": "1656:10:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerType_$215", + "typeString": "enum AlgoMiner.MinerType" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 271, + "name": "minerType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 240, + "src": "1669:9:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerType_$215", + "typeString": "enum AlgoMiner.MinerType" + } + }, + "src": "1656:22:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerType_$215", + "typeString": "enum AlgoMiner.MinerType" + } + }, + "id": 273, + "nodeType": "ExpressionStatement", + "src": "1656:22:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 274, + "name": "_category", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 224, + "src": "1689:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 275, + "name": "category", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 242, + "src": "1701:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1689:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 277, + "nodeType": "ExpressionStatement", + "src": "1689:20:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 278, + "name": "_miner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 226, + "src": "1720:6:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 279, + "name": "minerAccountAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 244, + "src": "1729:19:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1720:28:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 281, + "nodeType": "ExpressionStatement", + "src": "1720:28:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 282, + "name": "_referral", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 228, + "src": "1759:9:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 283, + "name": "referralAccountAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "1771:22:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1759:34:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 285, + "nodeType": "ExpressionStatement", + "src": "1759:34:2" + } + ] + }, + "documentation": null, + "id": 287, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 251, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 248, + "src": "1469:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 252, + "modifierName": { + "argumentTypes": null, + "id": 250, + "name": "ERC20TokenHolder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1002, + "src": "1452:16:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20TokenHolder_$1002_$", + "typeString": "type(contract ERC20TokenHolder)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1452:30:2" + }, + { + "arguments": [], + "id": 254, + "modifierName": { + "argumentTypes": null, + "id": 253, + "name": "AlgoSystemRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 945, + "src": "1492:14:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_AlgoSystemRole_$945_$", + "typeString": "type(contract AlgoSystemRole)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1492:16:2" + }, + { + "arguments": [], + "id": 256, + "modifierName": { + "argumentTypes": null, + "id": 255, + "name": "AlgoCoreTeamRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 184, + "src": "1518:16:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_AlgoCoreTeamRole_$184_$", + "typeString": "type(contract AlgoCoreTeamRole)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1518:18:2" + }, + { + "arguments": [], + "id": 258, + "modifierName": { + "argumentTypes": null, + "id": 257, + "name": "AlgoSupervisorRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 858, + "src": "1546:18:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_AlgoSupervisorRole_$858_$", + "typeString": "type(contract AlgoSupervisorRole)" + } + }, + "nodeType": "ModifierInvocation", + "src": "1546:20:2" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 249, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 240, + "name": "minerType", + "nodeType": "VariableDeclaration", + "scope": 287, + "src": "1323:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerType_$215", + "typeString": "enum AlgoMiner.MinerType" + }, + "typeName": { + "contractScope": null, + "id": 239, + "name": "MinerType", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 215, + "src": "1323:9:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerType_$215", + "typeString": "enum AlgoMiner.MinerType" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 242, + "name": "category", + "nodeType": "VariableDeclaration", + "scope": 287, + "src": "1344:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 241, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1344:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 244, + "name": "minerAccountAddress", + "nodeType": "VariableDeclaration", + "scope": 287, + "src": "1360:27:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 243, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1360:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 246, + "name": "referralAccountAddress", + "nodeType": "VariableDeclaration", + "scope": 287, + "src": "1389:30:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1389:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 248, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 287, + "src": "1421:20:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1421:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1322:120:2" + }, + "payable": false, + "returnParameters": { + "id": 259, + "nodeType": "ParameterList", + "parameters": [], + "src": "1583:0:2" + }, + "scope": 771, + "src": "1311:490:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 297, + "nodeType": "Block", + "src": "1830:60:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 290, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1517, + "src": "1849:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1849:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 292, + "name": "_miner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 226, + "src": "1863:6:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1849:20:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 289, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1520, + 1521 + ], + "referencedDeclaration": 1520, + "src": "1841:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1841:29:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 295, + "nodeType": "ExpressionStatement", + "src": "1841:29:2" + }, + { + "id": 296, + "nodeType": "PlaceholderStatement", + "src": "1881:1:2" + } + ] + }, + "documentation": null, + "id": 298, + "name": "onlyMiner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 288, + "nodeType": "ParameterList", + "parameters": [], + "src": "1827:2:2" + }, + "src": "1809:81:2", + "visibility": "internal" + }, + { + "body": { + "id": 364, + "nodeType": "Block", + "src": "1961:512:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_MinerState_$220", + "typeString": "enum AlgoMiner.MinerState" + }, + "id": 309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 306, + "name": "_state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 230, + "src": "1980:6:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerState_$220", + "typeString": "enum AlgoMiner.MinerState" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 307, + "name": "MinerState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 220, + "src": "1990:10:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", + "typeString": "type(enum AlgoMiner.MinerState)" + } + }, + "id": 308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Deactivated", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1990:22:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerState_$220", + "typeString": "enum AlgoMiner.MinerState" + } + }, + "src": "1980:32:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 305, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1520, + 1521 + ], + "referencedDeclaration": 1520, + "src": "1972:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1972:41:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 311, + "nodeType": "ExpressionStatement", + "src": "1972:41:2" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_MinerType_$215", + "typeString": "enum AlgoMiner.MinerType" + }, + "id": 315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 312, + "name": "_minerType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 222, + "src": "2029:10:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerType_$215", + "typeString": "enum AlgoMiner.MinerType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 313, + "name": "MinerType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "2043:9:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MinerType_$215_$", + "typeString": "type(enum AlgoMiner.MinerType)" + } + }, + "id": 314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "PoolBased", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2043:19:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerType_$215", + "typeString": "enum AlgoMiner.MinerType" + } + }, + "src": "2029:33:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 316, + "name": "_currentYearSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 238, + "src": "2066:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 317, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2088:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2066:23:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2029:60:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 358, + "nodeType": "IfStatement", + "src": "2026:398:2", + "trueBody": { + "id": 357, + "nodeType": "Block", + "src": "2091:333:2", + "statements": [ + { + "assignments": [ + 321 + ], + "declarations": [ + { + "constant": false, + "id": 321, + "name": "capacity", + "nodeType": "VariableDeclaration", + "scope": 365, + "src": "2108:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 320, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2108:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 325, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 323, + "name": "_category", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 224, + "src": "2149:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 322, + "name": "getCapacityByCategory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "2127:21:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_uint256_$", + "typeString": "function (uint8) pure returns (uint256)" + } + }, + "id": 324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2127:32:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2108:51:2" + }, + { + "assignments": [ + 327 + ], + "declarations": [ + { + "constant": false, + "id": 327, + "name": "expectedBalance", + "nodeType": "VariableDeclaration", + "scope": 365, + "src": "2174:23:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 326, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2174:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 335, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 328, + "name": "capacity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 321, + "src": "2200:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 329, + "name": "capacity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 321, + "src": "2211:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2222:2:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "2211:13:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 332, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2227:3:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "2211:19:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2200:30:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2174:56:2" + }, + { + "assignments": [ + 337 + ], + "declarations": [ + { + "constant": false, + "id": 337, + "name": "currentBalance", + "nodeType": "VariableDeclaration", + "scope": 365, + "src": "2247:22:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 336, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2247:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 344, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 341, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1552, + "src": "2297:4:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AlgoMiner_$771", + "typeString": "contract AlgoMiner" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_AlgoMiner_$771", + "typeString": "contract AlgoMiner" + } + ], + "id": 340, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2289:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2289:13:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 338, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 957, + "src": "2272:6:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1358", + "typeString": "contract IERC20" + } + }, + "id": 339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1303, + "src": "2272:16:2", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2272:31:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2247:56:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 346, + "name": "currentBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "2328:14:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 347, + "name": "expectedBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 327, + "src": "2346:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2328:33:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 345, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1520, + 1521 + ], + "referencedDeclaration": 1520, + "src": "2320:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2320:42:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 350, + "nodeType": "ExpressionStatement", + "src": "2320:42:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 351, + "name": "_currentYearSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 238, + "src": "2379:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 352, + "name": "capacity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 321, + "src": "2400:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2411:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "2400:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2379:33:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 356, + "nodeType": "ExpressionStatement", + "src": "2379:33:2" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 359, + "name": "_state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 230, + "src": "2436:6:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerState_$220", + "typeString": "enum AlgoMiner.MinerState" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 360, + "name": "MinerState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 220, + "src": "2445:10:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", + "typeString": "type(enum AlgoMiner.MinerState)" + } + }, + "id": 361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Activated", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2445:20:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerState_$220", + "typeString": "enum AlgoMiner.MinerState" + } + }, + "src": "2436:29:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerState_$220", + "typeString": "enum AlgoMiner.MinerState" + } + }, + "id": 363, + "nodeType": "ExpressionStatement", + "src": "2436:29:2" + } + ] + }, + "documentation": null, + "id": 365, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 301, + "modifierName": { + "argumentTypes": null, + "id": 300, + "name": "notTerminated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1058, + "src": "1934:13:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1934:13:2" + }, + { + "arguments": null, + "id": 303, + "modifierName": { + "argumentTypes": null, + "id": 302, + "name": "onlyCoreTeam", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "1948:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1948:12:2" + } + ], + "name": "activateMiner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 299, + "nodeType": "ParameterList", + "parameters": [], + "src": "1924:2:2" + }, + "payable": false, + "returnParameters": { + "id": 304, + "nodeType": "ParameterList", + "parameters": [], + "src": "1961:0:2" + }, + "scope": 771, + "src": "1902:571:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 388, + "nodeType": "Block", + "src": "2542:138:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_MinerState_$220", + "typeString": "enum AlgoMiner.MinerState" + }, + "id": 376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 373, + "name": "_state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 230, + "src": "2561:6:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerState_$220", + "typeString": "enum AlgoMiner.MinerState" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 374, + "name": "MinerState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 220, + "src": "2571:10:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", + "typeString": "type(enum AlgoMiner.MinerState)" + } + }, + "id": 375, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Deactivated", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2571:22:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerState_$220", + "typeString": "enum AlgoMiner.MinerState" + } + }, + "src": "2561:32:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 372, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1520, + 1521 + ], + "referencedDeclaration": 1520, + "src": "2553:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2553:41:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 378, + "nodeType": "ExpressionStatement", + "src": "2553:41:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 379, + "name": "_state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 230, + "src": "2615:6:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerState_$220", + "typeString": "enum AlgoMiner.MinerState" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 380, + "name": "MinerState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 220, + "src": "2624:10:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", + "typeString": "type(enum AlgoMiner.MinerState)" + } + }, + "id": 381, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Deactivated", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2624:22:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerState_$220", + "typeString": "enum AlgoMiner.MinerState" + } + }, + "src": "2615:31:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerState_$220", + "typeString": "enum AlgoMiner.MinerState" + } + }, + "id": 383, + "nodeType": "ExpressionStatement", + "src": "2615:31:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 384, + "name": "_mining", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "2657:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 385, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2667:5:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2657:15:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 387, + "nodeType": "ExpressionStatement", + "src": "2657:15:2" + } + ] + }, + "documentation": null, + "id": 389, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 368, + "modifierName": { + "argumentTypes": null, + "id": 367, + "name": "notTerminated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1058, + "src": "2515:13:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2515:13:2" + }, + { + "arguments": null, + "id": 370, + "modifierName": { + "argumentTypes": null, + "id": 369, + "name": "onlyCoreTeam", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "2529:12:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2529:12:2" + } + ], + "name": "deactivateMiner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 366, + "nodeType": "ParameterList", + "parameters": [], + "src": "2505:2:2" + }, + "payable": false, + "returnParameters": { + "id": 371, + "nodeType": "ParameterList", + "parameters": [], + "src": "2542:0:2" + }, + "scope": 771, + "src": "2481:199:2", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 415, + "nodeType": "Block", + "src": "2755:142:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_MinerState_$220", + "typeString": "enum AlgoMiner.MinerState" + }, + "id": 400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 397, + "name": "_state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 230, + "src": "2774:6:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerState_$220", + "typeString": "enum AlgoMiner.MinerState" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 398, + "name": "MinerState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 220, + "src": "2784:10:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", + "typeString": "type(enum AlgoMiner.MinerState)" + } + }, + "id": 399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Deactivated", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2784:22:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerState_$220", + "typeString": "enum AlgoMiner.MinerState" + } + }, + "src": "2774:32:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 396, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1520, + 1521 + ], + "referencedDeclaration": 1520, + "src": "2766:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2766:41:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 402, + "nodeType": "ExpressionStatement", + "src": "2766:41:2" }, { "expression": { @@ -4333,12 +6271,12 @@ "arguments": [ { "argumentTypes": null, - "id": 273, + "id": 406, "name": "newMinerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 258, - "src": "2484:15:1", + "referencedDeclaration": 391, + "src": "2840:15:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4352,14 +6290,14 @@ "arguments": [ { "argumentTypes": null, - "id": 277, + "id": 410, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1323, - "src": "2526:4:1", + "referencedDeclaration": 1552, + "src": "2882:4:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_AlgoMiner_$549", + "typeIdentifier": "t_contract$_AlgoMiner_$771", "typeString": "contract AlgoMiner" } } @@ -4367,24 +6305,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_AlgoMiner_$549", + "typeIdentifier": "t_contract$_AlgoMiner_$771", "typeString": "contract AlgoMiner" } ], - "id": 276, + "id": 409, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2518:7:1", + "src": "2874:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 278, + "id": 411, "isConstant": false, "isLValue": false, "isPure": false, @@ -4392,7 +6330,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2518:13:1", + "src": "2874:13:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4408,32 +6346,32 @@ ], "expression": { "argumentTypes": null, - "id": 274, + "id": 407, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 735, - "src": "2501:6:1", + "referencedDeclaration": 957, + "src": "2857:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" } }, - "id": 275, + "id": 408, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 1076, - "src": "2501:16:1", + "referencedDeclaration": 1303, + "src": "2857:16:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 279, + "id": 412, "isConstant": false, "isLValue": false, "isPure": false, @@ -4441,7 +6379,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2501:31:1", + "src": "2857:31:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4461,32 +6399,32 @@ ], "expression": { "argumentTypes": null, - "id": 270, + "id": 403, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 735, - "src": "2464:6:1", + "referencedDeclaration": 957, + "src": "2820:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" } }, - "id": 272, + "id": 405, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 1156, - "src": "2464:19:1", + "referencedDeclaration": 1383, + "src": "2820:19:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1131_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$1131_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1358_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$1358_$", "typeString": "function (contract IERC20,address,uint256)" } }, - "id": 280, + "id": 413, "isConstant": false, "isLValue": false, "isPure": false, @@ -4494,57 +6432,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2464:69:1", + "src": "2820:69:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 281, + "id": 414, "nodeType": "ExpressionStatement", - "src": "2464:69:1" + "src": "2820:69:2" } ] }, "documentation": null, - "id": 283, + "id": 416, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 261, + "id": 394, "modifierName": { "argumentTypes": null, - "id": 260, + "id": 393, "name": "onlyCoreTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27, - "src": "2386:12:1", + "referencedDeclaration": 125, + "src": "2742:12:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2386:12:1" + "src": "2742:12:2" } ], "name": "migrateMiner", "nodeType": "FunctionDefinition", "parameters": { - "id": 259, + "id": 392, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 258, + "id": 391, "name": "newMinerAddress", "nodeType": "VariableDeclaration", - "scope": 283, - "src": "2354:23:1", + "scope": 416, + "src": "2710:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4552,10 +6490,10 @@ "typeString": "address" }, "typeName": { - "id": 257, + "id": 390, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2354:7:1", + "src": "2710:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4565,26 +6503,26 @@ "visibility": "internal" } ], - "src": "2353:25:1" + "src": "2709:25:2" }, "payable": false, "returnParameters": { - "id": 262, + "id": 395, "nodeType": "ParameterList", "parameters": [], - "src": "2399:0:1" + "src": "2755:0:2" }, - "scope": 549, - "src": "2332:209:1", + "scope": 771, + "src": "2688:209:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 302, + "id": 435, "nodeType": "Block", - "src": "2608:108:1", + "src": "2964:108:2", "statements": [ { "expression": { @@ -4593,24 +6531,24 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" }, - "id": 294, + "id": 427, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 291, + "id": 424, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "2627:6:1", + "referencedDeclaration": 230, + "src": "2983:6:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, @@ -4620,18 +6558,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 292, + "id": 425, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "2637:10:1", + "referencedDeclaration": 220, + "src": "2993:10:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MinerState_$116_$", + "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 293, + "id": 426, "isConstant": false, "isLValue": false, "isPure": true, @@ -4639,13 +6577,13 @@ "memberName": "Activated", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2637:20:1", + "src": "2993:20:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "2627:30:1", + "src": "2983:30:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4659,21 +6597,21 @@ "typeString": "bool" } ], - "id": 290, + "id": 423, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1293, - 1294 + 1520, + 1521 ], - "referencedDeclaration": 1293, - "src": "2619:7:1", + "referencedDeclaration": 1520, + "src": "2975:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 295, + "id": 428, "isConstant": false, "isLValue": false, "isPure": false, @@ -4681,34 +6619,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2619:39:1", + "src": "2975:39:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 296, + "id": 429, "nodeType": "ExpressionStatement", - "src": "2619:39:1" + "src": "2975:39:2" }, { "expression": { "argumentTypes": null, - "id": 300, + "id": 433, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 297, + "id": 430, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "2679:6:1", + "referencedDeclaration": 230, + "src": "3035:6:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, @@ -4718,18 +6656,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 298, + "id": 431, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "2688:10:1", + "referencedDeclaration": 220, + "src": "3044:10:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MinerState_$116_$", + "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 299, + "id": 432, "isConstant": false, "isLValue": false, "isPure": true, @@ -4737,95 +6675,95 @@ "memberName": "Suspended", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2688:20:1", + "src": "3044:20:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "2679:29:1", + "src": "3035:29:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "id": 301, + "id": 434, "nodeType": "ExpressionStatement", - "src": "2679:29:1" + "src": "3035:29:2" } ] }, "documentation": null, - "id": 303, + "id": 436, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 286, + "id": 419, "modifierName": { "argumentTypes": null, - "id": 285, + "id": 418, "name": "notTerminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 831, - "src": "2579:13:1", + "referencedDeclaration": 1058, + "src": "2935:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2579:13:1" + "src": "2935:13:2" }, { "arguments": null, - "id": 288, + "id": 421, "modifierName": { "argumentTypes": null, - "id": 287, + "id": 420, "name": "onlySupervisor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "2593:14:1", + "referencedDeclaration": 799, + "src": "2949:14:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2593:14:1" + "src": "2949:14:2" } ], "name": "pauseMining", "nodeType": "FunctionDefinition", "parameters": { - "id": 284, + "id": 417, "nodeType": "ParameterList", "parameters": [], - "src": "2569:2:1" + "src": "2925:2:2" }, "payable": false, "returnParameters": { - "id": 289, + "id": 422, "nodeType": "ParameterList", "parameters": [], - "src": "2608:0:1" + "src": "2964:0:2" }, - "scope": 549, - "src": "2549:167:1", + "scope": 771, + "src": "2905:167:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 322, + "id": 455, "nodeType": "Block", - "src": "2784:100:1", + "src": "3140:100:2", "statements": [ { "expression": { @@ -4834,24 +6772,24 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" }, - "id": 314, + "id": 447, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 311, + "id": 444, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "2803:6:1", + "referencedDeclaration": 230, + "src": "3159:6:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, @@ -4861,18 +6799,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 312, + "id": 445, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "2813:10:1", + "referencedDeclaration": 220, + "src": "3169:10:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MinerState_$116_$", + "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 313, + "id": 446, "isConstant": false, "isLValue": false, "isPure": true, @@ -4880,13 +6818,13 @@ "memberName": "Suspended", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2813:20:1", + "src": "3169:20:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "2803:30:1", + "src": "3159:30:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4900,21 +6838,21 @@ "typeString": "bool" } ], - "id": 310, + "id": 443, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1293, - 1294 + 1520, + 1521 ], - "referencedDeclaration": 1293, - "src": "2795:7:1", + "referencedDeclaration": 1520, + "src": "3151:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 315, + "id": 448, "isConstant": false, "isLValue": false, "isPure": false, @@ -4922,34 +6860,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2795:39:1", + "src": "3151:39:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 316, + "id": 449, "nodeType": "ExpressionStatement", - "src": "2795:39:1" + "src": "3151:39:2" }, { "expression": { "argumentTypes": null, - "id": 320, + "id": 453, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 317, + "id": 450, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "2847:6:1", + "referencedDeclaration": 230, + "src": "3203:6:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, @@ -4959,18 +6897,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 318, + "id": 451, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "2856:10:1", + "referencedDeclaration": 220, + "src": "3212:10:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MinerState_$116_$", + "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 319, + "id": 452, "isConstant": false, "isLValue": false, "isPure": true, @@ -4978,95 +6916,95 @@ "memberName": "Activated", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2856:20:1", + "src": "3212:20:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "2847:29:1", + "src": "3203:29:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "id": 321, + "id": 454, "nodeType": "ExpressionStatement", - "src": "2847:29:1" + "src": "3203:29:2" } ] }, "documentation": null, - "id": 323, + "id": 456, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 306, + "id": 439, "modifierName": { "argumentTypes": null, - "id": 305, + "id": 438, "name": "notTerminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 831, - "src": "2755:13:1", + "referencedDeclaration": 1058, + "src": "3111:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2755:13:1" + "src": "3111:13:2" }, { "arguments": null, - "id": 308, + "id": 441, "modifierName": { "argumentTypes": null, - "id": 307, + "id": 440, "name": "onlySupervisor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "2769:14:1", + "referencedDeclaration": 799, + "src": "3125:14:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2769:14:1" + "src": "3125:14:2" } ], "name": "resumeMining", "nodeType": "FunctionDefinition", "parameters": { - "id": 304, + "id": 437, "nodeType": "ParameterList", "parameters": [], - "src": "2745:2:1" + "src": "3101:2:2" }, "payable": false, "returnParameters": { - "id": 309, + "id": 442, "nodeType": "ParameterList", "parameters": [], - "src": "2784:0:1" + "src": "3140:0:2" }, - "scope": 549, - "src": "2724:160:1", + "scope": 771, + "src": "3080:160:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 352, + "id": 491, "nodeType": "Block", - "src": "2962:160:1", + "src": "3318:193:2", "statements": [ { "expression": { @@ -5075,24 +7013,24 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" }, - "id": 334, + "id": 467, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 331, + "id": 464, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "2981:6:1", + "referencedDeclaration": 230, + "src": "3337:6:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, @@ -5102,18 +7040,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 332, + "id": 465, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "2991:10:1", + "referencedDeclaration": 220, + "src": "3347:10:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MinerState_$116_$", + "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 333, + "id": 466, "isConstant": false, "isLValue": false, "isPure": true, @@ -5121,13 +7059,13 @@ "memberName": "Stopped", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2991:18:1", + "src": "3347:18:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "2981:28:1", + "src": "3337:28:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5141,21 +7079,21 @@ "typeString": "bool" } ], - "id": 330, + "id": 463, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1293, - 1294 + 1520, + 1521 ], - "referencedDeclaration": 1293, - "src": "2973:7:1", + "referencedDeclaration": 1520, + "src": "3329:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 335, + "id": 468, "isConstant": false, "isLValue": false, "isPure": false, @@ -5163,34 +7101,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2973:37:1", + "src": "3329:37:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 336, + "id": 469, "nodeType": "ExpressionStatement", - "src": "2973:37:1" + "src": "3329:37:2" }, { "expression": { "argumentTypes": null, - "id": 340, + "id": 473, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 337, + "id": 470, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "3031:6:1", + "referencedDeclaration": 230, + "src": "3387:6:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, @@ -5200,18 +7138,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 338, + "id": 471, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "3040:10:1", + "referencedDeclaration": 220, + "src": "3396:10:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MinerState_$116_$", + "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 339, + "id": 472, "isConstant": false, "isLValue": false, "isPure": true, @@ -5219,38 +7157,38 @@ "memberName": "Stopped", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3040:18:1", + "src": "3396:18:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "3031:27:1", + "src": "3387:27:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "id": 341, + "id": 474, "nodeType": "ExpressionStatement", - "src": "3031:27:1" + "src": "3387:27:2" }, { "expression": { "argumentTypes": null, - "id": 344, + "id": 477, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 342, + "id": 475, "name": "_mining", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 126, - "src": "3069:7:1", + "referencedDeclaration": 232, + "src": "3425:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5261,14 +7199,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 343, + "id": 476, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3079:5:1", + "src": "3435:5:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5276,32 +7214,32 @@ }, "value": "false" }, - "src": "3069:15:1", + "src": "3425:15:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 345, + "id": 478, "nodeType": "ExpressionStatement", - "src": "3069:15:1" + "src": "3425:15:2" }, { "expression": { "argumentTypes": null, - "id": 350, + "id": 483, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 346, + "id": 479, "name": "_miner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 122, - "src": "3095:6:1", + "referencedDeclaration": 226, + "src": "3451:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5315,14 +7253,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 348, + "id": 481, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3112:1:1", + "src": "3468:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5338,20 +7276,20 @@ "typeString": "int_const 0" } ], - "id": 347, + "id": 480, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3104:7:1", + "src": "3460:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 349, + "id": 482, "isConstant": false, "isLValue": false, "isPure": true, @@ -5359,95 +7297,184 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3104:10:1", + "src": "3460:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3095:19:1", + "src": "3451:19:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 351, + "id": 484, "nodeType": "ExpressionStatement", - "src": "3095:19:1" + "src": "3451:19:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 485, + "name": "_referral", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 228, + "src": "3481:9:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 487, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3501:1:2", + "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": 486, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3493:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 488, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3493:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3481:22:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 490, + "nodeType": "ExpressionStatement", + "src": "3481:22:2" } ] }, "documentation": null, - "id": 353, + "id": 492, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 326, + "id": 459, "modifierName": { "argumentTypes": null, - "id": 325, + "id": 458, "name": "notTerminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 831, - "src": "2933:13:1", + "referencedDeclaration": 1058, + "src": "3289:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2933:13:1" + "src": "3289:13:2" }, { "arguments": null, - "id": 328, + "id": 461, "modifierName": { "argumentTypes": null, - "id": 327, + "id": 460, "name": "onlySupervisor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "2947:14:1", + "referencedDeclaration": 799, + "src": "3303:14:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2947:14:1" + "src": "3303:14:2" } ], "name": "stopAndRemoveOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 324, + "id": 457, "nodeType": "ParameterList", "parameters": [], - "src": "2923:2:1" + "src": "3279:2:2" }, "payable": false, "returnParameters": { - "id": 329, + "id": 462, "nodeType": "ParameterList", "parameters": [], - "src": "2962:0:1" + "src": "3318:0:2" }, - "scope": 549, - "src": "2892:230:1", + "scope": 771, + "src": "3248:263:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 378, + "id": 523, "nodeType": "Block", - "src": "3211:133:1", + "src": "3628:174:2", "statements": [ { "expression": { @@ -5456,24 +7483,24 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" }, - "id": 366, + "id": 507, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 363, + "id": 504, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "3230:6:1", + "referencedDeclaration": 230, + "src": "3647:6:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, @@ -5483,18 +7510,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 364, + "id": 505, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "3240:10:1", + "referencedDeclaration": 220, + "src": "3657:10:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MinerState_$116_$", + "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 365, + "id": 506, "isConstant": false, "isLValue": false, "isPure": true, @@ -5502,13 +7529,13 @@ "memberName": "Stopped", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3240:18:1", + "src": "3657:18:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "3230:28:1", + "src": "3647:28:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5522,21 +7549,21 @@ "typeString": "bool" } ], - "id": 362, + "id": 503, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1293, - 1294 + 1520, + 1521 ], - "referencedDeclaration": 1293, - "src": "3222:7:1", + "referencedDeclaration": 1520, + "src": "3639:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 367, + "id": 508, "isConstant": false, "isLValue": false, "isPure": false, @@ -5544,34 +7571,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3222:37:1", + "src": "3639:37:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 368, + "id": 509, "nodeType": "ExpressionStatement", - "src": "3222:37:1" + "src": "3639:37:2" }, { "expression": { "argumentTypes": null, - "id": 372, + "id": 513, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 369, + "id": 510, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "3272:6:1", + "referencedDeclaration": 230, + "src": "3689:6:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, @@ -5581,18 +7608,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 370, + "id": 511, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "3281:10:1", + "referencedDeclaration": 220, + "src": "3698:10:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MinerState_$116_$", + "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 371, + "id": 512, "isConstant": false, "isLValue": false, "isPure": true, @@ -5600,38 +7627,38 @@ "memberName": "Activated", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3281:20:1", + "src": "3698:20:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "3272:29:1", + "src": "3689:29:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "id": 373, + "id": 514, "nodeType": "ExpressionStatement", - "src": "3272:29:1" + "src": "3689:29:2" }, { "expression": { "argumentTypes": null, - "id": 376, + "id": 517, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 374, + "id": 515, "name": "_miner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 122, - "src": "3312:6:1", + "referencedDeclaration": 226, + "src": "3729:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5641,87 +7668,133 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 375, + "id": 516, "name": "newOwnerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 355, - "src": "3321:15:1", + "referencedDeclaration": 494, + "src": "3738:15:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3312:24:1", + "src": "3729:24:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 377, + "id": 518, "nodeType": "ExpressionStatement", - "src": "3312:24:1" + "src": "3729:24:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 519, + "name": "_referral", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 228, + "src": "3764:9:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 520, + "name": "newReferralAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 496, + "src": "3776:18:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3764:30:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 522, + "nodeType": "ExpressionStatement", + "src": "3764:30:2" } ] }, "documentation": null, - "id": 379, + "id": 524, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 358, + "id": 499, "modifierName": { "argumentTypes": null, - "id": 357, + "id": 498, "name": "notTerminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 831, - "src": "3182:13:1", + "referencedDeclaration": 1058, + "src": "3599:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3182:13:1" + "src": "3599:13:2" }, { "arguments": null, - "id": 360, + "id": 501, "modifierName": { "argumentTypes": null, - "id": 359, + "id": 500, "name": "onlySupervisor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "3196:14:1", + "referencedDeclaration": 799, + "src": "3613:14:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3196:14:1" + "src": "3613:14:2" } ], "name": "resetMiner", "nodeType": "FunctionDefinition", "parameters": { - "id": 356, + "id": 497, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 355, + "id": 494, "name": "newOwnerAddress", "nodeType": "VariableDeclaration", - "scope": 379, - "src": "3150:23:1", + "scope": 524, + "src": "3539:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5729,10 +7802,36 @@ "typeString": "address" }, "typeName": { - "id": 354, + "id": 493, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3150:7:1", + "src": "3539:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 496, + "name": "newReferralAddress", + "nodeType": "VariableDeclaration", + "scope": 524, + "src": "3564:26:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 495, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3564:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5742,26 +7841,26 @@ "visibility": "internal" } ], - "src": "3149:25:1" + "src": "3538:53:2" }, "payable": false, "returnParameters": { - "id": 361, + "id": 502, "nodeType": "ParameterList", "parameters": [], - "src": "3211:0:1" + "src": "3628:0:2" }, - "scope": 549, - "src": "3130:214:1", + "scope": 771, + "src": "3519:283:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 402, + "id": 547, "nodeType": "Block", - "src": "3406:121:1", + "src": "3864:121:2", "statements": [ { "expression": { @@ -5770,24 +7869,24 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" }, - "id": 390, + "id": 535, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 387, + "id": 532, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "3425:6:1", + "referencedDeclaration": 230, + "src": "3883:6:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, @@ -5797,18 +7896,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 388, + "id": 533, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "3435:10:1", + "referencedDeclaration": 220, + "src": "3893:10:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MinerState_$116_$", + "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 389, + "id": 534, "isConstant": false, "isLValue": false, "isPure": true, @@ -5816,13 +7915,13 @@ "memberName": "Activated", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3435:20:1", + "src": "3893:20:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "3425:30:1", + "src": "3883:30:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5836,21 +7935,21 @@ "typeString": "bool" } ], - "id": 386, + "id": 531, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1293, - 1294 + 1520, + 1521 ], - "referencedDeclaration": 1293, - "src": "3417:7:1", + "referencedDeclaration": 1520, + "src": "3875:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 391, + "id": 536, "isConstant": false, "isLValue": false, "isPure": false, @@ -5858,15 +7957,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3417:39:1", + "src": "3875:39:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 392, + "id": 537, "nodeType": "ExpressionStatement", - "src": "3417:39:1" + "src": "3875:39:2" }, { "expression": { @@ -5874,7 +7973,7 @@ "arguments": [ { "argumentTypes": null, - "id": 395, + "id": 540, "isConstant": false, "isLValue": false, "isPure": false, @@ -5882,15 +7981,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "3475:8:1", + "src": "3933:8:2", "subExpression": { "argumentTypes": null, - "id": 394, + "id": 539, "name": "_mining", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 126, - "src": "3476:7:1", + "referencedDeclaration": 232, + "src": "3934:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5909,21 +8008,21 @@ "typeString": "bool" } ], - "id": 393, + "id": 538, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1293, - 1294 + 1520, + 1521 ], - "referencedDeclaration": 1293, - "src": "3467:7:1", + "referencedDeclaration": 1520, + "src": "3925:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 396, + "id": 541, "isConstant": false, "isLValue": false, "isPure": false, @@ -5931,32 +8030,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3467:17:1", + "src": "3925:17:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 397, + "id": 542, "nodeType": "ExpressionStatement", - "src": "3467:17:1" + "src": "3925:17:2" }, { "expression": { "argumentTypes": null, - "id": 400, + "id": 545, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 398, + "id": 543, "name": "_mining", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 126, - "src": "3505:7:1", + "referencedDeclaration": 232, + "src": "3963:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5967,14 +8066,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 399, + "id": 544, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3515:4:1", + "src": "3973:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5982,89 +8081,89 @@ }, "value": "true" }, - "src": "3505:14:1", + "src": "3963:14:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 401, + "id": 546, "nodeType": "ExpressionStatement", - "src": "3505:14:1" + "src": "3963:14:2" } ] }, "documentation": null, - "id": 403, + "id": 548, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 382, + "id": 527, "modifierName": { "argumentTypes": null, - "id": 381, + "id": 526, "name": "notTerminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 831, - "src": "3382:13:1", + "referencedDeclaration": 1058, + "src": "3840:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3382:13:1" + "src": "3840:13:2" }, { "arguments": null, - "id": 384, + "id": 529, "modifierName": { "argumentTypes": null, - "id": 383, + "id": 528, "name": "onlyMiner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "3396:9:1", + "referencedDeclaration": 298, + "src": "3854:9:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3396:9:1" + "src": "3854:9:2" } ], "name": "startMining", "nodeType": "FunctionDefinition", "parameters": { - "id": 380, + "id": 525, "nodeType": "ParameterList", "parameters": [], - "src": "3372:2:1" + "src": "3830:2:2" }, "payable": false, "returnParameters": { - "id": 385, + "id": 530, "nodeType": "ParameterList", "parameters": [], - "src": "3406:0:1" + "src": "3864:0:2" }, - "scope": 549, - "src": "3352:175:1", + "scope": 771, + "src": "3810:175:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 425, + "id": 570, "nodeType": "Block", - "src": "3588:121:1", + "src": "4046:121:2", "statements": [ { "expression": { @@ -6073,24 +8172,24 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" }, - "id": 414, + "id": 559, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 411, + "id": 556, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "3607:6:1", + "referencedDeclaration": 230, + "src": "4065:6:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, @@ -6100,18 +8199,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 412, + "id": 557, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "3617:10:1", + "referencedDeclaration": 220, + "src": "4075:10:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MinerState_$116_$", + "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 413, + "id": 558, "isConstant": false, "isLValue": false, "isPure": true, @@ -6119,13 +8218,13 @@ "memberName": "Activated", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3617:20:1", + "src": "4075:20:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "3607:30:1", + "src": "4065:30:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6139,21 +8238,21 @@ "typeString": "bool" } ], - "id": 410, + "id": 555, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1293, - 1294 + 1520, + 1521 ], - "referencedDeclaration": 1293, - "src": "3599:7:1", + "referencedDeclaration": 1520, + "src": "4057:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 415, + "id": 560, "isConstant": false, "isLValue": false, "isPure": false, @@ -6161,15 +8260,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3599:39:1", + "src": "4057:39:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 416, + "id": 561, "nodeType": "ExpressionStatement", - "src": "3599:39:1" + "src": "4057:39:2" }, { "expression": { @@ -6177,12 +8276,12 @@ "arguments": [ { "argumentTypes": null, - "id": 418, + "id": 563, "name": "_mining", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 126, - "src": "3657:7:1", + "referencedDeclaration": 232, + "src": "4115:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6196,21 +8295,21 @@ "typeString": "bool" } ], - "id": 417, + "id": 562, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1293, - 1294 + 1520, + 1521 ], - "referencedDeclaration": 1293, - "src": "3649:7:1", + "referencedDeclaration": 1520, + "src": "4107:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 419, + "id": 564, "isConstant": false, "isLValue": false, "isPure": false, @@ -6218,32 +8317,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3649:16:1", + "src": "4107:16:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 420, + "id": 565, "nodeType": "ExpressionStatement", - "src": "3649:16:1" + "src": "4107:16:2" }, { "expression": { "argumentTypes": null, - "id": 423, + "id": 568, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 421, + "id": 566, "name": "_mining", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 126, - "src": "3686:7:1", + "referencedDeclaration": 232, + "src": "4144:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6254,14 +8353,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 422, + "id": 567, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3696:5:1", + "src": "4154:5:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6269,89 +8368,89 @@ }, "value": "false" }, - "src": "3686:15:1", + "src": "4144:15:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 424, + "id": 569, "nodeType": "ExpressionStatement", - "src": "3686:15:1" + "src": "4144:15:2" } ] }, "documentation": null, - "id": 426, + "id": 571, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 406, + "id": 551, "modifierName": { "argumentTypes": null, - "id": 405, + "id": 550, "name": "notTerminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 831, - "src": "3564:13:1", + "referencedDeclaration": 1058, + "src": "4022:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3564:13:1" + "src": "4022:13:2" }, { "arguments": null, - "id": 408, + "id": 553, "modifierName": { "argumentTypes": null, - "id": 407, + "id": 552, "name": "onlyMiner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 186, - "src": "3578:9:1", + "referencedDeclaration": 298, + "src": "4036:9:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3578:9:1" + "src": "4036:9:2" } ], "name": "stopMining", "nodeType": "FunctionDefinition", "parameters": { - "id": 404, + "id": 549, "nodeType": "ParameterList", "parameters": [], - "src": "3554:2:1" + "src": "4012:2:2" }, "payable": false, "returnParameters": { - "id": 409, + "id": 554, "nodeType": "ParameterList", "parameters": [], - "src": "3588:0:1" + "src": "4046:0:2" }, - "scope": 549, - "src": "3535:174:1", + "scope": 771, + "src": "3993:174:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 501, + "id": 681, "nodeType": "Block", - "src": "3765:579:1", + "src": "4223:876:2", "statements": [ { "expression": { @@ -6360,24 +8459,129 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MinerState_$116", - "typeString": "enum AlgoMiner.MinerState" + "typeIdentifier": "t_enum$_MinerType_$215", + "typeString": "enum AlgoMiner.MinerType" }, - "id": 437, + "id": 582, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 434, + "id": 579, + "name": "_minerType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 222, + "src": "4242:10:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerType_$215", + "typeString": "enum AlgoMiner.MinerType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 580, + "name": "MinerType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "4256:9:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MinerType_$215_$", + "typeString": "type(enum AlgoMiner.MinerType)" + } + }, + "id": 581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "PoolBased", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4256:19:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerType_$215", + "typeString": "enum AlgoMiner.MinerType" + } + }, + "src": "4242:33:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 578, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1520, + 1521 + ], + "referencedDeclaration": 1520, + "src": "4234:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4234:42:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 584, + "nodeType": "ExpressionStatement", + "src": "4234:42:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_MinerState_$220", + "typeString": "enum AlgoMiner.MinerState" + }, + "id": 589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 586, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "3784:6:1", + "referencedDeclaration": 230, + "src": "4295:6:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, @@ -6387,18 +8591,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 435, + "id": 587, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "3794:10:1", + "referencedDeclaration": 220, + "src": "4305:10:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MinerState_$116_$", + "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 436, + "id": 588, "isConstant": false, "isLValue": false, "isPure": true, @@ -6406,13 +8610,13 @@ "memberName": "Activated", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3794:20:1", + "src": "4305:20:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "3784:30:1", + "src": "4295:30:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6426,21 +8630,21 @@ "typeString": "bool" } ], - "id": 433, + "id": 585, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1293, - 1294 + 1520, + 1521 ], - "referencedDeclaration": 1293, - "src": "3776:7:1", + "referencedDeclaration": 1520, + "src": "4287:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 438, + "id": 590, "isConstant": false, "isLValue": false, "isPure": false, @@ -6448,15 +8652,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3776:39:1", + "src": "4287:39:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 439, + "id": 591, "nodeType": "ExpressionStatement", - "src": "3776:39:1" + "src": "4287:39:2" }, { "expression": { @@ -6464,12 +8668,12 @@ "arguments": [ { "argumentTypes": null, - "id": 441, + "id": 593, "name": "_mining", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 126, - "src": "3834:7:1", + "referencedDeclaration": 232, + "src": "4345:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6483,21 +8687,21 @@ "typeString": "bool" } ], - "id": 440, + "id": 592, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1293, - 1294 + 1520, + 1521 ], - "referencedDeclaration": 1293, - "src": "3826:7:1", + "referencedDeclaration": 1520, + "src": "4337:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 442, + "id": 594, "isConstant": false, "isLValue": false, "isPure": false, @@ -6505,15 +8709,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3826:16:1", + "src": "4337:16:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 443, + "id": 595, "nodeType": "ExpressionStatement", - "src": "3826:16:1" + "src": "4337:16:2" }, { "condition": { @@ -6522,19 +8726,19 @@ "typeIdentifier": "t_uint16", "typeString": "uint16" }, - "id": 446, + "id": 598, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 444, + "id": 596, "name": "_currentDay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "3858:11:1", + "referencedDeclaration": 236, + "src": "4369:11:2", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -6545,14 +8749,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 445, + "id": 597, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3873:1:1", + "src": "4384:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6560,21 +8764,21 @@ }, "value": "0" }, - "src": "3858:16:1", + "src": "4369:16:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 480, + "id": 632, "nodeType": "Block", - "src": "3955:238:1", + "src": "4466:238:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 457, + "id": 609, "isConstant": false, "isLValue": false, "isPure": false, @@ -6582,15 +8786,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3970:13:1", + "src": "4481:13:2", "subExpression": { "argumentTypes": null, - "id": 456, + "id": 608, "name": "_currentDay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "3970:11:1", + "referencedDeclaration": 236, + "src": "4481:11:2", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -6601,9 +8805,9 @@ "typeString": "uint16" } }, - "id": 458, + "id": 610, "nodeType": "ExpressionStatement", - "src": "3970:13:1" + "src": "4481:13:2" }, { "condition": { @@ -6612,19 +8816,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 464, + "id": 616, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 459, + "id": 611, "name": "_currentDay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "4001:11:1", + "referencedDeclaration": 236, + "src": "4512:11:2", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -6641,19 +8845,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 462, + "id": 614, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 460, + "id": 612, "name": "DAYS_PER_YEAR", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 111, - "src": "4017:13:1", + "referencedDeclaration": 212, + "src": "4528:13:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6664,14 +8868,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 461, + "id": 613, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4033:1:1", + "src": "4544:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -6679,45 +8883,45 @@ }, "value": "1" }, - "src": "4017:17:1", + "src": "4528:17:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 463, + "id": 615, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4016:19:1", + "src": "4527:19:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4001:34:1", + "src": "4512:34:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 479, + "id": 631, "nodeType": "IfStatement", - "src": "3998:184:1", + "src": "4509:184:2", "trueBody": { - "id": 478, + "id": 630, "nodeType": "Block", - "src": "4037:145:1", + "src": "4548:145:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 466, + "id": 618, "isConstant": false, "isLValue": false, "isPure": false, @@ -6725,15 +8929,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4056:14:1", + "src": "4567:14:2", "subExpression": { "argumentTypes": null, - "id": 465, + "id": 617, "name": "_currentYear", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 128, - "src": "4056:12:1", + "referencedDeclaration": 234, + "src": "4567:12:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -6744,26 +8948,26 @@ "typeString": "uint8" } }, - "id": 467, + "id": 619, "nodeType": "ExpressionStatement", - "src": "4056:14:1" + "src": "4567:14:2" }, { "expression": { "argumentTypes": null, - "id": 470, + "id": 622, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 468, + "id": 620, "name": "_currentDay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "4089:11:1", + "referencedDeclaration": 236, + "src": "4600:11:2", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -6774,14 +8978,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 469, + "id": 621, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4103:1:1", + "src": "4614:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -6789,32 +8993,32 @@ }, "value": "1" }, - "src": "4089:15:1", + "src": "4600:15:2", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, - "id": 471, + "id": 623, "nodeType": "ExpressionStatement", - "src": "4089:15:1" + "src": "4600:15:2" }, { "expression": { "argumentTypes": null, - "id": 476, + "id": 628, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 472, + "id": 624, "name": "_currentYearSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 132, - "src": "4123:18:1", + "referencedDeclaration": 238, + "src": "4634:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6828,19 +9032,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 475, + "id": 627, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 473, + "id": 625, "name": "_currentYearSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 132, - "src": "4144:18:1", + "referencedDeclaration": 238, + "src": "4655:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6851,14 +9055,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 474, + "id": 626, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4165:1:1", + "src": "4676:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -6866,51 +9070,51 @@ }, "value": "2" }, - "src": "4144:22:1", + "src": "4655:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4123:43:1", + "src": "4634:43:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 477, + "id": 629, "nodeType": "ExpressionStatement", - "src": "4123:43:1" + "src": "4634:43:2" } ] } } ] }, - "id": 481, + "id": 633, "nodeType": "IfStatement", - "src": "3855:338:1", + "src": "4366:338:2", "trueBody": { - "id": 455, + "id": 607, "nodeType": "Block", - "src": "3876:73:1", + "src": "4387:73:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 449, + "id": 601, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 447, + "id": 599, "name": "_currentYear", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 128, - "src": "3891:12:1", + "referencedDeclaration": 234, + "src": "4402:12:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -6921,14 +9125,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 448, + "id": 600, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3906:1:1", + "src": "4417:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -6936,32 +9140,32 @@ }, "value": "1" }, - "src": "3891:16:1", + "src": "4402:16:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 450, + "id": 602, "nodeType": "ExpressionStatement", - "src": "3891:16:1" + "src": "4402:16:2" }, { "expression": { "argumentTypes": null, - "id": 453, + "id": 605, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 451, + "id": 603, "name": "_currentDay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "3922:11:1", + "referencedDeclaration": 236, + "src": "4433:11:2", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -6972,14 +9176,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 452, + "id": 604, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3936:1:1", + "src": "4447:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -6987,31 +9191,31 @@ }, "value": "1" }, - "src": "3922:15:1", + "src": "4433:15:2", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, - "id": 454, + "id": 606, "nodeType": "ExpressionStatement", - "src": "3922:15:1" + "src": "4433:15:2" } ] } }, { "assignments": [ - 483 + 635 ], "declarations": [ { "constant": false, - "id": 483, - "name": "tokens", + "id": 635, + "name": "minerTokens", "nodeType": "VariableDeclaration", - "scope": 502, - "src": "4205:14:1", + "scope": 682, + "src": "4716:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7019,10 +9223,10 @@ "typeString": "uint256" }, "typeName": { - "id": 482, + "id": 634, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4205:7:1", + "src": "4716:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7032,26 +9236,26 @@ "visibility": "internal" } ], - "id": 487, + "id": 639, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 486, + "id": 638, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 484, + "id": 636, "name": "_currentYearSupply", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 132, - "src": "4222:18:1", + "referencedDeclaration": 238, + "src": "4738:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7061,25 +9265,25 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 485, + "id": 637, "name": "DAYS_PER_YEAR", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 111, - "src": "4243:13:1", + "referencedDeclaration": 212, + "src": "4759:13:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4222:34:1", + "src": "4738:34:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4205:51:1" + "src": "4716:56:2" }, { "expression": { @@ -7091,19 +9295,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 491, + "id": 643, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 489, - "name": "tokens", + "id": 641, + "name": "minerTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 483, - "src": "4277:6:1", + "referencedDeclaration": 635, + "src": "4793:11:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7114,14 +9318,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 490, + "id": 642, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4286:1:1", + "src": "4807:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7129,7 +9333,7 @@ }, "value": "0" }, - "src": "4277:10:1", + "src": "4793:15:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7143,21 +9347,21 @@ "typeString": "bool" } ], - "id": 488, + "id": 640, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1293, - 1294 + 1520, + 1521 ], - "referencedDeclaration": 1293, - "src": "4269:7:1", + "referencedDeclaration": 1520, + "src": "4785:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 492, + "id": 644, "isConstant": false, "isLValue": false, "isPure": false, @@ -7165,15 +9369,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4269:19:1", + "src": "4785:24:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 493, + "id": 645, "nodeType": "ExpressionStatement", - "src": "4269:19:1" + "src": "4785:24:2" }, { "expression": { @@ -7181,12 +9385,12 @@ "arguments": [ { "argumentTypes": null, - "id": 497, + "id": 649, "name": "_miner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 122, - "src": "4321:6:1", + "referencedDeclaration": 226, + "src": "4842:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7194,12 +9398,12 @@ }, { "argumentTypes": null, - "id": 498, - "name": "tokens", + "id": 650, + "name": "minerTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 483, - "src": "4329:6:1", + "referencedDeclaration": 635, + "src": "4850:11:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7219,32 +9423,32 @@ ], "expression": { "argumentTypes": null, - "id": 494, + "id": 646, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 735, - "src": "4301:6:1", + "referencedDeclaration": 957, + "src": "4822:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" } }, - "id": 496, + "id": 648, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 1156, - "src": "4301:19:1", + "referencedDeclaration": 1383, + "src": "4822:19:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1131_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$1131_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1358_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$1358_$", "typeString": "function (contract IERC20,address,uint256)" } }, - "id": 499, + "id": 651, "isConstant": false, "isLValue": false, "isPure": false, @@ -7252,89 +9456,494 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4301:35:1", + "src": "4822:40:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 500, + "id": 652, "nodeType": "ExpressionStatement", - "src": "4301:35:1" + "src": "4822:40:2" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 653, + "name": "_referral", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 228, + "src": "4878:9:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4899:1:2", + "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": 654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4891:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 656, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4891:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4878:23:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 680, + "nodeType": "IfStatement", + "src": "4875:217:2", + "trueBody": { + "id": 679, + "nodeType": "Block", + "src": "4903:189:2", + "statements": [ + { + "assignments": [ + 659 + ], + "declarations": [ + { + "constant": false, + "id": 659, + "name": "referralTokens", + "nodeType": "VariableDeclaration", + "scope": 682, + "src": "4918:22:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4918:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 665, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 660, + "name": "minerTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "4943:11:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 661, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4957:2:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "4943:16:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4962:3:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "4943:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4918:47:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 667, + "name": "referralTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 659, + "src": "4994:14:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5011:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4994:18:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 666, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1520, + 1521 + ], + "referencedDeclaration": 1520, + "src": "4986:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4986:27:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 671, + "nodeType": "ExpressionStatement", + "src": "4986:27:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 675, + "name": "_referral", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 228, + "src": "5054:9:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 676, + "name": "referralTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 659, + "src": "5065:14:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 672, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 957, + "src": "5034:6:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$1358", + "typeString": "contract IERC20" + } + }, + "id": 674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1383, + "src": "5034:19:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1358_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$1358_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5034:46:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 678, + "nodeType": "ExpressionStatement", + "src": "5034:46:2" + } + ] + } } ] }, "documentation": null, - "id": 502, + "id": 682, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 429, + "id": 574, "modifierName": { "argumentTypes": null, - "id": 428, + "id": 573, "name": "notTerminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 831, - "src": "3740:13:1", + "referencedDeclaration": 1058, + "src": "4198:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3740:13:1" + "src": "4198:13:2" }, { "arguments": null, - "id": 431, + "id": 576, "modifierName": { "argumentTypes": null, - "id": 430, + "id": 575, "name": "onlySystem", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 664, - "src": "3754:10:1", + "referencedDeclaration": 886, + "src": "4212:10:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3754:10:1" + "src": "4212:10:2" } ], "name": "mine", "nodeType": "FunctionDefinition", "parameters": { - "id": 427, + "id": 572, "nodeType": "ParameterList", "parameters": [], - "src": "3730:2:1" + "src": "4188:2:2" }, "payable": false, "returnParameters": { - "id": 432, + "id": 577, "nodeType": "ParameterList", "parameters": [], - "src": "3765:0:1" + "src": "4223:0:2" }, - "scope": 549, - "src": "3717:627:1", + "scope": 771, + "src": "4175:924:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 510, + "id": 690, "nodeType": "Block", - "src": "4393:31:1", + "src": "5148:31:2", "statements": [ { "expression": { @@ -7342,20 +9951,20 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 507, + "id": 687, "name": "_terminate", "nodeType": "Identifier", "overloadedDeclarations": [ - 779 + 1001 ], - "referencedDeclaration": 779, - "src": "4404:10:1", + "referencedDeclaration": 1001, + "src": "5159:10:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 508, + "id": 688, "isConstant": false, "isLValue": false, "isPure": false, @@ -7363,83 +9972,83 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4404:12:1", + "src": "5159:12:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 509, + "id": 689, "nodeType": "ExpressionStatement", - "src": "4404:12:1" + "src": "5159:12:2" } ] }, "documentation": null, - "id": 511, + "id": 691, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 505, + "id": 685, "modifierName": { "argumentTypes": null, - "id": 504, + "id": 684, "name": "onlyCoreTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27, - "src": "4380:12:1", + "referencedDeclaration": 125, + "src": "5135:12:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4380:12:1" + "src": "5135:12:2" } ], "name": "terminate", "nodeType": "FunctionDefinition", "parameters": { - "id": 503, + "id": 683, "nodeType": "ParameterList", "parameters": [], - "src": "4370:2:1" + "src": "5125:2:2" }, "payable": false, "returnParameters": { - "id": 506, + "id": 686, "nodeType": "ParameterList", "parameters": [], - "src": "4393:0:1" + "src": "5148:0:2" }, - "scope": 549, - "src": "4352:72:1", + "scope": 771, + "src": "5107:72:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 518, + "id": 698, "nodeType": "Block", - "src": "4482:30:1", + "src": "5237:30:2", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 516, + "id": 696, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4500:4:1", + "src": "5255:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7447,15 +10056,15 @@ }, "value": "true" }, - "functionReturnParameters": 515, - "id": 517, + "functionReturnParameters": 695, + "id": 697, "nodeType": "Return", - "src": "4493:11:1" + "src": "5248:11:2" } ] }, "documentation": null, - "id": 519, + "id": 699, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7463,23 +10072,23 @@ "name": "isAlgoMiner", "nodeType": "FunctionDefinition", "parameters": { - "id": 512, + "id": 692, "nodeType": "ParameterList", "parameters": [], - "src": "4452:2:1" + "src": "5207:2:2" }, "payable": false, "returnParameters": { - "id": 515, + "id": 695, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 514, + "id": 694, "name": "", "nodeType": "VariableDeclaration", - "scope": 519, - "src": "4476:4:1", + "scope": 699, + "src": "5231:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7487,10 +10096,10 @@ "typeString": "bool" }, "typeName": { - "id": 513, + "id": 693, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4476:4:1", + "src": "5231:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7500,67 +10109,105 @@ "visibility": "internal" } ], - "src": "4475:6:1" + "src": "5230:6:2" }, - "scope": 549, - "src": "4432:80:1", + "scope": 771, + "src": "5187:80:2", "stateMutability": "pure", - "superFunction": 787, + "superFunction": 1009, "visibility": "public" }, { "body": { - "id": 526, + "id": 708, "nodeType": "Block", - "src": "4571:35:1", + "src": "5327:43:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 524, - "name": "_category", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 120, - "src": "4589:9:1", + "arguments": [ + { + "argumentTypes": null, + "id": 705, + "name": "_minerType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 222, + "src": "5351:10:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerType_$215", + "typeString": "enum AlgoMiner.MinerType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_MinerType_$215", + "typeString": "enum AlgoMiner.MinerType" + } + ], + "id": 704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5345:5:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": "uint8" + }, + "id": 706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5345:17:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "functionReturnParameters": 523, - "id": 525, + "functionReturnParameters": 703, + "id": 707, "nodeType": "Return", - "src": "4582:16:1" + "src": "5338:24:2" } ] }, "documentation": null, - "id": 527, + "id": 709, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "getCategory", + "name": "getMinerType", "nodeType": "FunctionDefinition", "parameters": { - "id": 520, + "id": 700, "nodeType": "ParameterList", "parameters": [], - "src": "4540:2:1" + "src": "5296:2:2" }, "payable": false, "returnParameters": { - "id": 523, + "id": 703, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 522, + "id": 702, "name": "", "nodeType": "VariableDeclaration", - "scope": 527, - "src": "4564:5:1", + "scope": 709, + "src": "5320:5:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7568,10 +10215,10 @@ "typeString": "uint8" }, "typeName": { - "id": 521, + "id": 701, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4564:5:1", + "src": "5320:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -7581,19 +10228,262 @@ "visibility": "internal" } ], - "src": "4563:7:1" + "src": "5319:7:2" }, - "scope": 549, - "src": "4520:86:1", + "scope": 771, + "src": "5275:95:2", "stateMutability": "view", - "superFunction": 792, + "superFunction": 1014, "visibility": "public" }, { "body": { - "id": 539, + "id": 716, "nodeType": "Block", - "src": "4661:67:1", + "src": "5429:35:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 714, + "name": "_category", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 224, + "src": "5447:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 713, + "id": 715, + "nodeType": "Return", + "src": "5440:16:2" + } + ] + }, + "documentation": null, + "id": 717, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCategory", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 710, + "nodeType": "ParameterList", + "parameters": [], + "src": "5398:2:2" + }, + "payable": false, + "returnParameters": { + "id": 713, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 712, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 717, + "src": "5422:5:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 711, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5422:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5421:7:2" + }, + "scope": 771, + "src": "5378:86:2", + "stateMutability": "view", + "superFunction": 1019, + "visibility": "public" + }, + { + "body": { + "id": 724, + "nodeType": "Block", + "src": "5522:32:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 722, + "name": "_miner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 226, + "src": "5540:6:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 721, + "id": 723, + "nodeType": "Return", + "src": "5533:13:2" + } + ] + }, + "documentation": null, + "id": 725, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getMiner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 718, + "nodeType": "ParameterList", + "parameters": [], + "src": "5489:2:2" + }, + "payable": false, + "returnParameters": { + "id": 721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 720, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "5513:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 719, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5513:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5512:9:2" + }, + "scope": 771, + "src": "5472:82:2", + "stateMutability": "view", + "superFunction": 1029, + "visibility": "public" + }, + { + "body": { + "id": 732, + "nodeType": "Block", + "src": "5615:35:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 730, + "name": "_referral", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 228, + "src": "5633:9:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 729, + "id": 731, + "nodeType": "Return", + "src": "5626:16:2" + } + ] + }, + "documentation": null, + "id": 733, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getReferral", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 726, + "nodeType": "ParameterList", + "parameters": [], + "src": "5582:2:2" + }, + "payable": false, + "returnParameters": { + "id": 729, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 728, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 733, + "src": "5606:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 727, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5606:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5605:9:2" + }, + "scope": 771, + "src": "5562:88:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 745, + "nodeType": "Block", + "src": "5705:67:2", "statements": [ { "expression": { @@ -7602,7 +10492,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 537, + "id": 743, "isConstant": false, "isLValue": false, "isPure": false, @@ -7610,24 +10500,24 @@ "leftExpression": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" }, - "id": 535, + "id": 741, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 532, + "id": 738, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "4679:6:1", + "referencedDeclaration": 230, + "src": "5723:6:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, @@ -7637,18 +10527,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 533, + "id": 739, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "4689:10:1", + "referencedDeclaration": 220, + "src": "5733:10:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_MinerState_$116_$", + "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 534, + "id": 740, "isConstant": false, "isLValue": false, "isPure": true, @@ -7656,13 +10546,13 @@ "memberName": "Activated", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4689:20:1", + "src": "5733:20:2", "typeDescriptions": { - "typeIdentifier": "t_enum$_MinerState_$116", + "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "4679:30:1", + "src": "5723:30:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7672,32 +10562,32 @@ "operator": "&&", "rightExpression": { "argumentTypes": null, - "id": 536, + "id": 742, "name": "_mining", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 126, - "src": "4713:7:1", + "referencedDeclaration": 232, + "src": "5757:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4679:41:1", + "src": "5723:41:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 531, - "id": 538, + "functionReturnParameters": 737, + "id": 744, "nodeType": "Return", - "src": "4672:48:1" + "src": "5716:48:2" } ] }, "documentation": null, - "id": 540, + "id": 746, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7705,23 +10595,23 @@ "name": "isMining", "nodeType": "FunctionDefinition", "parameters": { - "id": 528, + "id": 734, "nodeType": "ParameterList", "parameters": [], - "src": "4631:2:1" + "src": "5675:2:2" }, "payable": false, "returnParameters": { - "id": 531, + "id": 737, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 530, + "id": 736, "name": "", "nodeType": "VariableDeclaration", - "scope": 540, - "src": "4655:4:1", + "scope": 746, + "src": "5699:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7729,10 +10619,10 @@ "typeString": "bool" }, "typeName": { - "id": 529, + "id": 735, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4655:4:1", + "src": "5699:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7742,1134 +10632,279 @@ "visibility": "internal" } ], - "src": "4654:6:1" + "src": "5698:6:2" }, - "scope": 549, - "src": "4614:114:1", + "scope": 771, + "src": "5658:114:2", "stateMutability": "view", - "superFunction": 797, + "superFunction": 1024, "visibility": "public" }, { "body": { - "id": 547, + "id": 753, "nodeType": "Block", - "src": "4786:32:1", + "src": "5834:38:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 545, - "name": "_miner", + "id": 751, + "name": "_currentYear", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 122, - "src": "4804:6:1", + "referencedDeclaration": 234, + "src": "5852:12:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, - "functionReturnParameters": 544, - "id": 546, + "functionReturnParameters": 750, + "id": 752, "nodeType": "Return", - "src": "4797:13:1" + "src": "5845:19:2" } ] }, "documentation": null, - "id": 548, + "id": 754, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "getMiner", + "name": "getCurrentYear", "nodeType": "FunctionDefinition", "parameters": { - "id": 541, + "id": 747, "nodeType": "ParameterList", "parameters": [], - "src": "4753:2:1" + "src": "5803:2:2" }, "payable": false, "returnParameters": { - "id": 544, + "id": 750, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 543, + "id": 749, "name": "", "nodeType": "VariableDeclaration", - "scope": 548, - "src": "4777:7:1", + "scope": 754, + "src": "5827:5:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint8", + "typeString": "uint8" }, "typeName": { - "id": 542, - "name": "address", + "id": 748, + "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4777:7:1", + "src": "5827:5:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_uint8", + "typeString": "uint8" } }, "value": null, "visibility": "internal" } ], - "src": "4776:9:1" + "src": "5826:7:2" }, - "scope": 549, - "src": "4736:82:1", + "scope": 771, + "src": "5780:92:2", "stateMutability": "view", - "superFunction": 802, + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 761, + "nodeType": "Block", + "src": "5934:37:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 759, + "name": "_currentDay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 236, + "src": "5952:11:2", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 758, + "id": 760, + "nodeType": "Return", + "src": "5945:18:2" + } + ] + }, + "documentation": null, + "id": 762, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCurrentDay", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 755, + "nodeType": "ParameterList", + "parameters": [], + "src": "5902:2:2" + }, + "payable": false, + "returnParameters": { + "id": 758, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 757, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 762, + "src": "5926:6:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 756, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "5926:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5925:8:2" + }, + "scope": 771, + "src": "5880:91:2", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 769, + "nodeType": "Block", + "src": "6041:44:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 767, + "name": "_currentYearSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 238, + "src": "6059:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 766, + "id": 768, + "nodeType": "Return", + "src": "6052:25:2" + } + ] + }, + "documentation": null, + "id": 770, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCurrentYearSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 763, + "nodeType": "ParameterList", + "parameters": [], + "src": "6008:2:2" + }, + "payable": false, + "returnParameters": { + "id": 766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 765, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 770, + "src": "6032:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 764, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6032:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6031:9:2" + }, + "scope": 771, + "src": "5979:106:2", + "stateMutability": "view", + "superFunction": null, "visibility": "public" } ], - "scope": 550, - "src": "592:4229:1" + "scope": 772, + "src": "620:5468:2" } ], - "src": "0:4823:1" + "src": "0:6090:2" }, - "id": 1 + "id": 2 }, "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoSupervisorRole.sol": { "ast": { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoSupervisorRole.sol", "exportedSymbols": { "AlgoSupervisorRole": [ - 636 + 858 ] }, - "id": 637, + "id": 859, "nodeType": "SourceUnit", "nodes": [ { - "id": 551, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:2" - }, - { - "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol", - "file": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol", - "id": 552, - "nodeType": "ImportDirective", - "scope": 637, - "sourceUnit": 935, - "src": "28:189:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 636, - "linearizedBaseContracts": [ - 636 - ], - "name": "AlgoSupervisorRole", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 555, - "libraryName": { - "contractScope": null, - "id": 553, - "name": "Roles", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 934, - "src": "262:5:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Roles_$934", - "typeString": "library Roles" - } - }, - "nodeType": "UsingForDirective", - "src": "256:27:2", - "typeName": { - "contractScope": null, - "id": 554, - "name": "Roles.Role", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 847, - "src": "272:10:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage_ptr", - "typeString": "struct Roles.Role" - } - } - }, - { - "constant": false, - "id": 557, - "name": "_supervisors", - "nodeType": "VariableDeclaration", - "scope": 636, - "src": "291:31:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage", - "typeString": "struct Roles.Role" - }, - "typeName": { - "contractScope": null, - "id": 556, - "name": "Roles.Role", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 847, - "src": "291:10:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage_ptr", - "typeString": "struct Roles.Role" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 565, - "nodeType": "Block", - "src": "355:45:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 561, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1290, - "src": "381:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "381:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 560, - "name": "_addSupervisor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "366:14:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "366:26:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 564, - "nodeType": "ExpressionStatement", - "src": "366:26:2" - } - ] - }, - "documentation": null, - "id": 566, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 558, - "nodeType": "ParameterList", - "parameters": [], - "src": "343:2:2" - }, - "payable": false, - "returnParameters": { - "id": 559, - "nodeType": "ParameterList", - "parameters": [], - "src": "355:0:2" - }, - "scope": 636, - "src": "331:69:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 576, - "nodeType": "Block", - "src": "434:64:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 570, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1290, - "src": "466:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "466:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 569, - "name": "isSupervisor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 590, - "src": "453:12:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "453:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 568, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1293, - 1294 - ], - "referencedDeclaration": 1293, - "src": "445:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "445:33:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 574, - "nodeType": "ExpressionStatement", - "src": "445:33:2" - }, - { - "id": 575, - "nodeType": "PlaceholderStatement", - "src": "489:1:2" - } - ] - }, - "documentation": null, - "id": 577, - "name": "onlySupervisor", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 567, - "nodeType": "ParameterList", - "parameters": [], - "src": "431:2:2" - }, - "src": "408:90:2", - "visibility": "internal" - }, - { - "body": { - "id": 589, - "nodeType": "Block", - "src": "572:51:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 586, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 579, - "src": "607:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 584, - "name": "_supervisors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 557, - "src": "590:12:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage", - "typeString": "struct Roles.Role storage ref" - } - }, - "id": 585, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "has", - "nodeType": "MemberAccess", - "referencedDeclaration": 933, - "src": "590:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$847_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$847_storage_ptr_$", - "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" - } - }, - "id": 587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "590:25:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 583, - "id": 588, - "nodeType": "Return", - "src": "583:32:2" - } - ] - }, - "documentation": null, - "id": 590, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isSupervisor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 580, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 579, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 590, - "src": "528:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 578, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "528:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "527:17:2" - }, - "payable": false, - "returnParameters": { - "id": 583, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 582, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 590, - "src": "566:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 581, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "566:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "565:6:2" - }, - "scope": 636, - "src": "506:117:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 601, - "nodeType": "Block", - "src": "693:42:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 598, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "719:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 597, - "name": "_addSupervisor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 623, - "src": "704:14:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "704:23:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 600, - "nodeType": "ExpressionStatement", - "src": "704:23:2" - } - ] - }, - "documentation": null, - "id": 602, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 595, - "modifierName": { - "argumentTypes": null, - "id": 594, - "name": "onlySupervisor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 577, - "src": "678:14:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "678:14:2" - } - ], - "name": "addSupervisor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 593, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 592, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 602, - "src": "654:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 591, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "654:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "653:17:2" - }, - "payable": false, - "returnParameters": { - "id": 596, - "nodeType": "ParameterList", - "parameters": [], - "src": "693:0:2" - }, - "scope": 636, - "src": "631:104:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 610, - "nodeType": "Block", - "src": "780:48:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 606, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1290, - "src": "809:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "809:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 605, - "name": "_removeSupervisor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 635, - "src": "791:17:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "791:29:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 609, - "nodeType": "ExpressionStatement", - "src": "791:29:2" - } - ] - }, - "documentation": null, - "id": 611, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "renounceSupervisor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 603, - "nodeType": "ParameterList", - "parameters": [], - "src": "770:2:2" - }, - "payable": false, - "returnParameters": { - "id": 604, - "nodeType": "ParameterList", - "parameters": [], - "src": "780:0:2" - }, - "scope": 636, - "src": "743:85:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 622, - "nodeType": "Block", - "src": "886:44:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 619, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 613, - "src": "914:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 616, - "name": "_supervisors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 557, - "src": "897:12:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage", - "typeString": "struct Roles.Role storage ref" - } - }, - "id": 618, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 879, - "src": "897:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$847_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$847_storage_ptr_$", - "typeString": "function (struct Roles.Role storage pointer,address)" - } - }, - "id": 620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "897:25:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 621, - "nodeType": "ExpressionStatement", - "src": "897:25:2" - } - ] - }, - "documentation": null, - "id": 623, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_addSupervisor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 614, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 613, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 623, - "src": "860:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 612, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "860:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "859:17:2" - }, - "payable": false, - "returnParameters": { - "id": 615, - "nodeType": "ParameterList", - "parameters": [], - "src": "886:0:2" - }, - "scope": 636, - "src": "836:94:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 634, - "nodeType": "Block", - "src": "991:47:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 631, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 625, - "src": "1022:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 628, - "name": "_supervisors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 557, - "src": "1002:12:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage", - "typeString": "struct Roles.Role storage ref" - } - }, - "id": 630, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 910, - "src": "1002:19:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$847_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$847_storage_ptr_$", - "typeString": "function (struct Roles.Role storage pointer,address)" - } - }, - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1002:28:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 633, - "nodeType": "ExpressionStatement", - "src": "1002:28:2" - } - ] - }, - "documentation": null, - "id": 635, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_removeSupervisor", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 625, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "965:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 624, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "965:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "964:17:2" - }, - "payable": false, - "returnParameters": { - "id": 627, - "nodeType": "ParameterList", - "parameters": [], - "src": "991:0:2" - }, - "scope": 636, - "src": "938:100:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 637, - "src": "221:820:2" - } - ], - "src": "0:1043:2" - }, - "id": 2 - }, - "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoSystemRole.sol": { - "ast": { - "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoSystemRole.sol", - "exportedSymbols": { - "AlgoSystemRole": [ - 723 - ] - }, - "id": 724, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 638, + "id": 773, "literals": [ "solidity", "^", @@ -8882,10 +10917,10 @@ { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol", "file": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol", - "id": 639, + "id": 774, "nodeType": "ImportDirective", - "scope": 724, - "sourceUnit": 935, + "scope": 859, + "sourceUnit": 1162, "src": "28:189:3", "symbolAliases": [], "unitAlias": "" @@ -8896,64 +10931,64 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 723, + "id": 858, "linearizedBaseContracts": [ - 723 + 858 ], - "name": "AlgoSystemRole", + "name": "AlgoSupervisorRole", "nodeType": "ContractDefinition", "nodes": [ { - "id": 642, + "id": 777, "libraryName": { "contractScope": null, - "id": 640, + "id": 775, "name": "Roles", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 934, - "src": "258:5:3", + "referencedDeclaration": 1161, + "src": "262:5:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_Roles_$934", + "typeIdentifier": "t_contract$_Roles_$1161", "typeString": "library Roles" } }, "nodeType": "UsingForDirective", - "src": "252:27:3", + "src": "256:27:3", "typeName": { "contractScope": null, - "id": 641, + "id": 776, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 847, - "src": "268:10:3", + "referencedDeclaration": 1074, + "src": "272:10:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage_ptr", + "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", "typeString": "struct Roles.Role" } } }, { "constant": false, - "id": 644, - "name": "_systemMembers", + "id": 779, + "name": "_supervisors", "nodeType": "VariableDeclaration", - "scope": 723, - "src": "287:33:3", + "scope": 858, + "src": "291:31:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage", + "typeIdentifier": "t_struct$_Role_$1074_storage", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 643, + "id": 778, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 847, - "src": "287:10:3", + "referencedDeclaration": 1074, + "src": "291:10:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage_ptr", + "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -8962,9 +10997,9 @@ }, { "body": { - "id": 652, + "id": 787, "nodeType": "Block", - "src": "353:41:3", + "src": "355:45:3", "statements": [ { "expression": { @@ -8974,18 +11009,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 648, + "id": 783, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1290, - "src": "375:3:3", + "referencedDeclaration": 1517, + "src": "381:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 649, + "id": 784, "isConstant": false, "isLValue": false, "isPure": false, @@ -8993,7 +11028,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "375:10:3", + "src": "381:10:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9007,18 +11042,18 @@ "typeString": "address" } ], - "id": 647, - "name": "_addSystem", + "id": 782, + "name": "_addSupervisor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 710, - "src": "364:10:3", + "referencedDeclaration": 845, + "src": "366:14:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 650, + "id": 785, "isConstant": false, "isLValue": false, "isPure": false, @@ -9026,20 +11061,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "364:22:3", + "src": "366:26:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 651, + "id": 786, "nodeType": "ExpressionStatement", - "src": "364:22:3" + "src": "366:26:3" } ] }, "documentation": null, - "id": 653, + "id": 788, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -9047,29 +11082,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 645, + "id": 780, "nodeType": "ParameterList", "parameters": [], - "src": "341:2:3" + "src": "343:2:3" }, "payable": false, "returnParameters": { - "id": 646, + "id": 781, "nodeType": "ParameterList", "parameters": [], - "src": "353:0:3" + "src": "355:0:3" }, - "scope": 723, - "src": "329:65:3", + "scope": 858, + "src": "331:69:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 663, + "id": 798, "nodeType": "Block", - "src": "424:60:3", + "src": "434:64:3", "statements": [ { "expression": { @@ -9082,18 +11117,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 657, + "id": 792, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1290, - "src": "452:3:3", + "referencedDeclaration": 1517, + "src": "466:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 658, + "id": 793, "isConstant": false, "isLValue": false, "isPure": false, @@ -9101,7 +11136,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "452:10:3", + "src": "466:10:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9115,18 +11150,18 @@ "typeString": "address" } ], - "id": 656, - "name": "isSystem", + "id": 791, + "name": "isSupervisor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "443:8:3", + "referencedDeclaration": 812, + "src": "453:12:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 659, + "id": 794, "isConstant": false, "isLValue": false, "isPure": false, @@ -9134,7 +11169,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "443:20:3", + "src": "453:24:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9148,21 +11183,21 @@ "typeString": "bool" } ], - "id": 655, + "id": 790, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1293, - 1294 + 1520, + 1521 ], - "referencedDeclaration": 1293, - "src": "435:7:3", + "referencedDeclaration": 1520, + "src": "445:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 660, + "id": 795, "isConstant": false, "isLValue": false, "isPure": false, @@ -9170,41 +11205,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "435:29:3", + "src": "445:33:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 661, + "id": 796, "nodeType": "ExpressionStatement", - "src": "435:29:3" + "src": "445:33:3" }, { - "id": 662, + "id": 797, "nodeType": "PlaceholderStatement", - "src": "475:1:3" + "src": "489:1:3" } ] }, "documentation": null, - "id": 664, - "name": "onlySystem", + "id": 799, + "name": "onlySupervisor", "nodeType": "ModifierDefinition", "parameters": { - "id": 654, + "id": 789, "nodeType": "ParameterList", "parameters": [], - "src": "421:2:3" + "src": "431:2:3" }, - "src": "402:82:3", + "src": "408:90:3", "visibility": "internal" }, { "body": { - "id": 676, + "id": 811, "nodeType": "Block", - "src": "554:53:3", + "src": "572:51:3", "statements": [ { "expression": { @@ -9212,12 +11247,12 @@ "arguments": [ { "argumentTypes": null, - "id": 673, + "id": 808, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "591:7:3", + "referencedDeclaration": 801, + "src": "607:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9233,32 +11268,32 @@ ], "expression": { "argumentTypes": null, - "id": 671, - "name": "_systemMembers", + "id": 806, + "name": "_supervisors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "572:14:3", + "referencedDeclaration": 779, + "src": "590:12:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage", + "typeIdentifier": "t_struct$_Role_$1074_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 672, + "id": 807, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "has", "nodeType": "MemberAccess", - "referencedDeclaration": 933, - "src": "572:18:3", + "referencedDeclaration": 1160, + "src": "590:16:3", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$847_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$847_storage_ptr_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$1074_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$1074_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 674, + "id": 809, "isConstant": false, "isLValue": false, "isPure": false, @@ -9266,38 +11301,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "572:27:3", + "src": "590:25:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 670, - "id": 675, + "functionReturnParameters": 805, + "id": 810, "nodeType": "Return", - "src": "565:34:3" + "src": "583:32:3" } ] }, "documentation": null, - "id": 677, + "id": 812, "implemented": true, "isConstructor": false, "isDeclaredConst": true, "modifiers": [], - "name": "isSystem", + "name": "isSupervisor", "nodeType": "FunctionDefinition", "parameters": { - "id": 667, + "id": 802, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 666, + "id": 801, "name": "account", "nodeType": "VariableDeclaration", - "scope": 677, - "src": "510:15:3", + "scope": 812, + "src": "528:15:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9305,10 +11340,10 @@ "typeString": "address" }, "typeName": { - "id": 665, + "id": 800, "name": "address", "nodeType": "ElementaryTypeName", - "src": "510:7:3", + "src": "528:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9318,20 +11353,20 @@ "visibility": "internal" } ], - "src": "509:17:3" + "src": "527:17:3" }, "payable": false, "returnParameters": { - "id": 670, + "id": 805, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 669, + "id": 804, "name": "", "nodeType": "VariableDeclaration", - "scope": 677, - "src": "548:4:3", + "scope": 812, + "src": "566:4:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9339,10 +11374,10 @@ "typeString": "bool" }, "typeName": { - "id": 668, + "id": 803, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "548:4:3", + "src": "566:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9352,19 +11387,19 @@ "visibility": "internal" } ], - "src": "547:6:3" + "src": "565:6:3" }, - "scope": 723, - "src": "492:115:3", + "scope": 858, + "src": "506:117:3", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 688, + "id": 823, "nodeType": "Block", - "src": "669:38:3", + "src": "693:42:3", "statements": [ { "expression": { @@ -9372,12 +11407,12 @@ "arguments": [ { "argumentTypes": null, - "id": 685, + "id": 820, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 679, - "src": "691:7:3", + "referencedDeclaration": 814, + "src": "719:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9391,18 +11426,18 @@ "typeString": "address" } ], - "id": 684, - "name": "_addSystem", + "id": 819, + "name": "_addSupervisor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 710, - "src": "680:10:3", + "referencedDeclaration": 845, + "src": "704:14:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 686, + "id": 821, "isConstant": false, "isLValue": false, "isPure": false, @@ -9410,57 +11445,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "680:19:3", + "src": "704:23:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 687, + "id": 822, "nodeType": "ExpressionStatement", - "src": "680:19:3" + "src": "704:23:3" } ] }, "documentation": null, - "id": 689, + "id": 824, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 682, + "id": 817, "modifierName": { "argumentTypes": null, - "id": 681, - "name": "onlySystem", + "id": 816, + "name": "onlySupervisor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 664, - "src": "658:10:3", + "referencedDeclaration": 799, + "src": "678:14:3", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "658:10:3" + "src": "678:14:3" } ], - "name": "addSystem", + "name": "addSupervisor", "nodeType": "FunctionDefinition", "parameters": { - "id": 680, + "id": 815, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 679, + "id": 814, "name": "account", "nodeType": "VariableDeclaration", - "scope": 689, - "src": "634:15:3", + "scope": 824, + "src": "654:15:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9468,10 +11503,10 @@ "typeString": "address" }, "typeName": { - "id": 678, + "id": 813, "name": "address", "nodeType": "ElementaryTypeName", - "src": "634:7:3", + "src": "654:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9481,26 +11516,26 @@ "visibility": "internal" } ], - "src": "633:17:3" + "src": "653:17:3" }, "payable": false, "returnParameters": { - "id": 683, + "id": 818, "nodeType": "ParameterList", "parameters": [], - "src": "669:0:3" + "src": "693:0:3" }, - "scope": 723, - "src": "615:92:3", + "scope": 858, + "src": "631:104:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 697, + "id": 832, "nodeType": "Block", - "src": "748:44:3", + "src": "780:48:3", "statements": [ { "expression": { @@ -9510,18 +11545,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 693, + "id": 828, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1290, - "src": "773:3:3", + "referencedDeclaration": 1517, + "src": "809:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 694, + "id": 829, "isConstant": false, "isLValue": false, "isPure": false, @@ -9529,7 +11564,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "773:10:3", + "src": "809:10:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9543,18 +11578,18 @@ "typeString": "address" } ], - "id": 692, - "name": "_removeSystem", + "id": 827, + "name": "_removeSupervisor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 722, - "src": "759:13:3", + "referencedDeclaration": 857, + "src": "791:17:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 695, + "id": 830, "isConstant": false, "isLValue": false, "isPure": false, @@ -9562,20 +11597,1037 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "759:25:3", + "src": "791:29:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 696, + "id": 831, "nodeType": "ExpressionStatement", - "src": "759:25:3" + "src": "791:29:3" } ] }, "documentation": null, - "id": 698, + "id": 833, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceSupervisor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 825, + "nodeType": "ParameterList", + "parameters": [], + "src": "770:2:3" + }, + "payable": false, + "returnParameters": { + "id": 826, + "nodeType": "ParameterList", + "parameters": [], + "src": "780:0:3" + }, + "scope": 858, + "src": "743:85:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 844, + "nodeType": "Block", + "src": "886:44:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 841, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 835, + "src": "914:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 838, + "name": "_supervisors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "897:12:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$1074_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 840, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1106, + "src": "897:16:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$1074_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$1074_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address)" + } + }, + "id": 842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "897:25:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 843, + "nodeType": "ExpressionStatement", + "src": "897:25:3" + } + ] + }, + "documentation": null, + "id": 845, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_addSupervisor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 835, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 845, + "src": "860:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 834, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "860:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "859:17:3" + }, + "payable": false, + "returnParameters": { + "id": 837, + "nodeType": "ParameterList", + "parameters": [], + "src": "886:0:3" + }, + "scope": 858, + "src": "836:94:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 856, + "nodeType": "Block", + "src": "991:47:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 853, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 847, + "src": "1022:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 850, + "name": "_supervisors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "1002:12:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$1074_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 852, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1137, + "src": "1002:19:3", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$1074_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$1074_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address)" + } + }, + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1002:28:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 855, + "nodeType": "ExpressionStatement", + "src": "1002:28:3" + } + ] + }, + "documentation": null, + "id": 857, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_removeSupervisor", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 848, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 847, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 857, + "src": "965:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 846, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "965:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "964:17:3" + }, + "payable": false, + "returnParameters": { + "id": 849, + "nodeType": "ParameterList", + "parameters": [], + "src": "991:0:3" + }, + "scope": 858, + "src": "938:100:3", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 859, + "src": "221:820:3" + } + ], + "src": "0:1043:3" + }, + "id": 3 + }, + "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoSystemRole.sol": { + "ast": { + "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoSystemRole.sol", + "exportedSymbols": { + "AlgoSystemRole": [ + 945 + ] + }, + "id": 946, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 860, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:4" + }, + { + "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol", + "file": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol", + "id": 861, + "nodeType": "ImportDirective", + "scope": 946, + "sourceUnit": 1162, + "src": "28:189:4", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 945, + "linearizedBaseContracts": [ + 945 + ], + "name": "AlgoSystemRole", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 864, + "libraryName": { + "contractScope": null, + "id": 862, + "name": "Roles", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1161, + "src": "258:5:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Roles_$1161", + "typeString": "library Roles" + } + }, + "nodeType": "UsingForDirective", + "src": "252:27:4", + "typeName": { + "contractScope": null, + "id": 863, + "name": "Roles.Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1074, + "src": "268:10:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeString": "struct Roles.Role" + } + } + }, + { + "constant": false, + "id": 866, + "name": "_systemMembers", + "nodeType": "VariableDeclaration", + "scope": 945, + "src": "287:33:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$1074_storage", + "typeString": "struct Roles.Role" + }, + "typeName": { + "contractScope": null, + "id": 865, + "name": "Roles.Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1074, + "src": "287:10:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeString": "struct Roles.Role" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 874, + "nodeType": "Block", + "src": "353:41:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 870, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1517, + "src": "375:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "375:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 869, + "name": "_addSystem", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 932, + "src": "364:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "364:22:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 873, + "nodeType": "ExpressionStatement", + "src": "364:22:4" + } + ] + }, + "documentation": null, + "id": 875, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 867, + "nodeType": "ParameterList", + "parameters": [], + "src": "341:2:4" + }, + "payable": false, + "returnParameters": { + "id": 868, + "nodeType": "ParameterList", + "parameters": [], + "src": "353:0:4" + }, + "scope": 945, + "src": "329:65:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 885, + "nodeType": "Block", + "src": "424:60:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 879, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1517, + "src": "452:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "452:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 878, + "name": "isSystem", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 899, + "src": "443:8:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "443:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 877, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1520, + 1521 + ], + "referencedDeclaration": 1520, + "src": "435:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "435:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 883, + "nodeType": "ExpressionStatement", + "src": "435:29:4" + }, + { + "id": 884, + "nodeType": "PlaceholderStatement", + "src": "475:1:4" + } + ] + }, + "documentation": null, + "id": 886, + "name": "onlySystem", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 876, + "nodeType": "ParameterList", + "parameters": [], + "src": "421:2:4" + }, + "src": "402:82:4", + "visibility": "internal" + }, + { + "body": { + "id": 898, + "nodeType": "Block", + "src": "554:53:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 895, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "591:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 893, + "name": "_systemMembers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 866, + "src": "572:14:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$1074_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 894, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "has", + "nodeType": "MemberAccess", + "referencedDeclaration": 1160, + "src": "572:18:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$1074_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$1074_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" + } + }, + "id": 896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "572:27:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 892, + "id": 897, + "nodeType": "Return", + "src": "565:34:4" + } + ] + }, + "documentation": null, + "id": 899, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isSystem", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 889, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 888, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 899, + "src": "510:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 887, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "510:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "509:17:4" + }, + "payable": false, + "returnParameters": { + "id": 892, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 891, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 899, + "src": "548:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 890, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "548:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "547:6:4" + }, + "scope": 945, + "src": "492:115:4", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 910, + "nodeType": "Block", + "src": "669:38:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 907, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 901, + "src": "691:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 906, + "name": "_addSystem", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 932, + "src": "680:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "680:19:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 909, + "nodeType": "ExpressionStatement", + "src": "680:19:4" + } + ] + }, + "documentation": null, + "id": 911, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 904, + "modifierName": { + "argumentTypes": null, + "id": 903, + "name": "onlySystem", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 886, + "src": "658:10:4", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "658:10:4" + } + ], + "name": "addSystem", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 902, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 901, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 911, + "src": "634:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "634:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "633:17:4" + }, + "payable": false, + "returnParameters": { + "id": 905, + "nodeType": "ParameterList", + "parameters": [], + "src": "669:0:4" + }, + "scope": 945, + "src": "615:92:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 919, + "nodeType": "Block", + "src": "748:44:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 915, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1517, + "src": "773:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "773:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 914, + "name": "_removeSystem", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "759:13:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "759:25:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 918, + "nodeType": "ExpressionStatement", + "src": "759:25:4" + } + ] + }, + "documentation": null, + "id": 920, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -9583,29 +12635,29 @@ "name": "renounceSystem", "nodeType": "FunctionDefinition", "parameters": { - "id": 690, + "id": 912, "nodeType": "ParameterList", "parameters": [], - "src": "738:2:3" + "src": "738:2:4" }, "payable": false, "returnParameters": { - "id": 691, + "id": 913, "nodeType": "ParameterList", "parameters": [], - "src": "748:0:3" + "src": "748:0:4" }, - "scope": 723, - "src": "715:77:3", + "scope": 945, + "src": "715:77:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 709, + "id": 931, "nodeType": "Block", - "src": "846:46:3", + "src": "846:46:4", "statements": [ { "expression": { @@ -9613,12 +12665,12 @@ "arguments": [ { "argumentTypes": null, - "id": 706, + "id": 928, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 700, - "src": "876:7:3", + "referencedDeclaration": 922, + "src": "876:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9634,32 +12686,32 @@ ], "expression": { "argumentTypes": null, - "id": 703, + "id": 925, "name": "_systemMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "857:14:3", + "referencedDeclaration": 866, + "src": "857:14:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage", + "typeIdentifier": "t_struct$_Role_$1074_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 705, + "id": 927, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 879, - "src": "857:18:3", + "referencedDeclaration": 1106, + "src": "857:18:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$847_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$847_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$1074_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$1074_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 707, + "id": 929, "isConstant": false, "isLValue": false, "isPure": false, @@ -9667,20 +12719,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "857:27:3", + "src": "857:27:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 708, + "id": 930, "nodeType": "ExpressionStatement", - "src": "857:27:3" + "src": "857:27:4" } ] }, "documentation": null, - "id": 710, + "id": 932, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -9688,16 +12740,16 @@ "name": "_addSystem", "nodeType": "FunctionDefinition", "parameters": { - "id": 701, + "id": 923, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 700, + "id": 922, "name": "account", "nodeType": "VariableDeclaration", - "scope": 710, - "src": "820:15:3", + "scope": 932, + "src": "820:15:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9705,10 +12757,10 @@ "typeString": "address" }, "typeName": { - "id": 699, + "id": 921, "name": "address", "nodeType": "ElementaryTypeName", - "src": "820:7:3", + "src": "820:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9718,26 +12770,26 @@ "visibility": "internal" } ], - "src": "819:17:3" + "src": "819:17:4" }, "payable": false, "returnParameters": { - "id": 702, + "id": 924, "nodeType": "ParameterList", "parameters": [], - "src": "846:0:3" + "src": "846:0:4" }, - "scope": 723, - "src": "800:92:3", + "scope": 945, + "src": "800:92:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 721, + "id": 943, "nodeType": "Block", - "src": "949:49:3", + "src": "949:49:4", "statements": [ { "expression": { @@ -9745,12 +12797,12 @@ "arguments": [ { "argumentTypes": null, - "id": 718, + "id": 940, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 712, - "src": "982:7:3", + "referencedDeclaration": 934, + "src": "982:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9766,32 +12818,32 @@ ], "expression": { "argumentTypes": null, - "id": 715, + "id": 937, "name": "_systemMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 644, - "src": "960:14:3", + "referencedDeclaration": 866, + "src": "960:14:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage", + "typeIdentifier": "t_struct$_Role_$1074_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 717, + "id": 939, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 910, - "src": "960:21:3", + "referencedDeclaration": 1137, + "src": "960:21:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$847_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$847_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$1074_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$1074_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 719, + "id": 941, "isConstant": false, "isLValue": false, "isPure": false, @@ -9799,20 +12851,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "960:30:3", + "src": "960:30:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 720, + "id": 942, "nodeType": "ExpressionStatement", - "src": "960:30:3" + "src": "960:30:4" } ] }, "documentation": null, - "id": 722, + "id": 944, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -9820,16 +12872,16 @@ "name": "_removeSystem", "nodeType": "FunctionDefinition", "parameters": { - "id": 713, + "id": 935, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 712, + "id": 934, "name": "account", "nodeType": "VariableDeclaration", - "scope": 722, - "src": "923:15:3", + "scope": 944, + "src": "923:15:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9837,10 +12889,10 @@ "typeString": "address" }, "typeName": { - "id": 711, + "id": 933, "name": "address", "nodeType": "ElementaryTypeName", - "src": "923:7:3", + "src": "923:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9850,81 +12902,81 @@ "visibility": "internal" } ], - "src": "922:17:3" + "src": "922:17:4" }, "payable": false, "returnParameters": { - "id": 714, + "id": 936, "nodeType": "ParameterList", "parameters": [], - "src": "949:0:3" + "src": "949:0:4" }, - "scope": 723, - "src": "900:98:3", + "scope": 945, + "src": "900:98:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 724, - "src": "221:780:3" + "scope": 946, + "src": "221:780:4" } ], - "src": "0:1003:3" + "src": "0:1003:4" }, - "id": 3 + "id": 4 }, "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/ERC20TokenHolder.sol": { "ast": { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/ERC20TokenHolder.sol", "exportedSymbols": { "ERC20TokenHolder": [ - 780 + 1002 ] }, - "id": 781, + "id": 1003, "nodeType": "SourceUnit", "nodes": [ { - "id": 725, + "id": 947, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:4" + "src": "0:23:5" }, { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", "file": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", - "id": 726, + "id": 948, "nodeType": "ImportDirective", - "scope": 781, - "sourceUnit": 1132, - "src": "27:195:4", + "scope": 1003, + "sourceUnit": 1359, + "src": "27:195:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", "file": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", - "id": 727, + "id": 949, "nodeType": "ImportDirective", - "scope": 781, - "sourceUnit": 1276, - "src": "224:198:4", + "scope": 1003, + "sourceUnit": 1503, + "src": "224:198:5", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/Terminable.sol", "file": "./Terminable.sol", - "id": 728, + "id": 950, "nodeType": "ImportDirective", - "scope": 781, - "sourceUnit": 841, - "src": "426:26:4", + "scope": 1003, + "sourceUnit": 1068, + "src": "426:26:5", "symbolAliases": [], "unitAlias": "" }, @@ -9934,86 +12986,86 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 729, + "id": 951, "name": "Terminable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 840, - "src": "485:10:4", + "referencedDeclaration": 1067, + "src": "485:10:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Terminable_$840", + "typeIdentifier": "t_contract$_Terminable_$1067", "typeString": "contract Terminable" } }, - "id": 730, + "id": 952, "nodeType": "InheritanceSpecifier", - "src": "485:10:4" + "src": "485:10:5" } ], "contractDependencies": [ - 840 + 1067 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 780, + "id": 1002, "linearizedBaseContracts": [ - 780, - 840 + 1002, + 1067 ], "name": "ERC20TokenHolder", "nodeType": "ContractDefinition", "nodes": [ { - "id": 733, + "id": 955, "libraryName": { "contractScope": null, - "id": 731, + "id": 953, "name": "SafeERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1275, - "src": "509:9:4", + "referencedDeclaration": 1502, + "src": "509:9:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$1275", + "typeIdentifier": "t_contract$_SafeERC20_$1502", "typeString": "library SafeERC20" } }, "nodeType": "UsingForDirective", - "src": "503:27:4", + "src": "503:27:5", "typeName": { "contractScope": null, - "id": 732, + "id": 954, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1131, - "src": "523:6:4", + "referencedDeclaration": 1358, + "src": "523:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" } } }, { "constant": false, - "id": 735, + "id": 957, "name": "_token", "nodeType": "VariableDeclaration", - "scope": 780, - "src": "538:22:4", + "scope": 1002, + "src": "538:22:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 734, + "id": 956, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1131, - "src": "538:6:4", + "referencedDeclaration": 1358, + "src": "538:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" } }, @@ -10022,28 +13074,28 @@ }, { "body": { - "id": 748, + "id": 970, "nodeType": "Block", - "src": "625:48:4", + "src": "625:48:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 746, + "id": 968, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 742, + "id": 964, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 735, - "src": "636:6:4", + "referencedDeclaration": 957, + "src": "636:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" } }, @@ -10054,12 +13106,12 @@ "arguments": [ { "argumentTypes": null, - "id": 744, + "id": 966, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "652:12:4", + "referencedDeclaration": 959, + "src": "652:12:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10073,18 +13125,18 @@ "typeString": "address" } ], - "id": 743, + "id": 965, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1131, - "src": "645:6:4", + "referencedDeclaration": 1358, + "src": "645:6:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$1131_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$1358_$", "typeString": "type(contract IERC20)" } }, - "id": 745, + "id": 967, "isConstant": false, "isLValue": false, "isPure": false, @@ -10092,63 +13144,63 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "645:20:4", + "src": "645:20:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" } }, - "src": "636:29:4", + "src": "636:29:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" } }, - "id": 747, + "id": 969, "nodeType": "ExpressionStatement", - "src": "636:29:4" + "src": "636:29:5" } ] }, "documentation": null, - "id": 749, + "id": 971, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [ { "arguments": [], - "id": 740, + "id": 962, "modifierName": { "argumentTypes": null, - "id": 739, + "id": 961, "name": "Terminable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "603:10:4", + "referencedDeclaration": 1067, + "src": "603:10:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Terminable_$840_$", + "typeIdentifier": "t_type$_t_contract$_Terminable_$1067_$", "typeString": "type(contract Terminable)" } }, "nodeType": "ModifierInvocation", - "src": "603:12:4" + "src": "603:12:5" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 738, + "id": 960, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 737, + "id": 959, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 749, - "src": "581:20:4", + "scope": 971, + "src": "581:20:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10156,10 +13208,10 @@ "typeString": "address" }, "typeName": { - "id": 736, + "id": 958, "name": "address", "nodeType": "ElementaryTypeName", - "src": "581:7:4", + "src": "581:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10169,39 +13221,39 @@ "visibility": "internal" } ], - "src": "580:22:4" + "src": "580:22:5" }, "payable": false, "returnParameters": { - "id": 741, + "id": 963, "nodeType": "ParameterList", "parameters": [], - "src": "625:0:4" + "src": "625:0:5" }, - "scope": 780, - "src": "569:104:4", + "scope": 1002, + "src": "569:104:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 778, + "id": 1000, "nodeType": "Block", - "src": "712:214:4", + "src": "712:214:5", "statements": [ { "assignments": [ - 753 + 975 ], "declarations": [ { "constant": false, - "id": 753, + "id": 975, "name": "currentBalance", "nodeType": "VariableDeclaration", - "scope": 779, - "src": "723:22:4", + "scope": 1001, + "src": "723:22:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10209,10 +13261,10 @@ "typeString": "uint256" }, "typeName": { - "id": 752, + "id": 974, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "723:7:4", + "src": "723:7:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10222,7 +13274,7 @@ "visibility": "internal" } ], - "id": 760, + "id": 982, "initialValue": { "argumentTypes": null, "arguments": [ @@ -10231,14 +13283,14 @@ "arguments": [ { "argumentTypes": null, - "id": 757, + "id": 979, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1317, - "src": "773:4:4", + "referencedDeclaration": 1546, + "src": "773:4:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20TokenHolder_$780", + "typeIdentifier": "t_contract$_ERC20TokenHolder_$1002", "typeString": "contract ERC20TokenHolder" } } @@ -10246,24 +13298,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20TokenHolder_$780", + "typeIdentifier": "t_contract$_ERC20TokenHolder_$1002", "typeString": "contract ERC20TokenHolder" } ], - "id": 756, + "id": 978, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "765:7:4", + "src": "765:7:5", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 758, + "id": 980, "isConstant": false, "isLValue": false, "isPure": false, @@ -10271,7 +13323,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "765:13:4", + "src": "765:13:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10287,32 +13339,32 @@ ], "expression": { "argumentTypes": null, - "id": 754, + "id": 976, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 735, - "src": "748:6:4", + "referencedDeclaration": 957, + "src": "748:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" } }, - "id": 755, + "id": 977, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 1076, - "src": "748:16:4", + "referencedDeclaration": 1303, + "src": "748:16:5", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 759, + "id": 981, "isConstant": false, "isLValue": false, "isPure": false, @@ -10320,14 +13372,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "748:31:4", + "src": "748:31:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "723:56:4" + "src": "723:56:5" }, { "condition": { @@ -10336,19 +13388,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 763, + "id": 985, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 761, + "id": 983, "name": "currentBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 753, - "src": "793:14:4", + "referencedDeclaration": 975, + "src": "793:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10359,14 +13411,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 762, + "id": 984, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "810:1:4", + "src": "810:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10374,20 +13426,20 @@ }, "value": "0" }, - "src": "793:18:4", + "src": "793:18:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 772, + "id": 994, "nodeType": "IfStatement", - "src": "790:95:4", + "src": "790:95:5", "trueBody": { - "id": 771, + "id": 993, "nodeType": "Block", - "src": "813:72:4", + "src": "813:72:5", "statements": [ { "expression": { @@ -10395,12 +13447,12 @@ "arguments": [ { "argumentTypes": null, - "id": 767, + "id": 989, "name": "_creator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "848:8:4", + "referencedDeclaration": 1034, + "src": "848:8:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10408,12 +13460,12 @@ }, { "argumentTypes": null, - "id": 768, + "id": 990, "name": "currentBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 753, - "src": "858:14:4", + "referencedDeclaration": 975, + "src": "858:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10433,32 +13485,32 @@ ], "expression": { "argumentTypes": null, - "id": 764, + "id": 986, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 735, - "src": "828:6:4", + "referencedDeclaration": 957, + "src": "828:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" } }, - "id": 766, + "id": 988, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 1156, - "src": "828:19:4", + "referencedDeclaration": 1383, + "src": "828:19:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1131_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$1131_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1358_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$1358_$", "typeString": "function (contract IERC20,address,uint256)" } }, - "id": 769, + "id": 991, "isConstant": false, "isLValue": false, "isPure": false, @@ -10466,15 +13518,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "828:45:4", + "src": "828:45:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 770, + "id": 992, "nodeType": "ExpressionStatement", - "src": "828:45:4" + "src": "828:45:5" } ] } @@ -10487,32 +13539,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 773, + "id": 995, "name": "Terminable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "895:10:4", + "referencedDeclaration": 1067, + "src": "895:10:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Terminable_$840_$", + "typeIdentifier": "t_type$_t_contract$_Terminable_$1067_$", "typeString": "type(contract Terminable)" } }, - "id": 775, + "id": 997, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_terminate", "nodeType": "MemberAccess", - "referencedDeclaration": 839, - "src": "895:21:4", + "referencedDeclaration": 1066, + "src": "895:21:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 776, + "id": 998, "isConstant": false, "isLValue": false, "isPure": false, @@ -10520,20 +13572,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "895:23:4", + "src": "895:23:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 777, + "id": 999, "nodeType": "ExpressionStatement", - "src": "895:23:4" + "src": "895:23:5" } ] }, "documentation": null, - "id": 779, + "id": 1001, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -10541,313 +13593,46 @@ "name": "_terminate", "nodeType": "FunctionDefinition", "parameters": { - "id": 750, + "id": 972, "nodeType": "ParameterList", "parameters": [], - "src": "700:2:4" + "src": "700:2:5" }, "payable": false, "returnParameters": { - "id": 751, + "id": 973, "nodeType": "ParameterList", "parameters": [], - "src": "712:0:4" + "src": "712:0:5" }, - "scope": 780, - "src": "681:245:4", + "scope": 1002, + "src": "681:245:5", "stateMutability": "nonpayable", - "superFunction": 839, + "superFunction": 1066, "visibility": "internal" } ], - "scope": 781, - "src": "456:473:4" + "scope": 1003, + "src": "456:473:5" } ], - "src": "0:929:4" + "src": "0:929:5" }, - "id": 4 + "id": 5 }, "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/IAlgoMiner.sol": { "ast": { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/IAlgoMiner.sol", "exportedSymbols": { "IAlgoMiner": [ - 803 + 1030 ] }, - "id": 804, + "id": 1031, "nodeType": "SourceUnit", "nodes": [ { - "id": 782, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:5" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 803, - "linearizedBaseContracts": [ - 803 - ], - "name": "IAlgoMiner", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 787, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isAlgoMiner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 783, - "nodeType": "ParameterList", - "parameters": [], - "src": "74:2:5" - }, - "payable": false, - "returnParameters": { - "id": 786, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 785, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 787, - "src": "98:4:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 784, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "98:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "97:6:5" - }, - "scope": 803, - "src": "54:50:5", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 792, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getCategory", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 788, - "nodeType": "ParameterList", - "parameters": [], - "src": "130:2:5" - }, - "payable": false, - "returnParameters": { - "id": 791, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 790, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 792, - "src": "154:5:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 789, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "154:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "153:7:5" - }, - "scope": 803, - "src": "110:51:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 797, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isMining", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 793, - "nodeType": "ParameterList", - "parameters": [], - "src": "184:2:5" - }, - "payable": false, - "returnParameters": { - "id": 796, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 795, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 797, - "src": "208:4:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 794, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "208:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "207:6:5" - }, - "scope": 803, - "src": "167:47:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 802, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getMiner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 798, - "nodeType": "ParameterList", - "parameters": [], - "src": "237:2:5" - }, - "payable": false, - "returnParameters": { - "id": 801, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 800, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 802, - "src": "261:7:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 799, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "261:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "260:9:5" - }, - "scope": 803, - "src": "220:50:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 804, - "src": "27:246:5" - } - ], - "src": "0:273:5" - }, - "id": 5 - }, - "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/Terminable.sol": { - "ast": { - "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/Terminable.sol", - "exportedSymbols": { - "Terminable": [ - 840 - ] - }, - "id": 841, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 805, + "id": 1004, "literals": [ "solidity", "0.4", @@ -10861,21 +13646,344 @@ "contractDependencies": [], "contractKind": "contract", "documentation": null, - "fullyImplemented": true, - "id": 840, + "fullyImplemented": false, + "id": 1030, "linearizedBaseContracts": [ - 840 + 1030 + ], + "name": "IAlgoMiner", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 1009, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isAlgoMiner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1005, + "nodeType": "ParameterList", + "parameters": [], + "src": "74:2:6" + }, + "payable": false, + "returnParameters": { + "id": 1008, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1007, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1009, + "src": "98:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1006, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "98:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "97:6:6" + }, + "scope": 1030, + "src": "54:50:6", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 1014, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getMinerType", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1010, + "nodeType": "ParameterList", + "parameters": [], + "src": "131:2:6" + }, + "payable": false, + "returnParameters": { + "id": 1013, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1012, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1014, + "src": "155:5:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1011, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "155:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "154:7:6" + }, + "scope": 1030, + "src": "110:52:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 1019, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCategory", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1015, + "nodeType": "ParameterList", + "parameters": [], + "src": "188:2:6" + }, + "payable": false, + "returnParameters": { + "id": 1018, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1017, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1019, + "src": "212:5:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1016, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "212:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "211:7:6" + }, + "scope": 1030, + "src": "168:51:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 1024, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isMining", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1020, + "nodeType": "ParameterList", + "parameters": [], + "src": "242:2:6" + }, + "payable": false, + "returnParameters": { + "id": 1023, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1022, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1024, + "src": "266:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1021, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "266:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "265:6:6" + }, + "scope": 1030, + "src": "225:47:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 1029, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getMiner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1025, + "nodeType": "ParameterList", + "parameters": [], + "src": "295:2:6" + }, + "payable": false, + "returnParameters": { + "id": 1028, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1027, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1029, + "src": "319:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1026, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "319:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "318:9:6" + }, + "scope": 1030, + "src": "278:50:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 1031, + "src": "27:304:6" + } + ], + "src": "0:331:6" + }, + "id": 6 + }, + "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/Terminable.sol": { + "ast": { + "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/Terminable.sol", + "exportedSymbols": { + "Terminable": [ + 1067 + ] + }, + "id": 1068, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1032, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:7" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1067, + "linearizedBaseContracts": [ + 1067 ], "name": "Terminable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 807, + "id": 1034, "name": "_creator", "nodeType": "VariableDeclaration", - "scope": 840, - "src": "56:25:6", + "scope": 1067, + "src": "56:25:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10883,10 +13991,10 @@ "typeString": "address" }, "typeName": { - "id": 806, + "id": 1033, "name": "address", "nodeType": "ElementaryTypeName", - "src": "56:7:6", + "src": "56:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10897,11 +14005,11 @@ }, { "constant": false, - "id": 809, + "id": 1036, "name": "_terminated", "nodeType": "VariableDeclaration", - "scope": 840, - "src": "88:25:6", + "scope": 1067, + "src": "88:25:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -10909,10 +14017,10 @@ "typeString": "bool" }, "typeName": { - "id": 808, + "id": 1035, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "88:4:6", + "src": "88:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10923,26 +14031,26 @@ }, { "body": { - "id": 821, + "id": 1048, "nodeType": "Block", - "src": "145:70:6", + "src": "145:70:7", "statements": [ { "expression": { "argumentTypes": null, - "id": 815, + "id": 1042, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 812, + "id": 1039, "name": "_creator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "156:8:6", + "referencedDeclaration": 1034, + "src": "156:8:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10954,18 +14062,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 813, + "id": 1040, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1290, - "src": "167:3:6", + "referencedDeclaration": 1517, + "src": "167:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 814, + "id": 1041, "isConstant": false, "isLValue": false, "isPure": false, @@ -10973,38 +14081,38 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "167:10:6", + "src": "167:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "156:21:6", + "src": "156:21:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 816, + "id": 1043, "nodeType": "ExpressionStatement", - "src": "156:21:6" + "src": "156:21:7" }, { "expression": { "argumentTypes": null, - "id": 819, + "id": 1046, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 817, + "id": 1044, "name": "_terminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "188:11:6", + "referencedDeclaration": 1036, + "src": "188:11:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11015,14 +14123,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 818, + "id": 1045, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "202:5:6", + "src": "202:5:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -11030,20 +14138,20 @@ }, "value": "false" }, - "src": "188:19:6", + "src": "188:19:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 820, + "id": 1047, "nodeType": "ExpressionStatement", - "src": "188:19:6" + "src": "188:19:7" } ] }, "documentation": null, - "id": 822, + "id": 1049, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -11051,29 +14159,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 810, + "id": 1037, "nodeType": "ParameterList", "parameters": [], - "src": "133:2:6" + "src": "133:2:7" }, "payable": false, "returnParameters": { - "id": 811, + "id": 1038, "nodeType": "ParameterList", "parameters": [], - "src": "145:0:6" + "src": "145:0:7" }, - "scope": 840, - "src": "122:93:6", + "scope": 1067, + "src": "122:93:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 830, + "id": 1057, "nodeType": "Block", - "src": "248:52:6", + "src": "248:52:7", "statements": [ { "expression": { @@ -11081,2897 +14189,28 @@ "arguments": [ { "argumentTypes": null, - "id": 826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "267:12:6", - "subExpression": { - "argumentTypes": null, - "id": 825, - "name": "_terminated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "268:11:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 824, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1293, - 1294 - ], - "referencedDeclaration": 1293, - "src": "259:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "259:21:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 828, - "nodeType": "ExpressionStatement", - "src": "259:21:6" - }, - { - "id": 829, - "nodeType": "PlaceholderStatement", - "src": "291:1:6" - } - ] - }, - "documentation": null, - "id": 831, - "name": "notTerminated", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 823, - "nodeType": "ParameterList", - "parameters": [], - "src": "245:2:6" - }, - "src": "223:77:6", - "visibility": "internal" - }, - { - "body": { - "id": 838, - "nodeType": "Block", - "src": "339:37:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 834, - "name": "_terminated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "350:11:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 835, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "364:4:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "350:18:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 837, - "nodeType": "ExpressionStatement", - "src": "350:18:6" - } - ] - }, - "documentation": null, - "id": 839, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_terminate", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 832, - "nodeType": "ParameterList", - "parameters": [], - "src": "327:2:6" - }, - "payable": false, - "returnParameters": { - "id": 833, - "nodeType": "ParameterList", - "parameters": [], - "src": "339:0:6" - }, - "scope": 840, - "src": "308:68:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 841, - "src": "27:352:6" - } - ], - "src": "0:379:6" - }, - "id": 6 - }, - "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol": { - "ast": { - "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol", - "exportedSymbols": { - "Roles": [ - 934 - ] - }, - "id": 935, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 842, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:7" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Roles\n@dev Library for managing addresses assigned to a Role.", - "fullyImplemented": true, - "id": 934, - "linearizedBaseContracts": [ - 934 - ], - "name": "Roles", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "Roles.Role", - "id": 847, - "members": [ - { - "constant": false, - "id": 846, - "name": "bearer", - "nodeType": "VariableDeclaration", - "scope": 847, - "src": "145:32:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 845, - "keyType": { - "id": 843, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "154:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "145:25:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 844, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "165:4:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Role", - "nodeType": "StructDefinition", - "scope": 934, - "src": "127:55:7", - "visibility": "public" - }, - { - "body": { - "id": 878, - "nodeType": "Block", - "src": "302:109:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 855, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "316:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 857, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "335: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": 856, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "327:7:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 858, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "327:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "316:21:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 854, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1293, - 1294 - ], - "referencedDeclaration": 1293, - "src": "308:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "308:30:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 861, - "nodeType": "ExpressionStatement", - "src": "308:30:7" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "352:19:7", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 864, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 849, - "src": "357:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage_ptr", - "typeString": "struct Roles.Role storage pointer" - } - }, - { - "argumentTypes": null, - "id": 865, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "363:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Role_$847_storage_ptr", - "typeString": "struct Roles.Role storage pointer" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 863, - "name": "has", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 933, - "src": "353:3:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$847_storage_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" - } - }, - "id": 866, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "353:18:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 862, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1293, - 1294 - ], - "referencedDeclaration": 1293, - "src": "344:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "344:28:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 869, - "nodeType": "ExpressionStatement", - "src": "344:28:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 870, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 849, - "src": "379:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage_ptr", - "typeString": "struct Roles.Role storage pointer" - } - }, - "id": 873, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bearer", - "nodeType": "MemberAccess", - "referencedDeclaration": 846, - "src": "379:11:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 874, - "indexExpression": { - "argumentTypes": null, - "id": 872, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "391:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "379:20:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 875, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "402:4:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "379:27:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 877, - "nodeType": "ExpressionStatement", - "src": "379:27:7" - } - ] - }, - "documentation": "@dev give an account access to this role", - "id": 879, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 852, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 849, - "name": "role", - "nodeType": "VariableDeclaration", - "scope": 879, - "src": "257:17:7", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage_ptr", - "typeString": "struct Roles.Role" - }, - "typeName": { - "contractScope": null, - "id": 848, - "name": "Role", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 847, - "src": "257:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage_ptr", - "typeString": "struct Roles.Role" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 851, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 879, - "src": "276:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 850, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "276:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "256:36:7" - }, - "payable": false, - "returnParameters": { - "id": 853, - "nodeType": "ParameterList", - "parameters": [], - "src": "302:0:7" - }, - "scope": 934, - "src": "244:167:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 909, - "nodeType": "Block", - "src": "538:109:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 887, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 883, - "src": "552:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 889, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "571: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": 888, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "563:7:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 890, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "563:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "552:21:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 886, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1293, - 1294 - ], - "referencedDeclaration": 1293, - "src": "544:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "544:30:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 893, - "nodeType": "ExpressionStatement", - "src": "544:30:7" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 896, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 881, - "src": "592:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage_ptr", - "typeString": "struct Roles.Role storage pointer" - } - }, - { - "argumentTypes": null, - "id": 897, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 883, - "src": "598:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Role_$847_storage_ptr", - "typeString": "struct Roles.Role storage pointer" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 895, - "name": "has", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 933, - "src": "588:3:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$847_storage_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" - } - }, - "id": 898, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "588:18:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 894, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1293, - 1294 - ], - "referencedDeclaration": 1293, - "src": "580:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "580:27:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 900, - "nodeType": "ExpressionStatement", - "src": "580:27:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 901, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 881, - "src": "614:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage_ptr", - "typeString": "struct Roles.Role storage pointer" - } - }, - "id": 904, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bearer", - "nodeType": "MemberAccess", - "referencedDeclaration": 846, - "src": "614:11:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 905, - "indexExpression": { - "argumentTypes": null, - "id": 903, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 883, - "src": "626:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "614:20:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 906, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "637:5:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "614:28:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 908, - "nodeType": "ExpressionStatement", - "src": "614:28:7" - } - ] - }, - "documentation": "@dev remove an account's access to this role", - "id": 910, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "remove", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 884, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 881, - "name": "role", - "nodeType": "VariableDeclaration", - "scope": 910, - "src": "493:17:7", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage_ptr", - "typeString": "struct Roles.Role" - }, - "typeName": { - "contractScope": null, - "id": 880, - "name": "Role", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 847, - "src": "493:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage_ptr", - "typeString": "struct Roles.Role" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 883, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 910, - "src": "512:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 882, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "512:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "492:36:7" - }, - "payable": false, - "returnParameters": { - "id": 885, - "nodeType": "ParameterList", - "parameters": [], - "src": "538:0:7" - }, - "scope": 934, - "src": "477:170:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 932, - "nodeType": "Block", - "src": "817:74:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 920, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 914, - "src": "831:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 922, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "850: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": 921, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "842:7:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 923, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "842:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "831:21:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 919, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1293, - 1294 - ], - "referencedDeclaration": 1293, - "src": "823:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "823:30:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 926, - "nodeType": "ExpressionStatement", - "src": "823:30:7" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 927, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 912, - "src": "866:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage_ptr", - "typeString": "struct Roles.Role storage pointer" - } - }, - "id": 928, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bearer", - "nodeType": "MemberAccess", - "referencedDeclaration": 846, - "src": "866:11:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 930, - "indexExpression": { - "argumentTypes": null, - "id": 929, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 914, - "src": "878:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "866:20:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 918, - "id": 931, - "nodeType": "Return", - "src": "859:27:7" - } - ] - }, - "documentation": "@dev check if an account has this role\n@return bool", - "id": 933, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "has", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 915, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 912, - "name": "role", - "nodeType": "VariableDeclaration", - "scope": 933, - "src": "738:17:7", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage_ptr", - "typeString": "struct Roles.Role" - }, - "typeName": { - "contractScope": null, - "id": 911, - "name": "Role", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 847, - "src": "738:4:7", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$847_storage_ptr", - "typeString": "struct Roles.Role" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 914, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 933, - "src": "757:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 913, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "757:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "737:36:7" - }, - "payable": false, - "returnParameters": { - "id": 918, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 917, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 933, - "src": "809:4:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 916, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:7" - }, - "scope": 934, - "src": "725:166:7", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 935, - "src": "109:784:7" - } - ], - "src": "0:894:7" - }, - "id": 7 - }, - "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol": { - "ast": { - "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol", - "exportedSymbols": { - "SafeMath": [ - 1062 - ] - }, - "id": 1063, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 936, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title SafeMath\n@dev Math operations with safety checks that revert on error", - "fullyImplemented": true, - "id": 1062, - "linearizedBaseContracts": [ - 1062 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 968, - "nodeType": "Block", - "src": "271:314:8", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 945, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "486:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 946, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "491:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "486:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 951, - "nodeType": "IfStatement", - "src": "482:35:8", - "trueBody": { - "id": 950, - "nodeType": "Block", - "src": "494:23:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 948, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "509:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 944, - "id": 949, - "nodeType": "Return", - "src": "502:8:8" - } - ] - } - }, - { - "assignments": [ - 953 - ], - "declarations": [ - { - "constant": false, - "id": 953, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 969, - "src": "523:9:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 952, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "523:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 957, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 954, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "535:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 955, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 940, - "src": "539:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "535:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "523:17:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 959, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 953, - "src": "554:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 960, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 938, - "src": "558:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "554:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 962, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 940, - "src": "563:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "554:10:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 958, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1293, - 1294 - ], - "referencedDeclaration": 1293, - "src": "546:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "546:19:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 965, - "nodeType": "ExpressionStatement", - "src": "546:19:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 966, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 953, - "src": "579:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 944, - "id": 967, - "nodeType": "Return", - "src": "572:8:8" - } - ] - }, - "documentation": "@dev Multiplies two numbers, reverts on overflow.", - "id": 969, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 941, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 938, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 969, - "src": "217:9:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 937, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "217:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 940, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 969, - "src": "228:9:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 939, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "228:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "216:22:8" - }, - "payable": false, - "returnParameters": { - "id": 944, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 943, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 969, - "src": "262:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 942, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "262:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "261:9:8" - }, - "scope": 1062, - "src": "204:381:8", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 992, - "nodeType": "Block", - "src": "762:203:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 979, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 973, - "src": "776:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 980, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "780:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "776:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 978, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1293, - 1294 - ], - "referencedDeclaration": 1293, - "src": "768:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "768:14:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 983, - "nodeType": "ExpressionStatement", - "src": "768:14:8" - }, - { - "assignments": [ - 985 - ], - "declarations": [ - { - "constant": false, - "id": 985, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 993, - "src": "846:9:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 984, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "846:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 989, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 988, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 986, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "858:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 987, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 973, - "src": "862:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "858:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "846:17:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 990, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "959:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 977, - "id": 991, - "nodeType": "Return", - "src": "952:8:8" - } - ] - }, - "documentation": "@dev Integer division of two numbers truncating the quotient, reverts on division by zero.", - "id": 993, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 974, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 971, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 993, - "src": "708:9:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 970, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "708:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 973, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 993, - "src": "719:9:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 972, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "719:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "707:22:8" - }, - "payable": false, - "returnParameters": { - "id": 977, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 976, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 993, - "src": "753:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 975, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "753:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "752:9:8" - }, - "scope": 1062, - "src": "695:270:8", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1016, - "nodeType": "Block", - "src": "1145:64:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1003, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 997, - "src": "1159:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 1004, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "1164:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1159:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1002, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1293, - 1294 - ], - "referencedDeclaration": 1293, - "src": "1151:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1151:15:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1007, - "nodeType": "ExpressionStatement", - "src": "1151:15:8" - }, - { - "assignments": [ - 1009 - ], - "declarations": [ - { - "constant": false, - "id": 1009, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 1017, - "src": "1172:9:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1008, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1172:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1013, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1012, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1010, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "1184:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 1011, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 997, - "src": "1188:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1184:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1172:17:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 1014, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1009, - "src": "1203:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1001, - "id": 1015, - "nodeType": "Return", - "src": "1196:8:8" - } - ] - }, - "documentation": "@dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).", - "id": 1017, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 995, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 1017, - "src": "1091:9:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 994, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1091:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 997, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 1017, - "src": "1102:9:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 996, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1102:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1090:22:8" - }, - "payable": false, - "returnParameters": { - "id": 1001, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1000, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1017, - "src": "1136:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 999, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1136:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1135:9:8" - }, - "scope": 1062, - "src": "1078:131:8", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1040, - "nodeType": "Block", - "src": "1339:64:8", - "statements": [ - { - "assignments": [ - 1027 - ], - "declarations": [ - { - "constant": false, - "id": 1027, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 1041, - "src": "1345:9:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1026, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1345:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1031, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1028, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1019, - "src": "1357:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 1029, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1021, - "src": "1361:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1357:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1345:17:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1033, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "1376:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 1034, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1019, - "src": "1381:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1376:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1032, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1293, - 1294 - ], - "referencedDeclaration": 1293, - "src": "1368:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1368:15:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1037, - "nodeType": "ExpressionStatement", - "src": "1368:15:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 1038, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "1397:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1025, - "id": 1039, - "nodeType": "Return", - "src": "1390:8:8" - } - ] - }, - "documentation": "@dev Adds two numbers, reverts on overflow.", - "id": 1041, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1022, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1019, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 1041, - "src": "1285:9:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1018, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1285:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1021, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 1041, - "src": "1296:9:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1020, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1296:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1284:22:8" - }, - "payable": false, - "returnParameters": { - "id": 1025, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1024, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1041, - "src": "1330:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1023, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1330:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1329:9:8" - }, - "scope": 1062, - "src": "1272:131:8", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1060, - "nodeType": "Block", - "src": "1602:44:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, "id": 1053, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "267:12:7", + "subExpression": { "argumentTypes": null, - "id": 1051, - "name": "b", + "id": 1052, + "name": "_terminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1045, - "src": "1616:1:8", + "referencedDeclaration": 1036, + "src": "268:11:7", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1052, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1621:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1616:6:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -13985,15 +14224,15 @@ "typeString": "bool" } ], - "id": 1050, + "id": 1051, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1293, - 1294 + 1520, + 1521 ], - "referencedDeclaration": 1293, - "src": "1608:7:8", + "referencedDeclaration": 1520, + "src": "259:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" @@ -14007,7 +14246,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1608:15:8", + "src": "259:21:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" @@ -14015,94 +14254,609 @@ }, "id": 1055, "nodeType": "ExpressionStatement", - "src": "1608:15:8" + "src": "259:21:7" }, + { + "id": 1056, + "nodeType": "PlaceholderStatement", + "src": "291:1:7" + } + ] + }, + "documentation": null, + "id": 1058, + "name": "notTerminated", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 1050, + "nodeType": "ParameterList", + "parameters": [], + "src": "245:2:7" + }, + "src": "223:77:7", + "visibility": "internal" + }, + { + "body": { + "id": 1065, + "nodeType": "Block", + "src": "339:37:7", + "statements": [ { "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1058, + "id": 1063, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "leftHandSide": { "argumentTypes": null, - "id": 1056, - "name": "a", + "id": 1061, + "name": "_terminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "1636:1:8", + "referencedDeclaration": 1036, + "src": "350:11:7", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, - "id": 1057, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1045, - "src": "1640:1:8", + "hexValue": "74727565", + "id": 1062, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "364:4:7", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" }, - "src": "1636:5:8", + "src": "350:18:7", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "functionReturnParameters": 1049, - "id": 1059, - "nodeType": "Return", - "src": "1629:12:8" + "id": 1064, + "nodeType": "ExpressionStatement", + "src": "350:18:7" } ] }, - "documentation": "@dev Divides two numbers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.", - "id": 1061, + "documentation": null, + "id": 1066, "implemented": true, "isConstructor": false, - "isDeclaredConst": true, + "isDeclaredConst": false, "modifiers": [], - "name": "mod", + "name": "_terminate", "nodeType": "FunctionDefinition", "parameters": { - "id": 1046, + "id": 1059, + "nodeType": "ParameterList", + "parameters": [], + "src": "327:2:7" + }, + "payable": false, + "returnParameters": { + "id": 1060, + "nodeType": "ParameterList", + "parameters": [], + "src": "339:0:7" + }, + "scope": 1067, + "src": "308:68:7", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 1068, + "src": "27:352:7" + } + ], + "src": "0:379:7" + }, + "id": 7 + }, + "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol": { + "ast": { + "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol", + "exportedSymbols": { + "Roles": [ + 1161 + ] + }, + "id": 1162, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1069, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@title Roles\n@dev Library for managing addresses assigned to a Role.", + "fullyImplemented": true, + "id": 1161, + "linearizedBaseContracts": [ + 1161 + ], + "name": "Roles", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Roles.Role", + "id": 1074, + "members": [ + { + "constant": false, + "id": 1073, + "name": "bearer", + "nodeType": "VariableDeclaration", + "scope": 1074, + "src": "145:32:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 1072, + "keyType": { + "id": 1070, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "154:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "145:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 1071, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "165:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Role", + "nodeType": "StructDefinition", + "scope": 1161, + "src": "127:55:8", + "visibility": "public" + }, + { + "body": { + "id": 1105, + "nodeType": "Block", + "src": "302:109:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1082, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1078, + "src": "316:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1084, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "335:1:8", + "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": 1083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "327:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1085, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "327:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "316:21:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1081, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1520, + 1521 + ], + "referencedDeclaration": 1520, + "src": "308:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "308:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1088, + "nodeType": "ExpressionStatement", + "src": "308:30:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "352:19:8", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1091, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1076, + "src": "357:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeString": "struct Roles.Role storage pointer" + } + }, + { + "argumentTypes": null, + "id": 1092, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1078, + "src": "363:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeString": "struct Roles.Role storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1090, + "name": "has", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1160, + "src": "353:3:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$1074_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" + } + }, + "id": 1093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "353:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1089, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1520, + 1521 + ], + "referencedDeclaration": 1520, + "src": "344:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "344:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1096, + "nodeType": "ExpressionStatement", + "src": "344:28:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1097, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1076, + "src": "379:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeString": "struct Roles.Role storage pointer" + } + }, + "id": 1100, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "bearer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1073, + "src": "379:11:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1101, + "indexExpression": { + "argumentTypes": null, + "id": 1099, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1078, + "src": "391:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "379:20:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1102, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "402:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "379:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1104, + "nodeType": "ExpressionStatement", + "src": "379:27:8" + } + ] + }, + "documentation": "@dev give an account access to this role", + "id": 1106, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1079, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1043, - "name": "a", + "id": 1076, + "name": "role", "nodeType": "VariableDeclaration", - "scope": 1061, - "src": "1548:9:8", + "scope": 1106, + "src": "257:17:8", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeString": "struct Roles.Role" }, "typeName": { - "id": 1042, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1548:7:8", + "contractScope": null, + "id": 1075, + "name": "Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1074, + "src": "257:4:8", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeString": "struct Roles.Role" } }, "value": null, @@ -14110,95 +14864,805 @@ }, { "constant": false, - "id": 1045, - "name": "b", + "id": 1078, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 1061, - "src": "1559:9:8", + "scope": 1106, + "src": "276:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 1044, - "name": "uint256", + "id": 1077, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "1559:7:8", + "src": "276:7:8", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" } ], - "src": "1547:22:8" + "src": "256:36:8" }, "payable": false, "returnParameters": { - "id": 1049, + "id": 1080, + "nodeType": "ParameterList", + "parameters": [], + "src": "302:0:8" + }, + "scope": 1161, + "src": "244:167:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1136, + "nodeType": "Block", + "src": "538:109:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1114, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1110, + "src": "552:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "571:1:8", + "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": 1115, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "563:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1117, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "563:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "552:21:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1113, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1520, + 1521 + ], + "referencedDeclaration": 1520, + "src": "544:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "544:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1120, + "nodeType": "ExpressionStatement", + "src": "544:30:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1123, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1108, + "src": "592:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeString": "struct Roles.Role storage pointer" + } + }, + { + "argumentTypes": null, + "id": 1124, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1110, + "src": "598:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeString": "struct Roles.Role storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1122, + "name": "has", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1160, + "src": "588:3:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$1074_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" + } + }, + "id": 1125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "588:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1121, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1520, + 1521 + ], + "referencedDeclaration": 1520, + "src": "580:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "580:27:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1127, + "nodeType": "ExpressionStatement", + "src": "580:27:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 1134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1128, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1108, + "src": "614:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeString": "struct Roles.Role storage pointer" + } + }, + "id": 1131, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "bearer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1073, + "src": "614:11:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1132, + "indexExpression": { + "argumentTypes": null, + "id": 1130, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1110, + "src": "626:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "614:20:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1133, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "637:5:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "614:28:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1135, + "nodeType": "ExpressionStatement", + "src": "614:28:8" + } + ] + }, + "documentation": "@dev remove an account's access to this role", + "id": 1137, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1111, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1048, - "name": "", + "id": 1108, + "name": "role", "nodeType": "VariableDeclaration", - "scope": 1061, - "src": "1593:7:8", + "scope": 1137, + "src": "493:17:8", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeString": "struct Roles.Role" + }, + "typeName": { + "contractScope": null, + "id": 1107, + "name": "Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1074, + "src": "493:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeString": "struct Roles.Role" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1110, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1137, + "src": "512:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 1047, - "name": "uint256", + "id": 1109, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "1593:7:8", + "src": "512:7:8", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" } ], - "src": "1592:9:8" + "src": "492:36:8" }, - "scope": 1062, - "src": "1535:111:8", - "stateMutability": "pure", + "payable": false, + "returnParameters": { + "id": 1112, + "nodeType": "ParameterList", + "parameters": [], + "src": "538:0:8" + }, + "scope": 1161, + "src": "477:170:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1159, + "nodeType": "Block", + "src": "817:74:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1147, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1141, + "src": "831:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "850:1:8", + "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": 1148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "842:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "842:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "831:21:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1146, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1520, + 1521 + ], + "referencedDeclaration": 1520, + "src": "823:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "823:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1153, + "nodeType": "ExpressionStatement", + "src": "823:30:8" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1154, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1139, + "src": "866:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeString": "struct Roles.Role storage pointer" + } + }, + "id": 1155, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "bearer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1073, + "src": "866:11:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 1157, + "indexExpression": { + "argumentTypes": null, + "id": 1156, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1141, + "src": "878:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "866:20:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1145, + "id": 1158, + "nodeType": "Return", + "src": "859:27:8" + } + ] + }, + "documentation": "@dev check if an account has this role\n@return bool", + "id": 1160, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "has", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1139, + "name": "role", + "nodeType": "VariableDeclaration", + "scope": 1160, + "src": "738:17:8", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeString": "struct Roles.Role" + }, + "typeName": { + "contractScope": null, + "id": 1138, + "name": "Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1074, + "src": "738:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeString": "struct Roles.Role" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1141, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1160, + "src": "757:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1140, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "757:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "737:36:8" + }, + "payable": false, + "returnParameters": { + "id": 1145, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1144, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1160, + "src": "809:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1143, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "809:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "808:6:8" + }, + "scope": 1161, + "src": "725:166:8", + "stateMutability": "view", "superFunction": null, "visibility": "internal" } ], - "scope": 1063, - "src": "117:1531:8" + "scope": 1162, + "src": "109:784:8" } ], - "src": "0:1649:8" + "src": "0:894:8" }, "id": 8 }, - "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol": { + "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol": { "ast": { - "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol", "exportedSymbols": { - "IERC20": [ - 1131 + "SafeMath": [ + 1289 ] }, - "id": 1132, + "id": 1290, "nodeType": "SourceUnit", "nodes": [ { - "id": 1064, + "id": 1163, "literals": [ "solidity", "^", @@ -14211,420 +15675,351 @@ { "baseContracts": [], "contractDependencies": [], - "contractKind": "interface", - "documentation": "@title ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/20", - "fullyImplemented": false, - "id": 1131, + "contractKind": "library", + "documentation": "@title SafeMath\n@dev Math operations with safety checks that revert on error", + "fullyImplemented": true, + "id": 1289, "linearizedBaseContracts": [ - 1131 + 1289 ], - "name": "IERC20", + "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { - "body": null, - "documentation": null, - "id": 1069, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1065, - "nodeType": "ParameterList", - "parameters": [], - "src": "156:2:9" - }, - "payable": false, - "returnParameters": { - "id": 1068, - "nodeType": "ParameterList", - "parameters": [ + "body": { + "id": 1195, + "nodeType": "Block", + "src": "271:314:9", + "statements": [ { - "constant": false, - "id": 1067, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1069, - "src": "182:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1066, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "182:7:9", - "typeDescriptions": { + "condition": { + "argumentTypes": null, + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "181:9:9" - }, - "scope": 1131, - "src": "136:55:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1076, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1072, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1071, - "name": "who", - "nodeType": "VariableDeclaration", - "scope": 1076, - "src": "214:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1070, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "214:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "213:13:9" - }, - "payable": false, - "returnParameters": { - "id": 1075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1074, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1076, - "src": "250:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1073, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "250:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "249:9:9" - }, - "scope": 1131, - "src": "195:64:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1085, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1081, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1078, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "282:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1077, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "282:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1080, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "297:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1079, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "297:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "281:32:9" - }, - "payable": false, - "returnParameters": { - "id": 1084, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1083, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1085, - "src": "341:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1082, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "341:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "340:9:9" - }, - "scope": 1131, - "src": "263:87:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1094, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1090, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1087, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1094, - "src": "372:10:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1086, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "372:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1089, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1094, - "src": "384:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1088, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "384:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "371:27:9" - }, - "payable": false, - "returnParameters": { - "id": 1093, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1092, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1094, - "src": "417:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1091, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "417:4:9", + }, + "id": 1174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1172, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1165, + "src": "486:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1173, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "491:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "486:6:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "value": null, - "visibility": "internal" + "falseBody": null, + "id": 1178, + "nodeType": "IfStatement", + "src": "482:35:9", + "trueBody": { + "id": 1177, + "nodeType": "Block", + "src": "494:23:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1175, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "509:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 1171, + "id": 1176, + "nodeType": "Return", + "src": "502:8:9" + } + ] + } + }, + { + "assignments": [ + 1180 + ], + "declarations": [ + { + "constant": false, + "id": 1180, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1196, + "src": "523:9:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1179, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "523:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1184, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1181, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1165, + "src": "535:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 1182, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1167, + "src": "539:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "535:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "523:17:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1186, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1180, + "src": "554:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 1187, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1165, + "src": "558:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "554:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1189, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1167, + "src": "563:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "554:10:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1185, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1520, + 1521 + ], + "referencedDeclaration": 1520, + "src": "546:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "546:19:9", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1192, + "nodeType": "ExpressionStatement", + "src": "546:19:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 1193, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1180, + "src": "579:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1171, + "id": 1194, + "nodeType": "Return", + "src": "572:8:9" } - ], - "src": "416:6:9" + ] }, - "scope": 1131, - "src": "354:69:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1103, - "implemented": false, + "documentation": "@dev Multiplies two numbers, reverts on overflow.", + "id": 1196, + "implemented": true, "isConstructor": false, - "isDeclaredConst": false, + "isDeclaredConst": true, "modifiers": [], - "name": "approve", + "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 1099, + "id": 1168, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1096, - "name": "spender", + "id": 1165, + "name": "a", "nodeType": "VariableDeclaration", - "scope": 1103, - "src": "444:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1095, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "444:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1098, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1103, - "src": "461:13:9", + "scope": 1196, + "src": "217:9:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14632,10 +16027,36 @@ "typeString": "uint256" }, "typeName": { - "id": 1097, + "id": 1164, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "461:7:9", + "src": "217:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1167, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1196, + "src": "228:9:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1166, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "228:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14645,121 +16066,20 @@ "visibility": "internal" } ], - "src": "443:32:9" + "src": "216:22:9" }, "payable": false, "returnParameters": { - "id": 1102, + "id": 1171, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1101, + "id": 1170, "name": "", "nodeType": "VariableDeclaration", - "scope": 1103, - "src": "498:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1100, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "498:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "497:6:9" - }, - "scope": 1131, - "src": "427:77:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 1114, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1110, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1105, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1114, - "src": "530:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "530:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1107, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1114, - "src": "544:10:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "544:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1109, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1114, - "src": "556:13:9", + "scope": 1196, + "src": "262:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14767,10 +16087,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1108, + "id": 1169, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "556:7:9", + "src": "262:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14780,120 +16100,539 @@ "visibility": "internal" } ], - "src": "529:41:9" + "src": "261:9:9" + }, + "scope": 1289, + "src": "204:381:9", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1219, + "nodeType": "Block", + "src": "762:203:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1206, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1200, + "src": "776:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "780:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "776:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1205, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1520, + 1521 + ], + "referencedDeclaration": 1520, + "src": "768:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "768:14:9", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1210, + "nodeType": "ExpressionStatement", + "src": "768:14:9" + }, + { + "assignments": [ + 1212 + ], + "declarations": [ + { + "constant": false, + "id": 1212, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1220, + "src": "846:9:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "846:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1216, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1213, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1198, + "src": "858:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 1214, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1200, + "src": "862:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "858:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "846:17:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 1217, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1212, + "src": "959:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1204, + "id": 1218, + "nodeType": "Return", + "src": "952:8:9" + } + ] + }, + "documentation": "@dev Integer division of two numbers truncating the quotient, reverts on division by zero.", + "id": 1220, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1198, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1220, + "src": "708:9:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "708:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1200, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1220, + "src": "719:9:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "719:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "707:22:9" }, "payable": false, "returnParameters": { - "id": 1113, + "id": 1204, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1112, + "id": 1203, "name": "", "nodeType": "VariableDeclaration", - "scope": 1114, - "src": "593:4:9", + "scope": 1220, + "src": "753:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 1111, - "name": "bool", + "id": 1202, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "593:4:9", + "src": "753:7:9", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "592:6:9" + "src": "752:9:9" }, - "scope": 1131, - "src": "508:91:9", - "stateMutability": "nonpayable", + "scope": 1289, + "src": "695:270:9", + "stateMutability": "pure", "superFunction": null, - "visibility": "external" + "visibility": "internal" }, { - "anonymous": false, - "documentation": null, - "id": 1122, - "name": "Transfer", - "nodeType": "EventDefinition", + "body": { + "id": 1243, + "nodeType": "Block", + "src": "1145:64:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1230, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1224, + "src": "1159:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 1231, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1222, + "src": "1164:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1159:6:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1229, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1520, + 1521 + ], + "referencedDeclaration": 1520, + "src": "1151:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1151:15:9", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1234, + "nodeType": "ExpressionStatement", + "src": "1151:15:9" + }, + { + "assignments": [ + 1236 + ], + "declarations": [ + { + "constant": false, + "id": 1236, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1244, + "src": "1172:9:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1235, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1172:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1240, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1237, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1222, + "src": "1184:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 1238, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1224, + "src": "1188:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1184:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1172:17:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 1241, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1236, + "src": "1203:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1228, + "id": 1242, + "nodeType": "Return", + "src": "1196:8:9" + } + ] + }, + "documentation": "@dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).", + "id": 1244, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", "parameters": { - "id": 1121, + "id": 1225, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1116, - "indexed": true, - "name": "from", + "id": 1222, + "name": "a", "nodeType": "VariableDeclaration", - "scope": 1122, - "src": "623:20:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1115, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "623:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1118, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1122, - "src": "649:18:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1117, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "649:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1120, - "indexed": false, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1122, - "src": "673:13:9", + "scope": 1244, + "src": "1091:9:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14901,10 +16640,36 @@ "typeString": "uint256" }, "typeName": { - "id": 1119, + "id": 1221, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "673:7:9", + "src": "1091:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1224, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1244, + "src": "1102:9:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1223, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1102:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14914,82 +16679,20 @@ "visibility": "internal" } ], - "src": "617:73:9" + "src": "1090:22:9" }, - "src": "603:88:9" - }, - { - "anonymous": false, - "documentation": null, - "id": 1130, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 1129, + "payable": false, + "returnParameters": { + "id": 1228, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1124, - "indexed": true, - "name": "owner", + "id": 1227, + "name": "", "nodeType": "VariableDeclaration", - "scope": 1130, - "src": "715:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1123, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "715:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1126, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 1130, - "src": "742:23:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1125, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "742:7:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1128, - "indexed": false, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1130, - "src": "771:13:9", + "scope": 1244, + "src": "1136:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14997,10 +16700,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1127, + "id": 1226, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "771:7:9", + "src": "1136:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15010,32 +16713,600 @@ "visibility": "internal" } ], - "src": "709:79:9" + "src": "1135:9:9" }, - "src": "695:94:9" + "scope": 1289, + "src": "1078:131:9", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1267, + "nodeType": "Block", + "src": "1339:64:9", + "statements": [ + { + "assignments": [ + 1254 + ], + "declarations": [ + { + "constant": false, + "id": 1254, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1268, + "src": "1345:9:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1253, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1345:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1258, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1255, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1246, + "src": "1357:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 1256, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "1361:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1357:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1345:17:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1262, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1260, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1254, + "src": "1376:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 1261, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1246, + "src": "1381:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1376:6:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1259, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1520, + 1521 + ], + "referencedDeclaration": 1520, + "src": "1368:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1368:15:9", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1264, + "nodeType": "ExpressionStatement", + "src": "1368:15:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 1265, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1254, + "src": "1397:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1252, + "id": 1266, + "nodeType": "Return", + "src": "1390:8:9" + } + ] + }, + "documentation": "@dev Adds two numbers, reverts on overflow.", + "id": 1268, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1249, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1246, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1268, + "src": "1285:9:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1245, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1285:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1248, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1268, + "src": "1296:9:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1247, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1296:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1284:22:9" + }, + "payable": false, + "returnParameters": { + "id": 1252, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1251, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1268, + "src": "1330:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1250, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1330:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1329:9:9" + }, + "scope": 1289, + "src": "1272:131:9", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 1287, + "nodeType": "Block", + "src": "1602:44:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1278, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1272, + "src": "1616:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1621:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1616:6:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1277, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1520, + 1521 + ], + "referencedDeclaration": 1520, + "src": "1608:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1608:15:9", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1282, + "nodeType": "ExpressionStatement", + "src": "1608:15:9" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1283, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1270, + "src": "1636:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "id": 1284, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1272, + "src": "1640:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1636:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1276, + "id": 1286, + "nodeType": "Return", + "src": "1629:12:9" + } + ] + }, + "documentation": "@dev Divides two numbers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.", + "id": 1288, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1270, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1288, + "src": "1548:9:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1548:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1272, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1288, + "src": "1559:9:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1271, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1559:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1547:22:9" + }, + "payable": false, + "returnParameters": { + "id": 1276, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1275, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1288, + "src": "1593:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1274, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1593:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1592:9:9" + }, + "scope": 1289, + "src": "1535:111:9", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" } ], - "scope": 1132, - "src": "115:676:9" + "scope": 1290, + "src": "117:1531:9" } ], - "src": "0:792:9" + "src": "0:1649:9" }, "id": 9 }, - "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol": { + "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol": { "ast": { - "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", + "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", "exportedSymbols": { - "SafeERC20": [ - 1275 + "IERC20": [ + 1358 ] }, - "id": 1276, + "id": 1359, "nodeType": "SourceUnit", "nodes": [ { - "id": 1133, + "id": 1291, "literals": [ "solidity", "^", @@ -15045,25 +17316,862 @@ "nodeType": "PragmaDirective", "src": "0:24:10" }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/20", + "fullyImplemented": false, + "id": 1358, + "linearizedBaseContracts": [ + 1358 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 1296, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1292, + "nodeType": "ParameterList", + "parameters": [], + "src": "156:2:10" + }, + "payable": false, + "returnParameters": { + "id": 1295, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1294, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1296, + "src": "182:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1293, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "182:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "181:9:10" + }, + "scope": 1358, + "src": "136:55:10", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 1303, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1299, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1298, + "name": "who", + "nodeType": "VariableDeclaration", + "scope": 1303, + "src": "214:11:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1297, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "214:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "213:13:10" + }, + "payable": false, + "returnParameters": { + "id": 1302, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1301, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1303, + "src": "250:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1300, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "250:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "249:9:10" + }, + "scope": 1358, + "src": "195:64:10", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 1312, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1308, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1305, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "282:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1304, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "282:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1307, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "297:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1306, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "297:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "281:32:10" + }, + "payable": false, + "returnParameters": { + "id": 1311, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1310, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "341:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1309, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "341:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "340:9:10" + }, + "scope": 1358, + "src": "263:87:10", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 1321, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1314, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 1321, + "src": "372:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1313, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "372:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1316, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1321, + "src": "384:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1315, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "384:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "371:27:10" + }, + "payable": false, + "returnParameters": { + "id": 1320, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1319, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1321, + "src": "417:4:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1318, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "417:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "416:6:10" + }, + "scope": 1358, + "src": "354:69:10", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 1330, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1326, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1323, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1330, + "src": "444:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "444:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1325, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1330, + "src": "461:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1324, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "461:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "443:32:10" + }, + "payable": false, + "returnParameters": { + "id": 1329, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1328, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1330, + "src": "498:4:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1327, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "498:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "497:6:10" + }, + "scope": 1358, + "src": "427:77:10", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 1341, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1337, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1332, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 1341, + "src": "530:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1331, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "530:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1334, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 1341, + "src": "544:10:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1333, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "544:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1336, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1341, + "src": "556:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1335, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "556:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "529:41:10" + }, + "payable": false, + "returnParameters": { + "id": 1340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1339, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1341, + "src": "593:4:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1338, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "593:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "592:6:10" + }, + "scope": 1358, + "src": "508:91:10", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "anonymous": false, + "documentation": null, + "id": 1349, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 1348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1343, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 1349, + "src": "623:20:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1342, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "623:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1345, + "indexed": true, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 1349, + "src": "649:18:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1344, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "649:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1347, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1349, + "src": "673:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "673:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "617:73:10" + }, + "src": "603:88:10" + }, + { + "anonymous": false, + "documentation": null, + "id": 1357, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 1356, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1351, + "indexed": true, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 1357, + "src": "715:21:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1350, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "715:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1353, + "indexed": true, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 1357, + "src": "742:23:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1352, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "742:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1355, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1357, + "src": "771:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1354, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "771:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "709:79:10" + }, + "src": "695:94:10" + } + ], + "scope": 1359, + "src": "115:676:10" + } + ], + "src": "0:792:10" + }, + "id": 10 + }, + "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol": { + "ast": { + "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", + "exportedSymbols": { + "SafeERC20": [ + 1502 + ] + }, + "id": 1503, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1360, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:11" + }, { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", "file": "./IERC20.sol", - "id": 1134, + "id": 1361, "nodeType": "ImportDirective", - "scope": 1276, - "sourceUnit": 1132, - "src": "26:22:10", + "scope": 1503, + "sourceUnit": 1359, + "src": "26:22:11", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "../../math/SafeMath.sol", - "id": 1135, + "id": 1362, "nodeType": "ImportDirective", - "scope": 1276, - "sourceUnit": 1063, - "src": "49:33:10", + "scope": 1503, + "sourceUnit": 1290, + "src": "49:33:11", "symbolAliases": [], "unitAlias": "" }, @@ -15073,34 +18181,34 @@ "contractKind": "library", "documentation": "@title SafeERC20\n@dev Wrappers around ERC20 operations that throw on failure.\nTo use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,\nwhich allows you to call the safe operations as `token.safeTransfer(...)`, etc.", "fullyImplemented": true, - "id": 1275, + "id": 1502, "linearizedBaseContracts": [ - 1275 + 1502 ], "name": "SafeERC20", "nodeType": "ContractDefinition", "nodes": [ { - "id": 1138, + "id": 1365, "libraryName": { "contractScope": null, - "id": 1136, + "id": 1363, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1062, - "src": "382:8:10", + "referencedDeclaration": 1289, + "src": "382:8:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1062", + "typeIdentifier": "t_contract$_SafeMath_$1289", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "376:27:10", + "src": "376:27:11", "typeName": { - "id": 1137, + "id": 1364, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "395:7:10", + "src": "395:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15109,9 +18217,9 @@ }, { "body": { - "id": 1155, + "id": 1382, "nodeType": "Block", - "src": "501:45:10", + "src": "501:45:11", "statements": [ { "expression": { @@ -15122,12 +18230,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1150, + "id": 1377, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1142, - "src": "530:2:10", + "referencedDeclaration": 1369, + "src": "530:2:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15135,12 +18243,12 @@ }, { "argumentTypes": null, - "id": 1151, + "id": 1378, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1144, - "src": "534:5:10", + "referencedDeclaration": 1371, + "src": "534:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15160,32 +18268,32 @@ ], "expression": { "argumentTypes": null, - "id": 1148, + "id": 1375, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1140, - "src": "515:5:10", + "referencedDeclaration": 1367, + "src": "515:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" } }, - "id": 1149, + "id": 1376, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 1094, - "src": "515:14:10", + "referencedDeclaration": 1321, + "src": "515:14:11", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 1152, + "id": 1379, "isConstant": false, "isLValue": false, "isPure": false, @@ -15193,7 +18301,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "515:25:10", + "src": "515:25:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15207,21 +18315,21 @@ "typeString": "bool" } ], - "id": 1147, + "id": 1374, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1293, - 1294 + 1520, + 1521 ], - "referencedDeclaration": 1293, - "src": "507:7:10", + "referencedDeclaration": 1520, + "src": "507:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1153, + "id": 1380, "isConstant": false, "isLValue": false, "isPure": false, @@ -15229,20 +18337,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "507:34:10", + "src": "507:34:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1154, + "id": 1381, "nodeType": "ExpressionStatement", - "src": "507:34:10" + "src": "507:34:11" } ] }, "documentation": null, - "id": 1156, + "id": 1383, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -15250,31 +18358,31 @@ "name": "safeTransfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 1145, + "id": 1372, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1140, + "id": 1367, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1156, - "src": "434:12:10", + "scope": 1383, + "src": "434:12:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 1139, + "id": 1366, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1131, - "src": "434:6:10", + "referencedDeclaration": 1358, + "src": "434:6:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" } }, @@ -15283,11 +18391,11 @@ }, { "constant": false, - "id": 1142, + "id": 1369, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1156, - "src": "452:10:10", + "scope": 1383, + "src": "452:10:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15295,10 +18403,10 @@ "typeString": "address" }, "typeName": { - "id": 1141, + "id": 1368, "name": "address", "nodeType": "ElementaryTypeName", - "src": "452:7:10", + "src": "452:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15309,11 +18417,11 @@ }, { "constant": false, - "id": 1144, + "id": 1371, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1156, - "src": "468:13:10", + "scope": 1383, + "src": "468:13:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15321,10 +18429,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1143, + "id": 1370, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "468:7:10", + "src": "468:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15334,26 +18442,26 @@ "visibility": "internal" } ], - "src": "428:57:10" + "src": "428:57:11" }, "payable": false, "returnParameters": { - "id": 1146, + "id": 1373, "nodeType": "ParameterList", "parameters": [], - "src": "501:0:10" + "src": "501:0:11" }, - "scope": 1275, - "src": "407:139:10", + "scope": 1502, + "src": "407:139:11", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1176, + "id": 1403, "nodeType": "Block", - "src": "666:55:10", + "src": "666:55:11", "statements": [ { "expression": { @@ -15364,12 +18472,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1170, + "id": 1397, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1160, - "src": "699:4:10", + "referencedDeclaration": 1387, + "src": "699:4:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15377,12 +18485,12 @@ }, { "argumentTypes": null, - "id": 1171, + "id": 1398, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1162, - "src": "705:2:10", + "referencedDeclaration": 1389, + "src": "705:2:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15390,12 +18498,12 @@ }, { "argumentTypes": null, - "id": 1172, + "id": 1399, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "709:5:10", + "referencedDeclaration": 1391, + "src": "709:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15419,32 +18527,32 @@ ], "expression": { "argumentTypes": null, - "id": 1168, + "id": 1395, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1158, - "src": "680:5:10", + "referencedDeclaration": 1385, + "src": "680:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" } }, - "id": 1169, + "id": 1396, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 1114, - "src": "680:18:10", + "referencedDeclaration": 1341, + "src": "680:18:11", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,address,uint256) external returns (bool)" } }, - "id": 1173, + "id": 1400, "isConstant": false, "isLValue": false, "isPure": false, @@ -15452,7 +18560,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "680:35:10", + "src": "680:35:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15466,21 +18574,21 @@ "typeString": "bool" } ], - "id": 1167, + "id": 1394, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1293, - 1294 + 1520, + 1521 ], - "referencedDeclaration": 1293, - "src": "672:7:10", + "referencedDeclaration": 1520, + "src": "672:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1174, + "id": 1401, "isConstant": false, "isLValue": false, "isPure": false, @@ -15488,20 +18596,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "672:44:10", + "src": "672:44:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1175, + "id": 1402, "nodeType": "ExpressionStatement", - "src": "672:44:10" + "src": "672:44:11" } ] }, "documentation": null, - "id": 1177, + "id": 1404, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -15509,31 +18617,31 @@ "name": "safeTransferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 1165, + "id": 1392, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1158, + "id": 1385, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1177, - "src": "581:12:10", + "scope": 1404, + "src": "581:12:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 1157, + "id": 1384, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1131, - "src": "581:6:10", + "referencedDeclaration": 1358, + "src": "581:6:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" } }, @@ -15542,11 +18650,11 @@ }, { "constant": false, - "id": 1160, + "id": 1387, "name": "from", "nodeType": "VariableDeclaration", - "scope": 1177, - "src": "599:12:10", + "scope": 1404, + "src": "599:12:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15554,10 +18662,10 @@ "typeString": "address" }, "typeName": { - "id": 1159, + "id": 1386, "name": "address", "nodeType": "ElementaryTypeName", - "src": "599:7:10", + "src": "599:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15568,11 +18676,11 @@ }, { "constant": false, - "id": 1162, + "id": 1389, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1177, - "src": "617:10:10", + "scope": 1404, + "src": "617:10:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15580,10 +18688,10 @@ "typeString": "address" }, "typeName": { - "id": 1161, + "id": 1388, "name": "address", "nodeType": "ElementaryTypeName", - "src": "617:7:10", + "src": "617:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15594,11 +18702,11 @@ }, { "constant": false, - "id": 1164, + "id": 1391, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1177, - "src": "633:13:10", + "scope": 1404, + "src": "633:13:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15606,10 +18714,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1163, + "id": 1390, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "633:7:10", + "src": "633:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15619,26 +18727,26 @@ "visibility": "internal" } ], - "src": "575:75:10" + "src": "575:75:11" }, "payable": false, "returnParameters": { - "id": 1166, + "id": 1393, "nodeType": "ParameterList", "parameters": [], - "src": "666:0:10" + "src": "666:0:11" }, - "scope": 1275, - "src": "550:171:10", + "scope": 1502, + "src": "550:171:11", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1211, + "id": 1438, "nodeType": "Block", - "src": "823:330:10", + "src": "823:330:11", "statements": [ { "expression": { @@ -15650,7 +18758,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1200, + "id": 1427, "isConstant": false, "isLValue": false, "isPure": false, @@ -15664,19 +18772,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1189, + "id": 1416, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1187, + "id": 1414, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1183, - "src": "1045:5:10", + "referencedDeclaration": 1410, + "src": "1045:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15687,14 +18795,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1188, + "id": 1415, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1054:1:10", + "src": "1054:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -15702,21 +18810,21 @@ }, "value": "0" }, - "src": "1045:10:10", + "src": "1045:10:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 1190, + "id": 1417, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "1044:12:10", + "src": "1044:12:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15733,7 +18841,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1198, + "id": 1425, "isConstant": false, "isLValue": false, "isPure": false, @@ -15745,18 +18853,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1193, + "id": 1420, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1290, - "src": "1077:3:10", + "referencedDeclaration": 1517, + "src": "1077:3:11", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1194, + "id": 1421, "isConstant": false, "isLValue": false, "isPure": false, @@ -15764,7 +18872,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1077:10:10", + "src": "1077:10:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15772,12 +18880,12 @@ }, { "argumentTypes": null, - "id": 1195, + "id": 1422, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1181, - "src": "1089:7:10", + "referencedDeclaration": 1408, + "src": "1089:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15797,32 +18905,32 @@ ], "expression": { "argumentTypes": null, - "id": 1191, + "id": 1418, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1179, - "src": "1061:5:10", + "referencedDeclaration": 1406, + "src": "1061:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" } }, - "id": 1192, + "id": 1419, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 1085, - "src": "1061:15:10", + "referencedDeclaration": 1312, + "src": "1061:15:11", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 1196, + "id": 1423, "isConstant": false, "isLValue": false, "isPure": false, @@ -15830,7 +18938,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1061:36:10", + "src": "1061:36:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15841,14 +18949,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1197, + "id": 1424, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1101:1:10", + "src": "1101:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -15856,27 +18964,27 @@ }, "value": "0" }, - "src": "1061:41:10", + "src": "1061:41:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 1199, + "id": 1426, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "1060:43:10", + "src": "1060:43:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1044:59:10", + "src": "1044:59:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -15890,21 +18998,21 @@ "typeString": "bool" } ], - "id": 1186, + "id": 1413, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1293, - 1294 + 1520, + 1521 ], - "referencedDeclaration": 1293, - "src": "1036:7:10", + "referencedDeclaration": 1520, + "src": "1036:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1201, + "id": 1428, "isConstant": false, "isLValue": false, "isPure": false, @@ -15912,15 +19020,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1036:68:10", + "src": "1036:68:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1202, + "id": 1429, "nodeType": "ExpressionStatement", - "src": "1036:68:10" + "src": "1036:68:11" }, { "expression": { @@ -15931,12 +19039,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1206, + "id": 1433, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1181, - "src": "1132:7:10", + "referencedDeclaration": 1408, + "src": "1132:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15944,12 +19052,12 @@ }, { "argumentTypes": null, - "id": 1207, + "id": 1434, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1183, - "src": "1141:5:10", + "referencedDeclaration": 1410, + "src": "1141:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15969,32 +19077,32 @@ ], "expression": { "argumentTypes": null, - "id": 1204, + "id": 1431, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1179, - "src": "1118:5:10", + "referencedDeclaration": 1406, + "src": "1118:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" } }, - "id": 1205, + "id": 1432, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "approve", "nodeType": "MemberAccess", - "referencedDeclaration": 1103, - "src": "1118:13:10", + "referencedDeclaration": 1330, + "src": "1118:13:11", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 1208, + "id": 1435, "isConstant": false, "isLValue": false, "isPure": false, @@ -16002,7 +19110,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1118:29:10", + "src": "1118:29:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16016,21 +19124,21 @@ "typeString": "bool" } ], - "id": 1203, + "id": 1430, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1293, - 1294 + 1520, + 1521 ], - "referencedDeclaration": 1293, - "src": "1110:7:10", + "referencedDeclaration": 1520, + "src": "1110:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1209, + "id": 1436, "isConstant": false, "isLValue": false, "isPure": false, @@ -16038,20 +19146,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1110:38:10", + "src": "1110:38:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1210, + "id": 1437, "nodeType": "ExpressionStatement", - "src": "1110:38:10" + "src": "1110:38:11" } ] }, "documentation": null, - "id": 1212, + "id": 1439, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -16059,31 +19167,31 @@ "name": "safeApprove", "nodeType": "FunctionDefinition", "parameters": { - "id": 1184, + "id": 1411, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1179, + "id": 1406, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "751:12:10", + "scope": 1439, + "src": "751:12:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 1178, + "id": 1405, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1131, - "src": "751:6:10", + "referencedDeclaration": 1358, + "src": "751:6:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" } }, @@ -16092,11 +19200,11 @@ }, { "constant": false, - "id": 1181, + "id": 1408, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "769:15:10", + "scope": 1439, + "src": "769:15:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16104,10 +19212,10 @@ "typeString": "address" }, "typeName": { - "id": 1180, + "id": 1407, "name": "address", "nodeType": "ElementaryTypeName", - "src": "769:7:10", + "src": "769:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16118,11 +19226,11 @@ }, { "constant": false, - "id": 1183, + "id": 1410, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1212, - "src": "790:13:10", + "scope": 1439, + "src": "790:13:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16130,10 +19238,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1182, + "id": 1409, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "790:7:10", + "src": "790:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16143,39 +19251,39 @@ "visibility": "internal" } ], - "src": "745:62:10" + "src": "745:62:11" }, "payable": false, "returnParameters": { - "id": 1185, + "id": 1412, "nodeType": "ParameterList", "parameters": [], - "src": "823:0:10" + "src": "823:0:11" }, - "scope": 1275, - "src": "725:428:10", + "scope": 1502, + "src": "725:428:11", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1242, + "id": 1469, "nodeType": "Block", - "src": "1265:135:10", + "src": "1265:135:11", "statements": [ { "assignments": [ - 1222 + 1449 ], "declarations": [ { "constant": false, - "id": 1222, + "id": 1449, "name": "newAllowance", "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "1271:20:10", + "scope": 1470, + "src": "1271:20:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16183,10 +19291,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1221, + "id": 1448, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1271:7:10", + "src": "1271:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16196,18 +19304,18 @@ "visibility": "internal" } ], - "id": 1233, + "id": 1460, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1231, + "id": 1458, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1218, - "src": "1338:5:10", + "referencedDeclaration": 1445, + "src": "1338:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16229,14 +19337,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1226, + "id": 1453, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1311, - "src": "1318:4:10", + "referencedDeclaration": 1540, + "src": "1318:4:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$1275", + "typeIdentifier": "t_contract$_SafeERC20_$1502", "typeString": "library SafeERC20" } } @@ -16244,24 +19352,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_SafeERC20_$1275", + "typeIdentifier": "t_contract$_SafeERC20_$1502", "typeString": "library SafeERC20" } ], - "id": 1225, + "id": 1452, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1310:7:10", + "src": "1310:7:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1227, + "id": 1454, "isConstant": false, "isLValue": false, "isPure": false, @@ -16269,7 +19377,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1310:13:10", + "src": "1310:13:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16277,12 +19385,12 @@ }, { "argumentTypes": null, - "id": 1228, + "id": 1455, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1216, - "src": "1325:7:10", + "referencedDeclaration": 1443, + "src": "1325:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16302,32 +19410,32 @@ ], "expression": { "argumentTypes": null, - "id": 1223, + "id": 1450, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1214, - "src": "1294:5:10", + "referencedDeclaration": 1441, + "src": "1294:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" } }, - "id": 1224, + "id": 1451, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 1085, - "src": "1294:15:10", + "referencedDeclaration": 1312, + "src": "1294:15:11", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 1229, + "id": 1456, "isConstant": false, "isLValue": false, "isPure": false, @@ -16335,27 +19443,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1294:39:10", + "src": "1294:39:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1230, + "id": 1457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1041, - "src": "1294:43:10", + "referencedDeclaration": 1268, + "src": "1294:43:11", "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": 1232, + "id": 1459, "isConstant": false, "isLValue": false, "isPure": false, @@ -16363,14 +19471,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1294:50:10", + "src": "1294:50:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1271:73:10" + "src": "1271:73:11" }, { "expression": { @@ -16381,12 +19489,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1237, + "id": 1464, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1216, - "src": "1372:7:10", + "referencedDeclaration": 1443, + "src": "1372:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16394,12 +19502,12 @@ }, { "argumentTypes": null, - "id": 1238, + "id": 1465, "name": "newAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1222, - "src": "1381:12:10", + "referencedDeclaration": 1449, + "src": "1381:12:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16419,32 +19527,32 @@ ], "expression": { "argumentTypes": null, - "id": 1235, + "id": 1462, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1214, - "src": "1358:5:10", + "referencedDeclaration": 1441, + "src": "1358:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" } }, - "id": 1236, + "id": 1463, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "approve", "nodeType": "MemberAccess", - "referencedDeclaration": 1103, - "src": "1358:13:10", + "referencedDeclaration": 1330, + "src": "1358:13:11", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 1239, + "id": 1466, "isConstant": false, "isLValue": false, "isPure": false, @@ -16452,7 +19560,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1358:36:10", + "src": "1358:36:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16466,21 +19574,21 @@ "typeString": "bool" } ], - "id": 1234, + "id": 1461, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1293, - 1294 + 1520, + 1521 ], - "referencedDeclaration": 1293, - "src": "1350:7:10", + "referencedDeclaration": 1520, + "src": "1350:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1240, + "id": 1467, "isConstant": false, "isLValue": false, "isPure": false, @@ -16488,20 +19596,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1350:45:10", + "src": "1350:45:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1241, + "id": 1468, "nodeType": "ExpressionStatement", - "src": "1350:45:10" + "src": "1350:45:11" } ] }, "documentation": null, - "id": 1243, + "id": 1470, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -16509,31 +19617,31 @@ "name": "safeIncreaseAllowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 1219, + "id": 1446, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1214, + "id": 1441, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "1193:12:10", + "scope": 1470, + "src": "1193:12:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 1213, + "id": 1440, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1131, - "src": "1193:6:10", + "referencedDeclaration": 1358, + "src": "1193:6:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" } }, @@ -16542,11 +19650,11 @@ }, { "constant": false, - "id": 1216, + "id": 1443, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "1211:15:10", + "scope": 1470, + "src": "1211:15:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16554,10 +19662,10 @@ "typeString": "address" }, "typeName": { - "id": 1215, + "id": 1442, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1211:7:10", + "src": "1211:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16568,11 +19676,11 @@ }, { "constant": false, - "id": 1218, + "id": 1445, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1243, - "src": "1232:13:10", + "scope": 1470, + "src": "1232:13:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16580,10 +19688,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1217, + "id": 1444, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1232:7:10", + "src": "1232:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16593,39 +19701,39 @@ "visibility": "internal" } ], - "src": "1187:62:10" + "src": "1187:62:11" }, "payable": false, "returnParameters": { - "id": 1220, + "id": 1447, "nodeType": "ParameterList", "parameters": [], - "src": "1265:0:10" + "src": "1265:0:11" }, - "scope": 1275, - "src": "1157:243:10", + "scope": 1502, + "src": "1157:243:11", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1273, + "id": 1500, "nodeType": "Block", - "src": "1512:135:10", + "src": "1512:135:11", "statements": [ { "assignments": [ - 1253 + 1480 ], "declarations": [ { "constant": false, - "id": 1253, + "id": 1480, "name": "newAllowance", "nodeType": "VariableDeclaration", - "scope": 1274, - "src": "1518:20:10", + "scope": 1501, + "src": "1518:20:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16633,10 +19741,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1252, + "id": 1479, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1518:7:10", + "src": "1518:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16646,18 +19754,18 @@ "visibility": "internal" } ], - "id": 1264, + "id": 1491, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1262, + "id": 1489, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1249, - "src": "1585:5:10", + "referencedDeclaration": 1476, + "src": "1585:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16679,14 +19787,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1257, + "id": 1484, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1311, - "src": "1565:4:10", + "referencedDeclaration": 1540, + "src": "1565:4:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$1275", + "typeIdentifier": "t_contract$_SafeERC20_$1502", "typeString": "library SafeERC20" } } @@ -16694,24 +19802,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_SafeERC20_$1275", + "typeIdentifier": "t_contract$_SafeERC20_$1502", "typeString": "library SafeERC20" } ], - "id": 1256, + "id": 1483, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1557:7:10", + "src": "1557:7:11", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1258, + "id": 1485, "isConstant": false, "isLValue": false, "isPure": false, @@ -16719,7 +19827,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1557:13:10", + "src": "1557:13:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16727,12 +19835,12 @@ }, { "argumentTypes": null, - "id": 1259, + "id": 1486, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "1572:7:10", + "referencedDeclaration": 1474, + "src": "1572:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16752,32 +19860,32 @@ ], "expression": { "argumentTypes": null, - "id": 1254, + "id": 1481, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "1541:5:10", + "referencedDeclaration": 1472, + "src": "1541:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" } }, - "id": 1255, + "id": 1482, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 1085, - "src": "1541:15:10", + "referencedDeclaration": 1312, + "src": "1541:15:11", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 1260, + "id": 1487, "isConstant": false, "isLValue": false, "isPure": false, @@ -16785,27 +19893,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1541:39:10", + "src": "1541:39:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1261, + "id": 1488, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1017, - "src": "1541:43:10", + "referencedDeclaration": 1244, + "src": "1541:43:11", "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": 1263, + "id": 1490, "isConstant": false, "isLValue": false, "isPure": false, @@ -16813,14 +19921,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1541:50:10", + "src": "1541:50:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1518:73:10" + "src": "1518:73:11" }, { "expression": { @@ -16831,12 +19939,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1268, + "id": 1495, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "1619:7:10", + "referencedDeclaration": 1474, + "src": "1619:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -16844,12 +19952,12 @@ }, { "argumentTypes": null, - "id": 1269, + "id": 1496, "name": "newAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1253, - "src": "1628:12:10", + "referencedDeclaration": 1480, + "src": "1628:12:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16869,32 +19977,32 @@ ], "expression": { "argumentTypes": null, - "id": 1266, + "id": 1493, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1245, - "src": "1605:5:10", + "referencedDeclaration": 1472, + "src": "1605:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" } }, - "id": 1267, + "id": 1494, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "approve", "nodeType": "MemberAccess", - "referencedDeclaration": 1103, - "src": "1605:13:10", + "referencedDeclaration": 1330, + "src": "1605:13:11", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 1270, + "id": 1497, "isConstant": false, "isLValue": false, "isPure": false, @@ -16902,7 +20010,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1605:36:10", + "src": "1605:36:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -16916,21 +20024,21 @@ "typeString": "bool" } ], - "id": 1265, + "id": 1492, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1293, - 1294 + 1520, + 1521 ], - "referencedDeclaration": 1293, - "src": "1597:7:10", + "referencedDeclaration": 1520, + "src": "1597:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1271, + "id": 1498, "isConstant": false, "isLValue": false, "isPure": false, @@ -16938,20 +20046,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1597:45:10", + "src": "1597:45:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1272, + "id": 1499, "nodeType": "ExpressionStatement", - "src": "1597:45:10" + "src": "1597:45:11" } ] }, "documentation": null, - "id": 1274, + "id": 1501, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -16959,31 +20067,31 @@ "name": "safeDecreaseAllowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 1250, + "id": 1477, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1245, + "id": 1472, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1274, - "src": "1440:12:10", + "scope": 1501, + "src": "1440:12:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 1244, + "id": 1471, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1131, - "src": "1440:6:10", + "referencedDeclaration": 1358, + "src": "1440:6:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1131", + "typeIdentifier": "t_contract$_IERC20_$1358", "typeString": "contract IERC20" } }, @@ -16992,11 +20100,11 @@ }, { "constant": false, - "id": 1247, + "id": 1474, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1274, - "src": "1458:15:10", + "scope": 1501, + "src": "1458:15:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17004,10 +20112,10 @@ "typeString": "address" }, "typeName": { - "id": 1246, + "id": 1473, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1458:7:10", + "src": "1458:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17018,11 +20126,11 @@ }, { "constant": false, - "id": 1249, + "id": 1476, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1274, - "src": "1479:13:10", + "scope": 1501, + "src": "1479:13:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17030,10 +20138,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1248, + "id": 1475, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1479:7:10", + "src": "1479:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17043,29 +20151,29 @@ "visibility": "internal" } ], - "src": "1434:62:10" + "src": "1434:62:11" }, "payable": false, "returnParameters": { - "id": 1251, + "id": 1478, "nodeType": "ParameterList", "parameters": [], - "src": "1512:0:10" + "src": "1512:0:11" }, - "scope": 1275, - "src": "1404:243:10", + "scope": 1502, + "src": "1404:243:11", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 1276, - "src": "353:1296:10" + "scope": 1503, + "src": "353:1296:11" } ], - "src": "0:1650:10" + "src": "0:1650:11" }, - "id": 10 + "id": 11 } } } \ No newline at end of file diff --git a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoMiner.abi b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoMiner.abi index 7673494cb..3e4826eae 100644 --- a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoMiner.abi +++ b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoMiner.abi @@ -1 +1 @@ -[{"constant":false,"inputs":[],"name":"terminate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pauseMining","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isAlgoMiner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"isMining","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"startMining","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newMinerAddress","type":"address"}],"name":"migrateMiner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addSupervisor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addCoreTeam","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getMiner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isSystem","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"stopAndRemoveOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"resumeMining","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isCoreTeam","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addSystem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getCategory","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isSupervisor","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"mine","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"deactivateMiner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwnerAddress","type":"address"}],"name":"resetMiner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"activateMiner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceSupervisor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"DAYS_PER_YEAR","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceCoreTeam","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"stopMining","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceSystem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"minerType","type":"uint16"},{"name":"category","type":"uint8"},{"name":"minerAccountAddress","type":"address"},{"name":"tokenAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"}] \ No newline at end of file +[{"constant":false,"inputs":[],"name":"terminate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pauseMining","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isAlgoMiner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"isMining","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"startMining","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newMinerAddress","type":"address"}],"name":"migrateMiner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addSupervisor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addCoreTeam","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getMiner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getReferral","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isSystem","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"stopAndRemoveOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getCurrentDay","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"resumeMining","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getMinerType","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isCoreTeam","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addSystem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getCategory","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isSupervisor","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwnerAddress","type":"address"},{"name":"newReferralAddress","type":"address"}],"name":"resetMiner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"mine","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"deactivateMiner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"activateMiner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceSupervisor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"DAYS_PER_YEAR","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCurrentYearSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCurrentYear","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceCoreTeam","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"stopMining","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceSystem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"minerType","type":"uint8"},{"name":"category","type":"uint8"},{"name":"minerAccountAddress","type":"address"},{"name":"referralAccountAddress","type":"address"},{"name":"tokenAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"}] \ No newline at end of file diff --git a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoMiner.bin b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoMiner.bin index 5d1e3dc47..b6225eb89 100644 --- a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoMiner.bin +++ b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoMiner.bin @@ -1 +1 @@ -60806040523480156200001157600080fd5b506040516080806200122083398101604090815281516020830151918301516060909301516000805433600160a060020a0319918216811760a060020a60ff02191690925560018054909116600160a060020a038416179055919391620000819064010000000062000126810204565b620000953364010000000062000144810204565b620000a9336401000000006200015f810204565b60008360ff1610158015620000c2575060058360ff1611155b1515620000ce57600080fd5b506005805461ffff191661ffff949094169390931762ff000019166201000060ff939093169290920291909117630100000060b860020a0319166301000000600160a060020a0392909216919091021790556200020d565b6200014160028264010000000062000f3d6200017a82021704565b50565b6200014160038264010000000062000f3d6200017a82021704565b6200014160048264010000000062000f3d6200017a82021704565b600160a060020a03811615156200019057600080fd5b620001a58282640100000000620001d5810204565b15620001b057600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a0382161515620001ed57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b611003806200021d6000396000f3006080604052600436106101485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630c08bf88811461014d578063162f986d146101645780631777fb4b1461017957806319a74ab3146101a257806321b79d98146101b7578063231d4e2a146101cc57806329d10b6e146101ed5780632e6b68491461020e578063302c11ca1461022f57806334cdcf2614610260578063363aa6c714610281578063427534a414610296578063608d3d3d146102ab57806374be7592146102cc57806380258e47146102ed57806381a244591461031857806399f4b251146103395780639e614ca01461034e578063ada436e914610363578063b2a32cd514610384578063be95249414610399578063c6846ef8146103ae578063d43acc79146103d5578063da408679146103ea578063e9d61859146103ff575b600080fd5b34801561015957600080fd5b50610162610414565b005b34801561017057600080fd5b50610162610432565b34801561018557600080fd5b5061018e6104a1565b604080519115158252519081900360200190f35b3480156101ae57600080fd5b5061018e6104a6565b3480156101c357600080fd5b506101626104dd565b3480156101d857600080fd5b50610162600160a060020a0360043516610577565b3480156101f957600080fd5b50610162600160a060020a0360043516610663565b34801561021a57600080fd5b50610162600160a060020a0360043516610680565b34801561023b57600080fd5b5061024461069d565b60408051600160a060020a039092168252519081900360200190f35b34801561026c57600080fd5b5061018e600160a060020a03600435166106b3565b34801561028d57600080fd5b506101626106cc565b3480156102a257600080fd5b50610162610764565b3480156102b757600080fd5b5061018e600160a060020a03600435166107d0565b3480156102d857600080fd5b50610162600160a060020a03600435166107e3565b3480156102f957600080fd5b50610302610800565b6040805160ff9092168252519081900360200190f35b34801561032457600080fd5b5061018e600160a060020a036004351661080f565b34801561034557600080fd5b50610162610822565b34801561035a57600080fd5b50610162610a1e565b34801561036f57600080fd5b50610162600160a060020a0360043516610a92565b34801561039057600080fd5b50610162610b2b565b3480156103a557600080fd5b50610162610c45565b3480156103ba57600080fd5b506103c3610c4e565b60408051918252519081900360200190f35b3480156103e157600080fd5b50610162610c54565b3480156103f657600080fd5b50610162610c5d565b34801561040b57600080fd5b50610162610cf2565b61041d336107d0565b151561042857600080fd5b610430610cfb565b565b60005460a060020a900460ff161561044957600080fd5b6104523361080f565b151561045d57600080fd5b600160055460b860020a900460ff16600381111561047757fe5b1461048157600080fd5b600580546002919060b860020a60ff02191660b860020a835b0217905550565b600190565b6000600160055460b860020a900460ff1660038111156104c257fe5b1480156104d8575060055460c060020a900460ff165b905090565b60005460a060020a900460ff16156104f457600080fd5b60055463010000009004600160a060020a0316331461051257600080fd5b600160055460b860020a900460ff16600381111561052c57fe5b1461053657600080fd5b60055460c060020a900460ff161561054d57600080fd5b6005805478ff000000000000000000000000000000000000000000000000191660c060020a179055565b610580336107d0565b151561058b57600080fd5b600060055460b860020a900460ff1660038111156105a557fe5b146105af57600080fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051610660928492600160a060020a03909116916370a08231916024808201926020929091908290030181600087803b15801561061b57600080fd5b505af115801561062f573d6000803e3d6000fd5b505050506040513d602081101561064557600080fd5b5051600154600160a060020a0316919063ffffffff610dc216565b50565b61066c3361080f565b151561067757600080fd5b61066081610e7a565b610689336107d0565b151561069457600080fd5b61066081610e8b565b60055463010000009004600160a060020a031690565b60006106c660028363ffffffff610e9c16565b92915050565b60005460a060020a900460ff16156106e357600080fd5b6106ec3361080f565b15156106f757600080fd5b600360055460b860020a900460ff16600381111561071157fe5b141561071c57600080fd5b6005805460b860020a60ff021916770300000000000000000000000000000000000000000000001778ff00ffffffffffffffffffffffffffffffffffffffff00000019169055565b60005460a060020a900460ff161561077b57600080fd5b6107843361080f565b151561078f57600080fd5b600260055460b860020a900460ff1660038111156107a957fe5b146107b357600080fd5b600580546001919060b860020a60ff02191660b860020a8361049a565b60006106c660038363ffffffff610e9c16565b6107ec336106b3565b15156107f757600080fd5b61066081610ed3565b60055462010000900460ff1690565b60006106c660048363ffffffff610e9c16565b6000805460a060020a900460ff161561083a57600080fd5b610843336106b3565b151561084e57600080fd5b600160055460b860020a900460ff16600381111561086857fe5b1461087257600080fd5b60055460c060020a900460ff16151561088a57600080fd5b60055460d060020a900461ffff16151561090957600580547bffff00000000000000000000000000000000000000000000000000001979ff0000000000000000000000000000000000000000000000000019909116790100000000000000000000000000000000000000000000000000171660d060020a1790556109dd565b60058054600161ffff60d060020a808404821692909201811682027bffff00000000000000000000000000000000000000000000000000001990931692909217928390559091041661016e14156109dd57600580547bffff000000000000000000000000000000000000000000000000000019600160ff790100000000000000000000000000000000000000000000000000808504821692909201160279ff0000000000000000000000000000000000000000000000000019909216919091171660d060020a179055600654600290046006555b5060065461016d9004600081116109f357600080fd5b60055460015461066091600160a060020a03918216916301000000909104168363ffffffff610dc216565b60005460a060020a900460ff1615610a3557600080fd5b610a3e336107d0565b1515610a4957600080fd5b600060055460b860020a900460ff166003811115610a6357fe5b1415610a6e57600080fd5b6005805478ffff000000000000000000000000000000000000000000000019169055565b60005460a060020a900460ff1615610aa957600080fd5b610ab23361080f565b1515610abd57600080fd5b600360055460b860020a900460ff166003811115610ad757fe5b14610ae157600080fd5b60058054600160a060020a039290921663010000000260b860020a60ff021990921660b860020a1776ffffffffffffffffffffffffffffffffffffffff0000001916919091179055565b6000805460a060020a900460ff1615610b4357600080fd5b610b4c336107d0565b1515610b5757600080fd5b600060055460b860020a900460ff166003811115610b7157fe5b14610b7b57600080fd5b6006541515610c2c57600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610bea57600080fd5b505af1158015610bfe573d6000803e3d6000fd5b505050506040513d6020811015610c1457600080fd5b50519050801515610c2457600080fd5b600281046006555b506005805460b860020a60ff02191660b860020a179055565b61043033610ee4565b61016d81565b61043033610ef5565b60005460a060020a900460ff1615610c7457600080fd5b60055463010000009004600160a060020a03163314610c9257600080fd5b600160055460b860020a900460ff166003811115610cac57fe5b14610cb657600080fd5b60055460c060020a900460ff161515610cce57600080fd5b6005805478ff00000000000000000000000000000000000000000000000019169055565b61043033610f06565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b158015610d6057600080fd5b505af1158015610d74573d6000803e3d6000fd5b505050506040513d6020811015610d8a57600080fd5b505190506000811115610dba57600054600154610dba91600160a060020a0391821691168363ffffffff610dc216565b610660610f17565b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610e3e57600080fd5b505af1158015610e52573d6000803e3d6000fd5b505050506040513d6020811015610e6857600080fd5b50511515610e7557600080fd5b505050565b61066060048263ffffffff610f3d16565b61066060038263ffffffff610f3d16565b6000600160a060020a0382161515610eb357600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61066060028263ffffffff610f3d16565b61066060048263ffffffff610f8b16565b61066060038263ffffffff610f8b16565b61066060028263ffffffff610f8b16565b6000805474ff0000000000000000000000000000000000000000191660a060020a179055565b600160a060020a0381161515610f5257600080fd5b610f5c8282610e9c565b15610f6657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a0381161515610fa057600080fd5b610faa8282610e9c565b1515610fb557600080fd5b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a723058200a38ca8f69ea6e0732674e2a58d5b93661b5c2aa8a6c6b89ced63a3d5f3186730029 \ No newline at end of file +60806040523480156200001157600080fd5b5060405160a080620014c7833981016040908152815160208301519183015160608401516080909401516000805433600160a060020a0319918216811760a060020a60ff02191690925560018054909116600160a060020a0384161790559294919262000087906401000000006200014c810204565b6200009b336401000000006200016a810204565b620000af3364010000000062000185810204565b60008460ff1610158015620000c8575060058460ff1611155b1515620000d457600080fd5b6005805486919060ff191660018381811115620000ed57fe5b0217905550506005805461ff00191661010060ff9590951694909402939093176201000060b060020a03191662010000600160a060020a03938416021790925560068054600160a060020a031916929091169190911790555062000233565b62000167600282640100000000620011be620001a082021704565b50565b62000167600382640100000000620011be620001a082021704565b62000167600482640100000000620011be620001a082021704565b600160a060020a0381161515620001b657600080fd5b620001cb8282640100000000620001fb810204565b15620001d657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a03821615156200021357600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61128480620002436000396000f30060806040526004361061017f5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630c08bf888114610184578063162f986d1461019b5780631777fb4b146101b057806319a74ab3146101d957806321b79d98146101ee578063231d4e2a1461020357806329d10b6e146102245780632e6b684914610245578063302c11ca14610266578063329b1c921461029757806334cdcf26146102ac578063363aa6c7146102cd5780633e6968b6146102e2578063427534a41461030e5780634969ae7014610323578063608d3d3d1461034e57806374be75921461036f57806380258e471461039057806381a24459146103a55780638329138f146103c657806399f4b251146103ed5780639e614ca014610402578063b2a32cd514610417578063be9524941461042c578063c6846ef814610441578063cdfd0f6414610468578063ce41607a1461047d578063d43acc7914610492578063da408679146104a7578063e9d61859146104bc575b600080fd5b34801561019057600080fd5b506101996104d1565b005b3480156101a757600080fd5b506101996104ef565b3480156101bc57600080fd5b506101c561055e565b604080519115158252519081900360200190f35b3480156101e557600080fd5b506101c5610563565b3480156101fa57600080fd5b5061019961059a565b34801561020f57600080fd5b50610199600160a060020a0360043516610630565b34801561023057600080fd5b50610199600160a060020a036004351661071c565b34801561025157600080fd5b50610199600160a060020a0360043516610739565b34801561027257600080fd5b5061027b610756565b60408051600160a060020a039092168252519081900360200190f35b3480156102a357600080fd5b5061027b61076b565b3480156102b857600080fd5b506101c5600160a060020a036004351661077a565b3480156102d957600080fd5b50610199610795565b3480156102ee57600080fd5b506102f7610846565b6040805161ffff9092168252519081900360200190f35b34801561031a57600080fd5b50610199610857565b34801561032f57600080fd5b506103386108c3565b6040805160ff9092168252519081900360200190f35b34801561035a57600080fd5b506101c5600160a060020a03600435166108d7565b34801561037b57600080fd5b50610199600160a060020a03600435166108ea565b34801561039c57600080fd5b50610338610907565b3480156103b157600080fd5b506101c5600160a060020a0360043516610915565b3480156103d257600080fd5b50610199600160a060020a0360043581169060243516610928565b3480156103f957600080fd5b506101996109db565b34801561040e57600080fd5b50610199610c2e565b34801561042357600080fd5b50610199610c9f565b34801561043857600080fd5b50610199610dfd565b34801561044d57600080fd5b50610456610e06565b60408051918252519081900360200190f35b34801561047457600080fd5b50610456610e0c565b34801561048957600080fd5b50610338610e12565b34801561049e57600080fd5b50610199610e35565b3480156104b357600080fd5b50610199610e3e565b3480156104c857600080fd5b50610199610ecf565b6104da336108d7565b15156104e557600080fd5b6104ed610ed8565b565b60005460a060020a900460ff161561050657600080fd5b61050f33610915565b151561051a57600080fd5b600160065460a060020a900460ff16600381111561053457fe5b1461053e57600080fd5b600680546002919060a060020a60ff02191660a060020a835b0217905550565b600190565b6000600160065460a060020a900460ff16600381111561057f57fe5b148015610595575060065460a860020a900460ff165b905090565b60005460a060020a900460ff16156105b157600080fd5b600554620100009004600160a060020a031633146105ce57600080fd5b600160065460a060020a900460ff1660038111156105e857fe5b146105f257600080fd5b60065460a860020a900460ff161561060957600080fd5b6006805475ff000000000000000000000000000000000000000000191660a860020a179055565b610639336108d7565b151561064457600080fd5b600060065460a060020a900460ff16600381111561065e57fe5b1461066857600080fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051610719928492600160a060020a03909116916370a08231916024808201926020929091908290030181600087803b1580156106d457600080fd5b505af11580156106e8573d6000803e3d6000fd5b505050506040513d60208110156106fe57600080fd5b5051600154600160a060020a0316919063ffffffff610f9f16565b50565b61072533610915565b151561073057600080fd5b61071981611057565b610742336108d7565b151561074d57600080fd5b61071981611068565b600554620100009004600160a060020a031690565b600654600160a060020a031690565b600061078d60028363ffffffff61107916565b90505b919050565b60005460a060020a900460ff16156107ac57600080fd5b6107b533610915565b15156107c057600080fd5b600360065460a060020a900460ff1660038111156107da57fe5b14156107e557600080fd5b600680546005805475ffffffffffffffffffffffffffffffffffffffff00001916905560a060020a60ff021916740300000000000000000000000000000000000000001775ff00ffffffffffffffffffffffffffffffffffffffff19169055565b60065460b860020a900461ffff1690565b60005460a060020a900460ff161561086e57600080fd5b61087733610915565b151561088257600080fd5b600260065460a060020a900460ff16600381111561089c57fe5b146108a657600080fd5b600680546001919060a060020a60ff02191660a060020a83610557565b60055460009060ff16600181111561059557fe5b600061078d60038363ffffffff61107916565b6108f33361077a565b15156108fe57600080fd5b610719816110b0565b600554610100900460ff1690565b600061078d60048363ffffffff61107916565b60005460a060020a900460ff161561093f57600080fd5b61094833610915565b151561095357600080fd5b600360065460a060020a900460ff16600381111561096d57fe5b1461097757600080fd5b600680546005805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a039687160217905560a060020a60ff02191660a060020a1773ffffffffffffffffffffffffffffffffffffffff191691909216179055565b60008054819060a060020a900460ff16156109f557600080fd5b6109fe3361077a565b1515610a0957600080fd5b600060055460ff166001811115610a1c57fe5b14610a2657600080fd5b600160065460a060020a900460ff166003811115610a4057fe5b14610a4a57600080fd5b60065460a860020a900460ff161515610a6257600080fd5b60065460b860020a900461ffff161515610ad8576006805478ffff00000000000000000000000000000000000000000000001976ff0000000000000000000000000000000000000000000019909116760100000000000000000000000000000000000000000000171660b860020a179055610ba0565b60068054600161ffff60b860020a8084048216929092018116820278ffff00000000000000000000000000000000000000000000001990931692909217928390559091041661016e1415610ba0576006805478ffff000000000000000000000000000000000000000000000019600160ff760100000000000000000000000000000000000000000000808504821692909201160276ff0000000000000000000000000000000000000000000019909216919091171660b860020a179055600754600290046007555b60075461016d9004915060008211610bb757600080fd5b600554600154610be191600160a060020a039182169162010000909104168463ffffffff610f9f16565b600654600160a060020a031615610c2a57506064600a82020460008111610c0757600080fd5b600654600154610c2a91600160a060020a0391821691168363ffffffff610f9f16565b5050565b60005460a060020a900460ff1615610c4557600080fd5b610c4e336108d7565b1515610c5957600080fd5b600060065460a060020a900460ff166003811115610c7357fe5b1415610c7e57600080fd5b6006805475ffff000000000000000000000000000000000000000019169055565b600080548190819060a060020a900460ff1615610cbb57600080fd5b610cc4336108d7565b1515610ccf57600080fd5b600060065460a060020a900460ff166003811115610ce957fe5b14610cf357600080fd5b600060055460ff166001811115610d0657fe5b148015610d135750600754155b15610de257600554610d2c90610100900460ff166110c1565b92506064600a8402600154604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290519390920486019450600160a060020a0316916370a08231916024808201926020929091908290030181600087803b158015610da057600080fd5b505af1158015610db4573d6000803e3d6000fd5b505050506040513d6020811015610dca57600080fd5b50519050818114610dda57600080fd5b600283046007555b50506006805460a060020a60ff02191660a060020a17905550565b6104ed33611173565b61016d81565b60075490565b600654760100000000000000000000000000000000000000000000900460ff1690565b6104ed33611184565b60005460a060020a900460ff1615610e5557600080fd5b600554620100009004600160a060020a03163314610e7257600080fd5b600160065460a060020a900460ff166003811115610e8c57fe5b14610e9657600080fd5b60065460a860020a900460ff161515610eae57600080fd5b6006805475ff00000000000000000000000000000000000000000019169055565b6104ed33611195565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b158015610f3d57600080fd5b505af1158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b505190506000811115610f9757600054600154610f9791600160a060020a0391821691168363ffffffff610f9f16565b6107196111a6565b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561101b57600080fd5b505af115801561102f573d6000803e3d6000fd5b505050506040513d602081101561104557600080fd5b5051151561105257600080fd5b505050565b61071960048263ffffffff6111be16565b61071960038263ffffffff6111be16565b6000600160a060020a038216151561109057600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61071960028263ffffffff6111be16565b600060ff821615156110de575069152d02c7e14af6800000610790565b8160ff16600114156110fb575069d3c21bcecceda1000000610790565b8160ff166002141561111957506a01a784379d99db42000000610790565b8160ff166003141561113757506a027b46536c66c8e3000000610790565b8160ff166004141561115557506a034f086f3b33b684000000610790565b8160ff166005141561079057506a0422ca8b0a00a425000000610790565b61071960048263ffffffff61120c16565b61071960038263ffffffff61120c16565b61071960028263ffffffff61120c16565b6000805460a060020a60ff02191660a060020a179055565b600160a060020a03811615156111d357600080fd5b6111dd8282611079565b156111e757600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038116151561122157600080fd5b61122b8282611079565b151561123657600080fd5b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a72305820d37bea8cf990d36f43cc5b4af261b636128105f981b5fa7014ca1bf22a0030880029 \ No newline at end of file diff --git a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoMiner.json b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoMiner.json index 55de43ce4..c1eec1c76 100644 --- a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoMiner.json +++ b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoMiner.json @@ -111,6 +111,20 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "getReferral", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [ @@ -139,6 +153,20 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "getCurrentDay", + "outputs": [ + { + "name": "", + "type": "uint16" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": false, "inputs": [], @@ -148,6 +176,20 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "getMinerType", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [ @@ -214,6 +256,24 @@ "stateMutability": "view", "type": "function" }, + { + "constant": false, + "inputs": [ + { + "name": "newOwnerAddress", + "type": "address" + }, + { + "name": "newReferralAddress", + "type": "address" + } + ], + "name": "resetMiner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": false, "inputs": [], @@ -232,20 +292,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "constant": false, - "inputs": [ - { - "name": "newOwnerAddress", - "type": "address" - } - ], - "name": "resetMiner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "constant": false, "inputs": [], @@ -278,6 +324,34 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "getCurrentYearSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCurrentYear", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": false, "inputs": [], @@ -309,7 +383,7 @@ "inputs": [ { "name": "minerType", - "type": "uint16" + "type": "uint8" }, { "name": "category", @@ -319,6 +393,10 @@ "name": "minerAccountAddress", "type": "address" }, + { + "name": "referralAccountAddress", + "type": "address" + }, { "name": "tokenAddress", "type": "address" @@ -329,7 +407,7 @@ "type": "constructor" } ], - "bytecode": "60806040523480156200001157600080fd5b506040516080806200122083398101604090815281516020830151918301516060909301516000805433600160a060020a0319918216811760a060020a60ff02191690925560018054909116600160a060020a038416179055919391620000819064010000000062000126810204565b620000953364010000000062000144810204565b620000a9336401000000006200015f810204565b60008360ff1610158015620000c2575060058360ff1611155b1515620000ce57600080fd5b506005805461ffff191661ffff949094169390931762ff000019166201000060ff939093169290920291909117630100000060b860020a0319166301000000600160a060020a0392909216919091021790556200020d565b6200014160028264010000000062000f3d6200017a82021704565b50565b6200014160038264010000000062000f3d6200017a82021704565b6200014160048264010000000062000f3d6200017a82021704565b600160a060020a03811615156200019057600080fd5b620001a58282640100000000620001d5810204565b15620001b057600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a0382161515620001ed57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b611003806200021d6000396000f3006080604052600436106101485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630c08bf88811461014d578063162f986d146101645780631777fb4b1461017957806319a74ab3146101a257806321b79d98146101b7578063231d4e2a146101cc57806329d10b6e146101ed5780632e6b68491461020e578063302c11ca1461022f57806334cdcf2614610260578063363aa6c714610281578063427534a414610296578063608d3d3d146102ab57806374be7592146102cc57806380258e47146102ed57806381a244591461031857806399f4b251146103395780639e614ca01461034e578063ada436e914610363578063b2a32cd514610384578063be95249414610399578063c6846ef8146103ae578063d43acc79146103d5578063da408679146103ea578063e9d61859146103ff575b600080fd5b34801561015957600080fd5b50610162610414565b005b34801561017057600080fd5b50610162610432565b34801561018557600080fd5b5061018e6104a1565b604080519115158252519081900360200190f35b3480156101ae57600080fd5b5061018e6104a6565b3480156101c357600080fd5b506101626104dd565b3480156101d857600080fd5b50610162600160a060020a0360043516610577565b3480156101f957600080fd5b50610162600160a060020a0360043516610663565b34801561021a57600080fd5b50610162600160a060020a0360043516610680565b34801561023b57600080fd5b5061024461069d565b60408051600160a060020a039092168252519081900360200190f35b34801561026c57600080fd5b5061018e600160a060020a03600435166106b3565b34801561028d57600080fd5b506101626106cc565b3480156102a257600080fd5b50610162610764565b3480156102b757600080fd5b5061018e600160a060020a03600435166107d0565b3480156102d857600080fd5b50610162600160a060020a03600435166107e3565b3480156102f957600080fd5b50610302610800565b6040805160ff9092168252519081900360200190f35b34801561032457600080fd5b5061018e600160a060020a036004351661080f565b34801561034557600080fd5b50610162610822565b34801561035a57600080fd5b50610162610a1e565b34801561036f57600080fd5b50610162600160a060020a0360043516610a92565b34801561039057600080fd5b50610162610b2b565b3480156103a557600080fd5b50610162610c45565b3480156103ba57600080fd5b506103c3610c4e565b60408051918252519081900360200190f35b3480156103e157600080fd5b50610162610c54565b3480156103f657600080fd5b50610162610c5d565b34801561040b57600080fd5b50610162610cf2565b61041d336107d0565b151561042857600080fd5b610430610cfb565b565b60005460a060020a900460ff161561044957600080fd5b6104523361080f565b151561045d57600080fd5b600160055460b860020a900460ff16600381111561047757fe5b1461048157600080fd5b600580546002919060b860020a60ff02191660b860020a835b0217905550565b600190565b6000600160055460b860020a900460ff1660038111156104c257fe5b1480156104d8575060055460c060020a900460ff165b905090565b60005460a060020a900460ff16156104f457600080fd5b60055463010000009004600160a060020a0316331461051257600080fd5b600160055460b860020a900460ff16600381111561052c57fe5b1461053657600080fd5b60055460c060020a900460ff161561054d57600080fd5b6005805478ff000000000000000000000000000000000000000000000000191660c060020a179055565b610580336107d0565b151561058b57600080fd5b600060055460b860020a900460ff1660038111156105a557fe5b146105af57600080fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051610660928492600160a060020a03909116916370a08231916024808201926020929091908290030181600087803b15801561061b57600080fd5b505af115801561062f573d6000803e3d6000fd5b505050506040513d602081101561064557600080fd5b5051600154600160a060020a0316919063ffffffff610dc216565b50565b61066c3361080f565b151561067757600080fd5b61066081610e7a565b610689336107d0565b151561069457600080fd5b61066081610e8b565b60055463010000009004600160a060020a031690565b60006106c660028363ffffffff610e9c16565b92915050565b60005460a060020a900460ff16156106e357600080fd5b6106ec3361080f565b15156106f757600080fd5b600360055460b860020a900460ff16600381111561071157fe5b141561071c57600080fd5b6005805460b860020a60ff021916770300000000000000000000000000000000000000000000001778ff00ffffffffffffffffffffffffffffffffffffffff00000019169055565b60005460a060020a900460ff161561077b57600080fd5b6107843361080f565b151561078f57600080fd5b600260055460b860020a900460ff1660038111156107a957fe5b146107b357600080fd5b600580546001919060b860020a60ff02191660b860020a8361049a565b60006106c660038363ffffffff610e9c16565b6107ec336106b3565b15156107f757600080fd5b61066081610ed3565b60055462010000900460ff1690565b60006106c660048363ffffffff610e9c16565b6000805460a060020a900460ff161561083a57600080fd5b610843336106b3565b151561084e57600080fd5b600160055460b860020a900460ff16600381111561086857fe5b1461087257600080fd5b60055460c060020a900460ff16151561088a57600080fd5b60055460d060020a900461ffff16151561090957600580547bffff00000000000000000000000000000000000000000000000000001979ff0000000000000000000000000000000000000000000000000019909116790100000000000000000000000000000000000000000000000000171660d060020a1790556109dd565b60058054600161ffff60d060020a808404821692909201811682027bffff00000000000000000000000000000000000000000000000000001990931692909217928390559091041661016e14156109dd57600580547bffff000000000000000000000000000000000000000000000000000019600160ff790100000000000000000000000000000000000000000000000000808504821692909201160279ff0000000000000000000000000000000000000000000000000019909216919091171660d060020a179055600654600290046006555b5060065461016d9004600081116109f357600080fd5b60055460015461066091600160a060020a03918216916301000000909104168363ffffffff610dc216565b60005460a060020a900460ff1615610a3557600080fd5b610a3e336107d0565b1515610a4957600080fd5b600060055460b860020a900460ff166003811115610a6357fe5b1415610a6e57600080fd5b6005805478ffff000000000000000000000000000000000000000000000019169055565b60005460a060020a900460ff1615610aa957600080fd5b610ab23361080f565b1515610abd57600080fd5b600360055460b860020a900460ff166003811115610ad757fe5b14610ae157600080fd5b60058054600160a060020a039290921663010000000260b860020a60ff021990921660b860020a1776ffffffffffffffffffffffffffffffffffffffff0000001916919091179055565b6000805460a060020a900460ff1615610b4357600080fd5b610b4c336107d0565b1515610b5757600080fd5b600060055460b860020a900460ff166003811115610b7157fe5b14610b7b57600080fd5b6006541515610c2c57600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015610bea57600080fd5b505af1158015610bfe573d6000803e3d6000fd5b505050506040513d6020811015610c1457600080fd5b50519050801515610c2457600080fd5b600281046006555b506005805460b860020a60ff02191660b860020a179055565b61043033610ee4565b61016d81565b61043033610ef5565b60005460a060020a900460ff1615610c7457600080fd5b60055463010000009004600160a060020a03163314610c9257600080fd5b600160055460b860020a900460ff166003811115610cac57fe5b14610cb657600080fd5b60055460c060020a900460ff161515610cce57600080fd5b6005805478ff00000000000000000000000000000000000000000000000019169055565b61043033610f06565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b158015610d6057600080fd5b505af1158015610d74573d6000803e3d6000fd5b505050506040513d6020811015610d8a57600080fd5b505190506000811115610dba57600054600154610dba91600160a060020a0391821691168363ffffffff610dc216565b610660610f17565b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610e3e57600080fd5b505af1158015610e52573d6000803e3d6000fd5b505050506040513d6020811015610e6857600080fd5b50511515610e7557600080fd5b505050565b61066060048263ffffffff610f3d16565b61066060038263ffffffff610f3d16565b6000600160a060020a0382161515610eb357600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61066060028263ffffffff610f3d16565b61066060048263ffffffff610f8b16565b61066060038263ffffffff610f8b16565b61066060028263ffffffff610f8b16565b6000805474ff0000000000000000000000000000000000000000191660a060020a179055565b600160a060020a0381161515610f5257600080fd5b610f5c8282610e9c565b15610f6657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a0381161515610fa057600080fd5b610faa8282610e9c565b1515610fb557600080fd5b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a723058200a38ca8f69ea6e0732674e2a58d5b93661b5c2aa8a6c6b89ced63a3d5f3186730029", + "bytecode": "60806040523480156200001157600080fd5b5060405160a080620014c7833981016040908152815160208301519183015160608401516080909401516000805433600160a060020a0319918216811760a060020a60ff02191690925560018054909116600160a060020a0384161790559294919262000087906401000000006200014c810204565b6200009b336401000000006200016a810204565b620000af3364010000000062000185810204565b60008460ff1610158015620000c8575060058460ff1611155b1515620000d457600080fd5b6005805486919060ff191660018381811115620000ed57fe5b0217905550506005805461ff00191661010060ff9590951694909402939093176201000060b060020a03191662010000600160a060020a03938416021790925560068054600160a060020a031916929091169190911790555062000233565b62000167600282640100000000620011be620001a082021704565b50565b62000167600382640100000000620011be620001a082021704565b62000167600482640100000000620011be620001a082021704565b600160a060020a0381161515620001b657600080fd5b620001cb8282640100000000620001fb810204565b15620001d657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a03821615156200021357600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61128480620002436000396000f30060806040526004361061017f5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630c08bf888114610184578063162f986d1461019b5780631777fb4b146101b057806319a74ab3146101d957806321b79d98146101ee578063231d4e2a1461020357806329d10b6e146102245780632e6b684914610245578063302c11ca14610266578063329b1c921461029757806334cdcf26146102ac578063363aa6c7146102cd5780633e6968b6146102e2578063427534a41461030e5780634969ae7014610323578063608d3d3d1461034e57806374be75921461036f57806380258e471461039057806381a24459146103a55780638329138f146103c657806399f4b251146103ed5780639e614ca014610402578063b2a32cd514610417578063be9524941461042c578063c6846ef814610441578063cdfd0f6414610468578063ce41607a1461047d578063d43acc7914610492578063da408679146104a7578063e9d61859146104bc575b600080fd5b34801561019057600080fd5b506101996104d1565b005b3480156101a757600080fd5b506101996104ef565b3480156101bc57600080fd5b506101c561055e565b604080519115158252519081900360200190f35b3480156101e557600080fd5b506101c5610563565b3480156101fa57600080fd5b5061019961059a565b34801561020f57600080fd5b50610199600160a060020a0360043516610630565b34801561023057600080fd5b50610199600160a060020a036004351661071c565b34801561025157600080fd5b50610199600160a060020a0360043516610739565b34801561027257600080fd5b5061027b610756565b60408051600160a060020a039092168252519081900360200190f35b3480156102a357600080fd5b5061027b61076b565b3480156102b857600080fd5b506101c5600160a060020a036004351661077a565b3480156102d957600080fd5b50610199610795565b3480156102ee57600080fd5b506102f7610846565b6040805161ffff9092168252519081900360200190f35b34801561031a57600080fd5b50610199610857565b34801561032f57600080fd5b506103386108c3565b6040805160ff9092168252519081900360200190f35b34801561035a57600080fd5b506101c5600160a060020a03600435166108d7565b34801561037b57600080fd5b50610199600160a060020a03600435166108ea565b34801561039c57600080fd5b50610338610907565b3480156103b157600080fd5b506101c5600160a060020a0360043516610915565b3480156103d257600080fd5b50610199600160a060020a0360043581169060243516610928565b3480156103f957600080fd5b506101996109db565b34801561040e57600080fd5b50610199610c2e565b34801561042357600080fd5b50610199610c9f565b34801561043857600080fd5b50610199610dfd565b34801561044d57600080fd5b50610456610e06565b60408051918252519081900360200190f35b34801561047457600080fd5b50610456610e0c565b34801561048957600080fd5b50610338610e12565b34801561049e57600080fd5b50610199610e35565b3480156104b357600080fd5b50610199610e3e565b3480156104c857600080fd5b50610199610ecf565b6104da336108d7565b15156104e557600080fd5b6104ed610ed8565b565b60005460a060020a900460ff161561050657600080fd5b61050f33610915565b151561051a57600080fd5b600160065460a060020a900460ff16600381111561053457fe5b1461053e57600080fd5b600680546002919060a060020a60ff02191660a060020a835b0217905550565b600190565b6000600160065460a060020a900460ff16600381111561057f57fe5b148015610595575060065460a860020a900460ff165b905090565b60005460a060020a900460ff16156105b157600080fd5b600554620100009004600160a060020a031633146105ce57600080fd5b600160065460a060020a900460ff1660038111156105e857fe5b146105f257600080fd5b60065460a860020a900460ff161561060957600080fd5b6006805475ff000000000000000000000000000000000000000000191660a860020a179055565b610639336108d7565b151561064457600080fd5b600060065460a060020a900460ff16600381111561065e57fe5b1461066857600080fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051610719928492600160a060020a03909116916370a08231916024808201926020929091908290030181600087803b1580156106d457600080fd5b505af11580156106e8573d6000803e3d6000fd5b505050506040513d60208110156106fe57600080fd5b5051600154600160a060020a0316919063ffffffff610f9f16565b50565b61072533610915565b151561073057600080fd5b61071981611057565b610742336108d7565b151561074d57600080fd5b61071981611068565b600554620100009004600160a060020a031690565b600654600160a060020a031690565b600061078d60028363ffffffff61107916565b90505b919050565b60005460a060020a900460ff16156107ac57600080fd5b6107b533610915565b15156107c057600080fd5b600360065460a060020a900460ff1660038111156107da57fe5b14156107e557600080fd5b600680546005805475ffffffffffffffffffffffffffffffffffffffff00001916905560a060020a60ff021916740300000000000000000000000000000000000000001775ff00ffffffffffffffffffffffffffffffffffffffff19169055565b60065460b860020a900461ffff1690565b60005460a060020a900460ff161561086e57600080fd5b61087733610915565b151561088257600080fd5b600260065460a060020a900460ff16600381111561089c57fe5b146108a657600080fd5b600680546001919060a060020a60ff02191660a060020a83610557565b60055460009060ff16600181111561059557fe5b600061078d60038363ffffffff61107916565b6108f33361077a565b15156108fe57600080fd5b610719816110b0565b600554610100900460ff1690565b600061078d60048363ffffffff61107916565b60005460a060020a900460ff161561093f57600080fd5b61094833610915565b151561095357600080fd5b600360065460a060020a900460ff16600381111561096d57fe5b1461097757600080fd5b600680546005805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a039687160217905560a060020a60ff02191660a060020a1773ffffffffffffffffffffffffffffffffffffffff191691909216179055565b60008054819060a060020a900460ff16156109f557600080fd5b6109fe3361077a565b1515610a0957600080fd5b600060055460ff166001811115610a1c57fe5b14610a2657600080fd5b600160065460a060020a900460ff166003811115610a4057fe5b14610a4a57600080fd5b60065460a860020a900460ff161515610a6257600080fd5b60065460b860020a900461ffff161515610ad8576006805478ffff00000000000000000000000000000000000000000000001976ff0000000000000000000000000000000000000000000019909116760100000000000000000000000000000000000000000000171660b860020a179055610ba0565b60068054600161ffff60b860020a8084048216929092018116820278ffff00000000000000000000000000000000000000000000001990931692909217928390559091041661016e1415610ba0576006805478ffff000000000000000000000000000000000000000000000019600160ff760100000000000000000000000000000000000000000000808504821692909201160276ff0000000000000000000000000000000000000000000019909216919091171660b860020a179055600754600290046007555b60075461016d9004915060008211610bb757600080fd5b600554600154610be191600160a060020a039182169162010000909104168463ffffffff610f9f16565b600654600160a060020a031615610c2a57506064600a82020460008111610c0757600080fd5b600654600154610c2a91600160a060020a0391821691168363ffffffff610f9f16565b5050565b60005460a060020a900460ff1615610c4557600080fd5b610c4e336108d7565b1515610c5957600080fd5b600060065460a060020a900460ff166003811115610c7357fe5b1415610c7e57600080fd5b6006805475ffff000000000000000000000000000000000000000019169055565b600080548190819060a060020a900460ff1615610cbb57600080fd5b610cc4336108d7565b1515610ccf57600080fd5b600060065460a060020a900460ff166003811115610ce957fe5b14610cf357600080fd5b600060055460ff166001811115610d0657fe5b148015610d135750600754155b15610de257600554610d2c90610100900460ff166110c1565b92506064600a8402600154604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290519390920486019450600160a060020a0316916370a08231916024808201926020929091908290030181600087803b158015610da057600080fd5b505af1158015610db4573d6000803e3d6000fd5b505050506040513d6020811015610dca57600080fd5b50519050818114610dda57600080fd5b600283046007555b50506006805460a060020a60ff02191660a060020a17905550565b6104ed33611173565b61016d81565b60075490565b600654760100000000000000000000000000000000000000000000900460ff1690565b6104ed33611184565b60005460a060020a900460ff1615610e5557600080fd5b600554620100009004600160a060020a03163314610e7257600080fd5b600160065460a060020a900460ff166003811115610e8c57fe5b14610e9657600080fd5b60065460a860020a900460ff161515610eae57600080fd5b6006805475ff00000000000000000000000000000000000000000019169055565b6104ed33611195565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b158015610f3d57600080fd5b505af1158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b505190506000811115610f9757600054600154610f9791600160a060020a0391821691168363ffffffff610f9f16565b6107196111a6565b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561101b57600080fd5b505af115801561102f573d6000803e3d6000fd5b505050506040513d602081101561104557600080fd5b5051151561105257600080fd5b505050565b61071960048263ffffffff6111be16565b61071960038263ffffffff6111be16565b6000600160a060020a038216151561109057600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61071960028263ffffffff6111be16565b600060ff821615156110de575069152d02c7e14af6800000610790565b8160ff16600114156110fb575069d3c21bcecceda1000000610790565b8160ff166002141561111957506a01a784379d99db42000000610790565b8160ff166003141561113757506a027b46536c66c8e3000000610790565b8160ff166004141561115557506a034f086f3b33b684000000610790565b8160ff166005141561079057506a0422ca8b0a00a425000000610790565b61071960048263ffffffff61120c16565b61071960038263ffffffff61120c16565b61071960028263ffffffff61120c16565b6000805460a060020a60ff02191660a060020a179055565b600160a060020a03811615156111d357600080fd5b6111dd8282611079565b156111e757600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038116151561122157600080fd5b61122b8282611079565b151561123657600080fd5b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a72305820d37bea8cf990d36f43cc5b4af261b636128105f981b5fa7014ca1bf22a0030880029", "functionHashes": { "DAYS_PER_YEAR()": "c6846ef8", "activateMiner()": "b2a32cd5", @@ -338,7 +416,12 @@ "addSystem(address)": "74be7592", "deactivateMiner()": "9e614ca0", "getCategory()": "80258e47", + "getCurrentDay()": "3e6968b6", + "getCurrentYear()": "ce41607a", + "getCurrentYearSupply()": "cdfd0f64", "getMiner()": "302c11ca", + "getMinerType()": "4969ae70", + "getReferral()": "329b1c92", "isAlgoMiner()": "1777fb4b", "isCoreTeam(address)": "608d3d3d", "isMining()": "19a74ab3", @@ -350,7 +433,7 @@ "renounceCoreTeam()": "d43acc79", "renounceSupervisor()": "be952494", "renounceSystem()": "e9d61859", - "resetMiner(address)": "ada436e9", + "resetMiner(address,address)": "8329138f", "resumeMining()": "427534a4", "startMining()": "21b79d98", "stopAndRemoveOwnership()": "363aa6c7", @@ -359,19 +442,24 @@ }, "gasEstimates": { "creation": { - "codeDepositCost": "819800", + "codeDepositCost": "948000", "executionCost": "infinite", "totalCost": "infinite" }, "external": { - "DAYS_PER_YEAR()": "646", + "DAYS_PER_YEAR()": "712", "activateMiner()": "infinite", "addCoreTeam(address)": "infinite", "addSupervisor(address)": "infinite", "addSystem(address)": "infinite", "deactivateMiner()": "infinite", - "getCategory()": "718", + "getCategory()": "784", + "getCurrentDay()": "737", + "getCurrentYear()": "982", + "getCurrentYearSupply()": "934", "getMiner()": "724", + "getMinerType()": "744", + "getReferral()": "735", "isAlgoMiner()": "234", "isCoreTeam(address)": "infinite", "isMining()": "881", @@ -383,11 +471,11 @@ "renounceCoreTeam()": "infinite", "renounceSupervisor()": "infinite", "renounceSystem()": "infinite", - "resetMiner(address)": "infinite", + "resetMiner(address,address)": "infinite", "resumeMining()": "infinite", "startMining()": "21742", "stopAndRemoveOwnership()": "infinite", - "stopMining()": "22094", + "stopMining()": "22204", "terminate()": "infinite" } } diff --git a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoPool-sol-output.json b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoPool-sol-output.json index 996c88e64..0fb87aba4 100644 --- a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoPool-sol-output.json +++ b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoPool-sol-output.json @@ -1,5 +1,36 @@ { "contracts": { + "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCommon.sol": { + "AlgoCommon": { + "abi": [], + "devdoc": { + "methods": {} + }, + "evm": { + "bytecode": { + "linkReferences": {}, + "object": "6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820a82cc7d287f8450e22843025dd73eaa06172ebd434e1e3cf86a642a33d96584e0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x35 DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xa8 0x2c 0xc7 0xd2 DUP8 0xf8 GASLIMIT 0xe 0x22 DUP5 ADDRESS 0x25 0xdd PUSH20 0xEAA06172EBD434E1E3CF86A642A33D96584E0029 ", + "sourceMap": "27:1033:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27:1033:0;;;;;;;" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "10600", + "executionCost": "66", + "totalCost": "10666" + }, + "internal": { + "getCapacityByCategory(uint8)": "infinite" + } + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.4.24+commit.e67f0147\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCommon.sol\":\"AlgoCommon\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCommon.sol\":{\"keccak256\":\"0x2314139702cc63c8daa379e521abea3be32730ba896f68f3f865749907e64539\",\"urls\":[\"bzzr://b945e0ec5a4ca8a52b5e816c5bb00807d0ca43c5363102821b36c8c4ee98a2d5\"]}},\"version\":1}", + "userdoc": { + "methods": {} + } + } + }, "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCoreTeamRole.sol": { "AlgoCoreTeamRole": { "abi": [ @@ -101,20 +132,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "constant": true, - "inputs": [], - "name": "TOKEN_FACTOR", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "constant": false, "inputs": [ @@ -129,48 +146,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "constant": true, - "inputs": [], - "name": "CAT_4_VALUE", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "CAT_1_VALUE", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "CAT_3_VALUE", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "constant": true, "inputs": [ @@ -190,48 +165,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": true, - "inputs": [], - "name": "CAT_0_VALUE", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "CAT_5_VALUE", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "CAT_2_VALUE", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "constant": false, "inputs": [], @@ -245,7 +178,7 @@ "inputs": [ { "name": "poolType", - "type": "uint16" + "type": "uint8" }, { "name": "tokenAddress", @@ -263,24 +196,17 @@ "evm": { "bytecode": { "linkReferences": {}, - "object": "608060405234801561001057600080fd5b5060405160408061091a8339810160405280516020909101516000805433600160a060020a0319918216811760a060020a60ff02191690925560018054909116600160a060020a03841617905561006f9064010000000061008b810204565b506003805461ffff191661ffff92909216919091179055610134565b6100a36002826401000000006107116100a682021704565b50565b600160a060020a03811615156100bb57600080fd5b6100ce82826401000000006100fd810204565b156100d857600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a038216151561011457600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b6107d7806101436000396000f3006080604052600436106100a05763ffffffff60e060020a6000350416630c08bf8881146100a55780632296f4c7146100bc57806325109e8b146100dd5780632e6b684914610104578063455acbcd14610125578063492fba841461013a57806349dc9ed01461014f578063608d3d3d146101645780639fc3c98314610199578063a89febb2146101ae578063aed6183f146101c3578063d43acc79146101d8575b600080fd5b3480156100b157600080fd5b506100ba6101ed565b005b3480156100c857600080fd5b506100ba600160a060020a036004351661020b565b3480156100e957600080fd5b506100f2610475565b60408051918252519081900360200190f35b34801561011057600080fd5b506100ba600160a060020a0360043516610481565b34801561013157600080fd5b506100f26104a1565b34801561014657600080fd5b506100f26104b0565b34801561015b57600080fd5b506100f26104be565b34801561017057600080fd5b50610185600160a060020a03600435166104cd565b604080519115158252519081900360200190f35b3480156101a557600080fd5b506100f26104e6565b3480156101ba57600080fd5b506100f26104f4565b3480156101cf57600080fd5b506100f2610503565b3480156101e457600080fd5b506100ba610512565b6101f6336104cd565b151561020157600080fd5b61020961051b565b565b600080548190819074010000000000000000000000000000000000000000900460ff161561023857600080fd5b610241336104cd565b151561024c57600080fd5b600160a060020a03841660009081526004602052604090205460ff161561027257600080fd5b83925082600160a060020a0316631777fb4b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156102b357600080fd5b505af11580156102c7573d6000803e3d6000fd5b505050506040513d60208110156102dd57600080fd5b505115156102ea57600080fd5b82600160a060020a03166380258e476040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561032857600080fd5b505af115801561033c573d6000803e3d6000fd5b505050506040513d602081101561035257600080fd5b50519150600060ff83161080159061036e575060058260ff1611155b151561037957600080fd5b50600060ff82161515610397575069152d02c7e14af6800000610428565b8160ff16600114156103b4575069d3c21bcecceda1000000610428565b8160ff16600214156103d257506a01a784379d99db42000000610428565b8160ff16600314156103f057506a027b46536c66c8e3000000610428565b8160ff166004141561040e57506a034f086f3b33b684000000610428565b8160ff166005141561042857506a0422ca8b0a00a4250000005b6000811161043557600080fd5b600160a060020a038085166000908152600460205260409020805460ff191660019081179091555461046f9116858363ffffffff6105e216565b50505050565b670de0b6b3a764000081565b61048a336104cd565b151561049557600080fd5b61049e81610681565b50565b6a034f086f3b33b68400000081565b69d3c21bcecceda100000081565b6a027b46536c66c8e300000081565b60006104e060028363ffffffff61069216565b92915050565b69152d02c7e14af680000081565b6a0422ca8b0a00a42500000081565b6a01a784379d99db4200000081565b610209336106c9565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b15801561058057600080fd5b505af1158015610594573d6000803e3d6000fd5b505050506040513d60208110156105aa57600080fd5b5051905060008111156105da576000546001546105da91600160a060020a0391821691168363ffffffff6105e216565b61049e6106da565b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561064557600080fd5b505af1158015610659573d6000803e3d6000fd5b505050506040513d602081101561066f57600080fd5b5051151561067c57600080fd5b505050565b61049e60028263ffffffff61071116565b6000600160a060020a03821615156106a957600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61049e60028263ffffffff61075f16565b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600160a060020a038116151561072657600080fd5b6107308282610692565b1561073a57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038116151561077457600080fd5b61077e8282610692565b151561078957600080fd5b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a7230582003c6fe797e016b5da34d582d5503b392dfdb98114c82abcb7165886533dc93b80029", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x40 DUP1 PUSH2 0x91A DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x0 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP2 DUP3 AND DUP2 OR PUSH1 0xA0 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT AND SWAP1 SWAP3 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SSTORE PUSH2 0x6F SWAP1 PUSH5 0x100000000 PUSH2 0x8B DUP2 MUL DIV JUMP JUMPDEST POP PUSH1 0x3 DUP1 SLOAD PUSH2 0xFFFF NOT AND PUSH2 0xFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x134 JUMP JUMPDEST PUSH2 0xA3 PUSH1 0x2 DUP3 PUSH5 0x100000000 PUSH2 0x711 PUSH2 0xA6 DUP3 MUL OR DIV JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xBB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCE DUP3 DUP3 PUSH5 0x100000000 PUSH2 0xFD DUP2 MUL DIV JUMP JUMPDEST ISZERO PUSH2 0xD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND ISZERO ISZERO PUSH2 0x114 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x7D7 DUP1 PUSH2 0x143 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xA0 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xC08BF88 DUP2 EQ PUSH2 0xA5 JUMPI DUP1 PUSH4 0x2296F4C7 EQ PUSH2 0xBC JUMPI DUP1 PUSH4 0x25109E8B EQ PUSH2 0xDD JUMPI DUP1 PUSH4 0x2E6B6849 EQ PUSH2 0x104 JUMPI DUP1 PUSH4 0x455ACBCD EQ PUSH2 0x125 JUMPI DUP1 PUSH4 0x492FBA84 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x49DC9ED0 EQ PUSH2 0x14F JUMPI DUP1 PUSH4 0x608D3D3D EQ PUSH2 0x164 JUMPI DUP1 PUSH4 0x9FC3C983 EQ PUSH2 0x199 JUMPI DUP1 PUSH4 0xA89FEBB2 EQ PUSH2 0x1AE JUMPI DUP1 PUSH4 0xAED6183F EQ PUSH2 0x1C3 JUMPI DUP1 PUSH4 0xD43ACC79 EQ PUSH2 0x1D8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBA PUSH2 0x1ED JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBA PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x20B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH2 0x475 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x110 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBA PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x481 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x131 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH2 0x4A1 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x146 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH2 0x4B0 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x15B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH2 0x4BE JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x170 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x185 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x4CD JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH2 0x4E6 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH2 0x4F4 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1CF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH2 0x503 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBA PUSH2 0x512 JUMP JUMPDEST PUSH2 0x1F6 CALLER PUSH2 0x4CD JUMP JUMPDEST ISZERO ISZERO PUSH2 0x201 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x209 PUSH2 0x51B JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD DUP2 SWAP1 DUP2 SWAP1 PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x238 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x241 CALLER PUSH2 0x4CD JUMP JUMPDEST ISZERO ISZERO PUSH2 0x24C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x272 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 SWAP3 POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x1777FB4B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2C7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x2DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x2EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x80258E47 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x328 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x33C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x352 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH1 0x0 PUSH1 0xFF DUP4 AND LT DUP1 ISZERO SWAP1 PUSH2 0x36E JUMPI POP PUSH1 0x5 DUP3 PUSH1 0xFF AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x379 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 PUSH1 0xFF DUP3 AND ISZERO ISZERO PUSH2 0x397 JUMPI POP PUSH10 0x152D02C7E14AF6800000 PUSH2 0x428 JUMP JUMPDEST DUP2 PUSH1 0xFF AND PUSH1 0x1 EQ ISZERO PUSH2 0x3B4 JUMPI POP PUSH10 0xD3C21BCECCEDA1000000 PUSH2 0x428 JUMP JUMPDEST DUP2 PUSH1 0xFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x3D2 JUMPI POP PUSH11 0x1A784379D99DB42000000 PUSH2 0x428 JUMP JUMPDEST DUP2 PUSH1 0xFF AND PUSH1 0x3 EQ ISZERO PUSH2 0x3F0 JUMPI POP PUSH11 0x27B46536C66C8E3000000 PUSH2 0x428 JUMP JUMPDEST DUP2 PUSH1 0xFF AND PUSH1 0x4 EQ ISZERO PUSH2 0x40E JUMPI POP PUSH11 0x34F086F3B33B684000000 PUSH2 0x428 JUMP JUMPDEST DUP2 PUSH1 0xFF AND PUSH1 0x5 EQ ISZERO PUSH2 0x428 JUMPI POP PUSH11 0x422CA8B0A00A425000000 JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x435 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SLOAD PUSH2 0x46F SWAP2 AND DUP6 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x5E2 AND JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH8 0xDE0B6B3A7640000 DUP2 JUMP JUMPDEST PUSH2 0x48A CALLER PUSH2 0x4CD JUMP JUMPDEST ISZERO ISZERO PUSH2 0x495 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x49E DUP2 PUSH2 0x681 JUMP JUMPDEST POP JUMP JUMPDEST PUSH11 0x34F086F3B33B684000000 DUP2 JUMP JUMPDEST PUSH10 0xD3C21BCECCEDA1000000 DUP2 JUMP JUMPDEST PUSH11 0x27B46536C66C8E3000000 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4E0 PUSH1 0x2 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x692 AND JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH10 0x152D02C7E14AF6800000 DUP2 JUMP JUMPDEST PUSH11 0x422CA8B0A00A425000000 DUP2 JUMP JUMPDEST PUSH11 0x1A784379D99DB42000000 DUP2 JUMP JUMPDEST PUSH2 0x209 CALLER PUSH2 0x6C9 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x580 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x594 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x5AA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x5DA JUMPI PUSH1 0x0 SLOAD PUSH1 0x1 SLOAD PUSH2 0x5DA SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 DUP3 AND SWAP2 AND DUP4 PUSH4 0xFFFFFFFF PUSH2 0x5E2 AND JUMP JUMPDEST PUSH2 0x49E PUSH2 0x6DA JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA9059CBB DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x645 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x659 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x66F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x67C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x49E PUSH1 0x2 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x711 AND JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND ISZERO ISZERO PUSH2 0x6A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x49E PUSH1 0x2 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x75F AND JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH21 0xFF0000000000000000000000000000000000000000 NOT AND PUSH21 0x10000000000000000000000000000000000000000 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x726 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x730 DUP3 DUP3 PUSH2 0x692 JUMP JUMPDEST ISZERO PUSH2 0x73A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x774 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x77E DUP3 DUP3 PUSH2 0x692 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x789 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 SUB 0xc6 INVALID PUSH26 0x7E016B5DA34D582D5503B392DFDB98114C82ABCB7165886533DC SWAP4 0xb8 STOP 0x29 ", - "sourceMap": "524:1915:1:-;;;1182:174;8:9:-1;5:2;;;30:1;27;20:12;5:2;1182:174:1;;;;;;;;;;;;;;;;;;;156:8:4;:21;;167:10;-1:-1:-1;;;;;;156:21:4;;;;;-1:-1:-1;;;;;;188:19:4;;;;-1:-1:-1;636:29:2;;;;;-1:-1:-1;;;;;636:29:2;;;;;368:24:0;;:12;;;;:24;:::i;:::-;-1:-1:-1;1328:9:1;:20;;-1:-1:-1;;1328:20:1;;;;;;;;;;;;524:1915;;824:96:0;883:29;:16;904:7;883:20;;;;;;:29;:::i;:::-;824:96;:::o;244:167:5:-;-1:-1:-1;;;;;316:21:5;;;;308:30;;;;;;353:18;357:4;363:7;353:3;;;;:18;:::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:5;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:5;402:4;379:27;;;244:167::o;725:166::-;809:4;-1:-1:-1;;;;;831:21:5;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:5;:11;:20;;;;;;;;;;;;;;;725:166::o;524:1915:1:-;;;;;;;" + "object": "608060405234801561001057600080fd5b506040516040806107f28339810160405280516020909101516000805433600160a060020a0319918216811760a060020a60ff02191690925560018054909116600160a060020a03841617905561006f90640100000000610093810204565b6003805483919060ff19166001838181111561008757fe5b0217905550505061013c565b6100ab6002826401000000006105e16100ae82021704565b50565b600160a060020a03811615156100c357600080fd5b6100d68282640100000000610105810204565b156100e057600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a038216151561011c57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b6106a78061014b6000396000f3006080604052600436106100535763ffffffff60e060020a6000350416630c08bf8881146100585780632296f4c71461006f5780632e6b684914610090578063608d3d3d146100b1578063d43acc79146100e6575b600080fd5b34801561006457600080fd5b5061006d6100fb565b005b34801561007b57600080fd5b5061006d600160a060020a0360043516610119565b34801561009c57600080fd5b5061006d600160a060020a03600435166102f5565b3480156100bd57600080fd5b506100d2600160a060020a0360043516610315565b604080519115158252519081900360200190f35b3480156100f257600080fd5b5061006d610330565b61010433610315565b151561010f57600080fd5b610117610339565b565b600080548190819074010000000000000000000000000000000000000000900460ff161561014657600080fd5b61014f33610315565b151561015a57600080fd5b600160a060020a03841660009081526004602052604090205460ff161561018057600080fd5b83925082600160a060020a0316631777fb4b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156101c157600080fd5b505af11580156101d5573d6000803e3d6000fd5b505050506040513d60208110156101eb57600080fd5b505115156101f857600080fd5b82600160a060020a03166380258e476040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561023657600080fd5b505af115801561024a573d6000803e3d6000fd5b505050506040513d602081101561026057600080fd5b50519150600060ff83161080159061027c575060058260ff1611155b151561028757600080fd5b61029082610400565b9050600160035460ff1660018111156102a557fe5b14156102b5576064600a82020490505b600160a060020a038085166000908152600460205260409020805460ff19166001908117909155546102ef9116858363ffffffff6104b216565b50505050565b6102fe33610315565b151561030957600080fd5b61031281610551565b50565b600061032860028363ffffffff61056216565b90505b919050565b61011733610599565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b15801561039e57600080fd5b505af11580156103b2573d6000803e3d6000fd5b505050506040513d60208110156103c857600080fd5b5051905060008111156103f8576000546001546103f891600160a060020a0391821691168363ffffffff6104b216565b6103126105aa565b600060ff8216151561041d575069152d02c7e14af680000061032b565b8160ff166001141561043a575069d3c21bcecceda100000061032b565b8160ff166002141561045857506a01a784379d99db4200000061032b565b8160ff166003141561047657506a027b46536c66c8e300000061032b565b8160ff166004141561049457506a034f086f3b33b68400000061032b565b8160ff166005141561032b57506a0422ca8b0a00a42500000061032b565b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561051557600080fd5b505af1158015610529573d6000803e3d6000fd5b505050506040513d602081101561053f57600080fd5b5051151561054c57600080fd5b505050565b61031260028263ffffffff6105e116565b6000600160a060020a038216151561057957600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61031260028263ffffffff61062f16565b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600160a060020a03811615156105f657600080fd5b6106008282610562565b1561060a57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038116151561064457600080fd5b61064e8282610562565b151561065957600080fd5b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a723058208317cc38f72fdbf4d19029db12a6c784275ab5dfd7521863b2c79aee26e6effb0029", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x40 DUP1 PUSH2 0x7F2 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 MSTORE DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD MLOAD PUSH1 0x0 DUP1 SLOAD CALLER PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB NOT SWAP2 DUP3 AND DUP2 OR PUSH1 0xA0 PUSH1 0x2 EXP PUSH1 0xFF MUL NOT AND SWAP1 SWAP3 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP1 SWAP2 AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND OR SWAP1 SSTORE PUSH2 0x6F SWAP1 PUSH5 0x100000000 PUSH2 0x93 DUP2 MUL DIV JUMP JUMPDEST PUSH1 0x3 DUP1 SLOAD DUP4 SWAP2 SWAP1 PUSH1 0xFF NOT AND PUSH1 0x1 DUP4 DUP2 DUP2 GT ISZERO PUSH2 0x87 JUMPI INVALID JUMPDEST MUL OR SWAP1 SSTORE POP POP POP PUSH2 0x13C JUMP JUMPDEST PUSH2 0xAB PUSH1 0x2 DUP3 PUSH5 0x100000000 PUSH2 0x5E1 PUSH2 0xAE DUP3 MUL OR DIV JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0xC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD6 DUP3 DUP3 PUSH5 0x100000000 PUSH2 0x105 DUP2 MUL DIV JUMP JUMPDEST ISZERO PUSH2 0xE0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND ISZERO ISZERO PUSH2 0x11C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x6A7 DUP1 PUSH2 0x14B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN STOP PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x53 JUMPI PUSH4 0xFFFFFFFF PUSH1 0xE0 PUSH1 0x2 EXP PUSH1 0x0 CALLDATALOAD DIV AND PUSH4 0xC08BF88 DUP2 EQ PUSH2 0x58 JUMPI DUP1 PUSH4 0x2296F4C7 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0x2E6B6849 EQ PUSH2 0x90 JUMPI DUP1 PUSH4 0x608D3D3D EQ PUSH2 0xB1 JUMPI DUP1 PUSH4 0xD43ACC79 EQ PUSH2 0xE6 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x64 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6D PUSH2 0xFB JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x119 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6D PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x2F5 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB PUSH1 0x4 CALLDATALOAD AND PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD SWAP2 ISZERO ISZERO DUP3 MSTORE MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6D PUSH2 0x330 JUMP JUMPDEST PUSH2 0x104 CALLER PUSH2 0x315 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x10F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x117 PUSH2 0x339 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD DUP2 SWAP1 DUP2 SWAP1 PUSH21 0x10000000000000000000000000000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0x146 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14F CALLER PUSH2 0x315 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x15A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x180 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 SWAP3 POP DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x1777FB4B PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1D5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x1EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x1F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0x80258E47 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x236 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x24A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x260 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 POP PUSH1 0x0 PUSH1 0xFF DUP4 AND LT DUP1 ISZERO SWAP1 PUSH2 0x27C JUMPI POP PUSH1 0x5 DUP3 PUSH1 0xFF AND GT ISZERO JUMPDEST ISZERO ISZERO PUSH2 0x287 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x290 DUP3 PUSH2 0x400 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 PUSH1 0x3 SLOAD PUSH1 0xFF AND PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x2A5 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0x2B5 JUMPI PUSH1 0x64 PUSH1 0xA DUP3 MUL DIV SWAP1 POP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x4 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 SWAP1 DUP2 OR SWAP1 SWAP2 SSTORE SLOAD PUSH2 0x2EF SWAP2 AND DUP6 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x4B2 AND JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x2FE CALLER PUSH2 0x315 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x309 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x312 DUP2 PUSH2 0x551 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x328 PUSH1 0x2 DUP4 PUSH4 0xFFFFFFFF PUSH2 0x562 AND JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x117 CALLER PUSH2 0x599 JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH32 0x70A0823100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 MLOAD PUSH1 0x0 SWAP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND SWAP2 PUSH4 0x70A08231 SWAP2 PUSH1 0x24 DUP1 DUP4 ADD SWAP3 PUSH1 0x20 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP8 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x39E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3B2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x3C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH1 0x0 DUP2 GT ISZERO PUSH2 0x3F8 JUMPI PUSH1 0x0 SLOAD PUSH1 0x1 SLOAD PUSH2 0x3F8 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 DUP3 AND SWAP2 AND DUP4 PUSH4 0xFFFFFFFF PUSH2 0x4B2 AND JUMP JUMPDEST PUSH2 0x312 PUSH2 0x5AA JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND ISZERO ISZERO PUSH2 0x41D JUMPI POP PUSH10 0x152D02C7E14AF6800000 PUSH2 0x32B JUMP JUMPDEST DUP2 PUSH1 0xFF AND PUSH1 0x1 EQ ISZERO PUSH2 0x43A JUMPI POP PUSH10 0xD3C21BCECCEDA1000000 PUSH2 0x32B JUMP JUMPDEST DUP2 PUSH1 0xFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x458 JUMPI POP PUSH11 0x1A784379D99DB42000000 PUSH2 0x32B JUMP JUMPDEST DUP2 PUSH1 0xFF AND PUSH1 0x3 EQ ISZERO PUSH2 0x476 JUMPI POP PUSH11 0x27B46536C66C8E3000000 PUSH2 0x32B JUMP JUMPDEST DUP2 PUSH1 0xFF AND PUSH1 0x4 EQ ISZERO PUSH2 0x494 JUMPI POP PUSH11 0x34F086F3B33B684000000 PUSH2 0x32B JUMP JUMPDEST DUP2 PUSH1 0xFF AND PUSH1 0x5 EQ ISZERO PUSH2 0x32B JUMPI POP PUSH11 0x422CA8B0A00A425000000 PUSH2 0x32B JUMP JUMPDEST DUP3 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH4 0xA9059CBB DUP4 DUP4 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 PUSH1 0x2 EXP MUL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP4 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x515 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x529 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x53F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x54C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x312 PUSH1 0x2 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x5E1 AND JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND ISZERO ISZERO PUSH2 0x579 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x312 PUSH1 0x2 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x62F AND JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH21 0xFF0000000000000000000000000000000000000000 NOT AND PUSH21 0x10000000000000000000000000000000000000000 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x5F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x600 DUP3 DUP3 PUSH2 0x562 JUMP JUMPDEST ISZERO PUSH2 0x60A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH2 0x644 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x64E DUP3 DUP3 PUSH2 0x562 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x659 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 DUP4 OR 0xcc CODESIZE 0xf7 0x2f 0xdb DELEGATECALL 0xd1 SWAP1 0x29 0xdb SLT 0xa6 0xc7 DUP5 0x27 GAS 0xb5 0xdf 0xd7 MSTORE XOR PUSH4 0xB2C79AEE 0x26 0xe6 0xef CREATE2 STOP 0x29 ", + "sourceMap": "552:1250:2:-;;;814:176;8:9:-1;5:2;;;30:1;27;20:12;5:2;814:176:2;;;;;;;;;;;;;;;;;;;156:8:5;:21;;167:10;-1:-1:-1;;;;;;156:21:5;;;;;-1:-1:-1;;;;;;188:19:5;;;;-1:-1:-1;636:29:3;;;;;-1:-1:-1;;;;;636:29:3;;;;;368:24:1;;:12;;;;:24;:::i;:::-;962:9:2;:20;;974:8;;962:9;-1:-1:-1;;962:20:2;;974:8;962:20;;;;;;;;;;;;;814:176;;552:1250;;824:96:1;883:29;:16;904:7;883:20;;;;;;:29;:::i;:::-;824:96;:::o;244:167:6:-;-1:-1:-1;;;;;316:21:6;;;;308:30;;;;;;353:18;357:4;363:7;353:3;;;;:18;:::i;:::-;352:19;344:28;;;;;;-1:-1:-1;;;;;379:20:6;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;379:27:6;402:4;379:27;;;244:167::o;725:166::-;809:4;-1:-1:-1;;;;;831:21:6;;;;823:30;;;;;;-1:-1:-1;;;;;;866:20:6;:11;:20;;;;;;;;;;;;;;;725:166::o;552:1250:2:-;;;;;;;" }, "gasEstimates": { "creation": { - "codeDepositCost": "401400", + "codeDepositCost": "340600", "executionCost": "infinite", "totalCost": "infinite" }, "external": { - "CAT_0_VALUE()": "423", - "CAT_1_VALUE()": "357", - "CAT_2_VALUE()": "467", - "CAT_3_VALUE()": "379", - "CAT_4_VALUE()": "335", - "CAT_5_VALUE()": "445", - "TOKEN_FACTOR()": "291", "addCoreTeam(address)": "infinite", "isCoreTeam(address)": "infinite", "renounceCoreTeam()": "infinite", @@ -289,13 +215,6 @@ } }, "methodIdentifiers": { - "CAT_0_VALUE()": "9fc3c983", - "CAT_1_VALUE()": "492fba84", - "CAT_2_VALUE()": "aed6183f", - "CAT_3_VALUE()": "49dc9ed0", - "CAT_4_VALUE()": "455acbcd", - "CAT_5_VALUE()": "a89febb2", - "TOKEN_FACTOR()": "25109e8b", "addCoreTeam(address)": "2e6b6849", "isCoreTeam(address)": "608d3d3d", "renounceCoreTeam()": "d43acc79", @@ -303,7 +222,7 @@ "trasferToMiner(address)": "2296f4c7" } }, - "metadata": "{\"compiler\":{\"version\":\"0.4.24+commit.e67f0147\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[],\"name\":\"terminate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"minerAddress\",\"type\":\"address\"}],\"name\":\"trasferToMiner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"TOKEN_FACTOR\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addCoreTeam\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"CAT_4_VALUE\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"CAT_1_VALUE\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"CAT_3_VALUE\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isCoreTeam\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"CAT_0_VALUE\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"CAT_5_VALUE\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"CAT_2_VALUE\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceCoreTeam\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"poolType\",\"type\":\"uint16\"},{\"name\":\"tokenAddress\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoPool.sol\":\"AlgoPool\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCoreTeamRole.sol\":{\"keccak256\":\"0xe6fc9b275c7a4c4f00337d2a388cc97a64ad82e5a23c24c59a4593e85a05b08a\",\"urls\":[\"bzzr://40c7674b2a3543a2b2606c70df215a876bd1a064d249e658d2bbd6fe25969c2e\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoPool.sol\":{\"keccak256\":\"0xbb72ddedfb108359e22306e75ce9d1e16ce7fa9e743dfec3a25402df643f3b43\",\"urls\":[\"bzzr://ac95c8dff53cdf9caa690eb44d9f5545d941fdaa6131c412440c503c912db991\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/ERC20TokenHolder.sol\":{\"keccak256\":\"0x71adbf7f060599239b7a981594e43dc8fbe8597fd2853b6fe9e70ff39883d73a\",\"urls\":[\"bzzr://70691c1638cdc0f744f8c5b5a94e4f857ba40ad053816cfbd15e13ed41a3bc66\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/IAlgoMiner.sol\":{\"keccak256\":\"0x94c226040dfda257ee61c1455bbb920db28b6ad0f5cba33ecc76319c003630b7\",\"urls\":[\"bzzr://bdd0568ed74054f0f91933dab7fbba6789cceb60ab2f5200d719347161e8feed\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/Terminable.sol\":{\"keccak256\":\"0x29a8fa3204dbd204355714601ce21d7d717a586a4de21009d8f2a3ca7981963f\",\"urls\":[\"bzzr://55d9b762620cef1e6f7b11a26d6cc123f5b608a59e0d36f9bc0a1e8ff0ff5c42\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xa6e47d62e68903c8fff23500d80e7cc8085b9127995803478d9982cd8a6d49e4\",\"urls\":[\"bzzr://7c87eb3c145fe7592c97baa287501faff7e81c1965333c9b042ffb6b387e94a1\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xdd18f05c74536a06166c90a17ec3c6932853764f292bed314ceb23e730ff83af\",\"urls\":[\"bzzr://1d8a608339978ac18782f7051816cf23b4072d8814979e3ef74788cc6025cca0\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc8a7f15fa44eb10057f8bcb58418d3aed6f5267d211d18f93f3d4e0293e3da44\",\"urls\":[\"bzzr://8825e2508348b01a091ff47b8525e583b6e5604f6679684f805d67a9a6a2a7e9\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0x0a172a0ef8681d4a7d8034d003670a9b1968d914b0bfa64e13ddca289a85d24a\",\"urls\":[\"bzzr://733b6203c967b44d6de90b5c6b144e58a380a3f29befb2dc70e765dae2f1ca18\"]}},\"version\":1}", + "metadata": "{\"compiler\":{\"version\":\"0.4.24+commit.e67f0147\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[],\"name\":\"terminate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"minerAddress\",\"type\":\"address\"}],\"name\":\"trasferToMiner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addCoreTeam\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isCoreTeam\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceCoreTeam\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"poolType\",\"type\":\"uint8\"},{\"name\":\"tokenAddress\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoPool.sol\":\"AlgoPool\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCommon.sol\":{\"keccak256\":\"0x2314139702cc63c8daa379e521abea3be32730ba896f68f3f865749907e64539\",\"urls\":[\"bzzr://b945e0ec5a4ca8a52b5e816c5bb00807d0ca43c5363102821b36c8c4ee98a2d5\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCoreTeamRole.sol\":{\"keccak256\":\"0xe6fc9b275c7a4c4f00337d2a388cc97a64ad82e5a23c24c59a4593e85a05b08a\",\"urls\":[\"bzzr://40c7674b2a3543a2b2606c70df215a876bd1a064d249e658d2bbd6fe25969c2e\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoPool.sol\":{\"keccak256\":\"0x46653d14027337c1d08f502ae1b0d45f3fccf84c0c8d8ec9ab7b5443d627be60\",\"urls\":[\"bzzr://f1b02198c082a8f940590db1e5704f9cac3058f509b035e7d1e45b8e2dc9a632\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/ERC20TokenHolder.sol\":{\"keccak256\":\"0x71adbf7f060599239b7a981594e43dc8fbe8597fd2853b6fe9e70ff39883d73a\",\"urls\":[\"bzzr://70691c1638cdc0f744f8c5b5a94e4f857ba40ad053816cfbd15e13ed41a3bc66\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/IAlgoMiner.sol\":{\"keccak256\":\"0xdc21d3ce2e847a83e62a95fc4e8a31305771c1c6549fba2102ae9a7caa09a1e5\",\"urls\":[\"bzzr://291aa93e18c12398d6d8031308b1a0231d253ec061a5449d0335bd476554383e\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/Terminable.sol\":{\"keccak256\":\"0x29a8fa3204dbd204355714601ce21d7d717a586a4de21009d8f2a3ca7981963f\",\"urls\":[\"bzzr://55d9b762620cef1e6f7b11a26d6cc123f5b608a59e0d36f9bc0a1e8ff0ff5c42\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xa6e47d62e68903c8fff23500d80e7cc8085b9127995803478d9982cd8a6d49e4\",\"urls\":[\"bzzr://7c87eb3c145fe7592c97baa287501faff7e81c1965333c9b042ffb6b387e94a1\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xdd18f05c74536a06166c90a17ec3c6932853764f292bed314ceb23e730ff83af\",\"urls\":[\"bzzr://1d8a608339978ac18782f7051816cf23b4072d8814979e3ef74788cc6025cca0\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc8a7f15fa44eb10057f8bcb58418d3aed6f5267d211d18f93f3d4e0293e3da44\",\"urls\":[\"bzzr://8825e2508348b01a091ff47b8525e583b6e5604f6679684f805d67a9a6a2a7e9\"]},\"d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol\":{\"keccak256\":\"0x0a172a0ef8681d4a7d8034d003670a9b1968d914b0bfa64e13ddca289a85d24a\",\"urls\":[\"bzzr://733b6203c967b44d6de90b5c6b144e58a380a3f29befb2dc70e765dae2f1ca18\"]}},\"version\":1}", "userdoc": { "methods": {} } @@ -388,6 +307,20 @@ "stateMutability": "view", "type": "function" }, + { + "constant": true, + "inputs": [], + "name": "getMinerType", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, { "constant": true, "inputs": [], @@ -417,6 +350,7 @@ "methodIdentifiers": { "getCategory()": "80258e47", "getMiner()": "302c11ca", + "getMinerType()": "4969ae70", "isAlgoMiner()": "1777fb4b", "isMining()": "19a74ab3" } @@ -468,7 +402,7 @@ "linkReferences": {}, "object": "604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820ba9d82b11504517181f938ed511f09c0a22046ef39e2e32460a2175b508e16a80029", "opcodes": "PUSH1 0x4C PUSH1 0x2C PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x0 DUP2 EQ PUSH1 0x1C JUMPI PUSH1 0x1E JUMP JUMPDEST INVALID JUMPDEST POP ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN STOP PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xba SWAP14 DUP3 0xb1 ISZERO DIV MLOAD PUSH18 0x81F938ED511F09C0A22046EF39E2E32460A2 OR JUMPDEST POP DUP15 AND 0xa8 STOP 0x29 ", - "sourceMap": "109:784:5:-;;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" + "sourceMap": "109:784: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" }, "gasEstimates": { "creation": { @@ -502,7 +436,7 @@ "linkReferences": {}, "object": "604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820da2bd0dd3588878574232c2d13f92e16f4b0e8ad94ede9adb0d087f862d4f8cf0029", "opcodes": "PUSH1 0x4C PUSH1 0x2C PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x0 DUP2 EQ PUSH1 0x1C JUMPI PUSH1 0x1E JUMP JUMPDEST INVALID JUMPDEST POP ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN STOP PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xda 0x2b 0xd0 0xdd CALLDATALOAD DUP9 DUP8 DUP6 PUSH21 0x232C2D13F92E16F4B0E8AD94EDE9ADB0D087F862D4 0xf8 0xcf STOP 0x29 ", - "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" + "sourceMap": "117:1531:7:-;;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" }, "gasEstimates": { "creation": { @@ -742,7 +676,7 @@ "linkReferences": {}, "object": "604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820c0f55d8db2bd761049fa5ba6b6c207a4d595b758946aba3715580373517606710029", "opcodes": "PUSH1 0x4C PUSH1 0x2C PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x0 DUP2 EQ PUSH1 0x1C JUMPI PUSH1 0x1E JUMP JUMPDEST INVALID JUMPDEST POP ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN STOP PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT STOP LOG1 PUSH6 0x627A7A723058 KECCAK256 0xc0 0xf5 0x5d DUP14 0xb2 0xbd PUSH23 0x1049FA5BA6B6C207A4D595B758946ABA37155803735176 MOD PUSH18 0x2900000000000000000000000000000000 ", - "sourceMap": "353:1296:8:-;;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" + "sourceMap": "353:1296:9:-;;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" }, "gasEstimates": { "creation": { @@ -768,38 +702,26 @@ } }, "sources": { - "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCoreTeamRole.sol": { + "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCommon.sol": { "ast": { - "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCoreTeamRole.sol", + "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCommon.sol", "exportedSymbols": { - "AlgoCoreTeamRole": [ - 86 + "AlgoCommon": [ + 97 ] }, - "id": 87, + "id": 98, "nodeType": "SourceUnit", "nodes": [ { "id": 1, "literals": [ "solidity", - "^", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:0" - }, - { - "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol", - "file": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol", - "id": 2, - "nodeType": "ImportDirective", - "scope": 87, - "sourceUnit": 512, - "src": "28:189:0", - "symbolAliases": [], - "unitAlias": "" + "src": "0:23:0" }, { "baseContracts": [], @@ -807,1153 +729,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 86, + "id": 97, "linearizedBaseContracts": [ - 86 + 97 ], - "name": "AlgoCoreTeamRole", + "name": "AlgoCommon", "nodeType": "ContractDefinition", "nodes": [ - { - "id": 5, - "libraryName": { - "contractScope": null, - "id": 3, - "name": "Roles", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 511, - "src": "260:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Roles_$511", - "typeString": "library Roles" - } - }, - "nodeType": "UsingForDirective", - "src": "254:27:0", - "typeName": { - "contractScope": null, - "id": 4, - "name": "Roles.Role", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 424, - "src": "270:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$424_storage_ptr", - "typeString": "struct Roles.Role" - } - } - }, - { - "constant": false, - "id": 7, - "name": "_coreTeamMembers", - "nodeType": "VariableDeclaration", - "scope": 86, - "src": "289:35:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$424_storage", - "typeString": "struct Roles.Role" - }, - "typeName": { - "contractScope": null, - "id": 6, - "name": "Roles.Role", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 424, - "src": "289:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$424_storage_ptr", - "typeString": "struct Roles.Role" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 15, - "nodeType": "Block", - "src": "357:43:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 11, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 867, - "src": "381:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 12, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "381:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10, - "name": "_addCoreTeam", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "368:12:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 13, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "368:24:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14, - "nodeType": "ExpressionStatement", - "src": "368:24:0" - } - ] - }, - "documentation": null, - "id": 16, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8, - "nodeType": "ParameterList", - "parameters": [], - "src": "345:2:0" - }, - "payable": false, - "returnParameters": { - "id": 9, - "nodeType": "ParameterList", - "parameters": [], - "src": "357:0:0" - }, - "scope": 86, - "src": "333:67:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 26, - "nodeType": "Block", - "src": "432:62:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 20, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 867, - "src": "462:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 21, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "462:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 19, - "name": "isCoreTeam", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 40, - "src": "451:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 22, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "451:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 18, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 870, - 871 - ], - "referencedDeclaration": 870, - "src": "443:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 23, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "443:31:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 24, - "nodeType": "ExpressionStatement", - "src": "443:31:0" - }, - { - "id": 25, - "nodeType": "PlaceholderStatement", - "src": "485:1:0" - } - ] - }, - "documentation": null, - "id": 27, - "name": "onlyCoreTeam", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 17, - "nodeType": "ParameterList", - "parameters": [], - "src": "429:2:0" - }, - "src": "408:86:0", - "visibility": "internal" - }, - { - "body": { - "id": 39, - "nodeType": "Block", - "src": "566:55:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 36, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 29, - "src": "605:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 34, - "name": "_coreTeamMembers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "584:16:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$424_storage", - "typeString": "struct Roles.Role storage ref" - } - }, - "id": 35, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "has", - "nodeType": "MemberAccess", - "referencedDeclaration": 510, - "src": "584:20:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$424_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$424_storage_ptr_$", - "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" - } - }, - "id": 37, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "584:29:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 33, - "id": 38, - "nodeType": "Return", - "src": "577:36:0" - } - ] - }, - "documentation": null, - "id": 40, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isCoreTeam", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 30, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 29, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 40, - "src": "522:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 28, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "522:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "521:17:0" - }, - "payable": false, - "returnParameters": { - "id": 33, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 40, - "src": "560:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 31, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "560:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "559:6:0" - }, - "scope": 86, - "src": "502:119:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 51, - "nodeType": "Block", - "src": "687:40:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 48, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "711:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 47, - "name": "_addCoreTeam", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "698:12:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 49, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "698:21:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 50, - "nodeType": "ExpressionStatement", - "src": "698:21:0" - } - ] - }, - "documentation": null, - "id": 52, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 45, - "modifierName": { - "argumentTypes": null, - "id": 44, - "name": "onlyCoreTeam", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27, - "src": "674:12:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "674:12:0" - } - ], - "name": "addCoreTeam", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 43, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 42, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 52, - "src": "650:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 41, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "650:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "649:17:0" - }, - "payable": false, - "returnParameters": { - "id": 46, - "nodeType": "ParameterList", - "parameters": [], - "src": "687:0:0" - }, - "scope": 86, - "src": "629:98:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 60, - "nodeType": "Block", - "src": "770:46:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 56, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 867, - "src": "797:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 57, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "797:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 55, - "name": "_removeCoreTeam", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 85, - "src": "781:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 58, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "781:27:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 59, - "nodeType": "ExpressionStatement", - "src": "781:27:0" - } - ] - }, - "documentation": null, - "id": 61, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "renounceCoreTeam", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 53, - "nodeType": "ParameterList", - "parameters": [], - "src": "760:2:0" - }, - "payable": false, - "returnParameters": { - "id": 54, - "nodeType": "ParameterList", - "parameters": [], - "src": "770:0:0" - }, - "scope": 86, - "src": "735:81:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 72, - "nodeType": "Block", - "src": "872:48:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 69, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "904:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 66, - "name": "_coreTeamMembers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "883:16:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$424_storage", - "typeString": "struct Roles.Role storage ref" - } - }, - "id": 68, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 456, - "src": "883:20:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$424_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$424_storage_ptr_$", - "typeString": "function (struct Roles.Role storage pointer,address)" - } - }, - "id": 70, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "883:29:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 71, - "nodeType": "ExpressionStatement", - "src": "883:29:0" - } - ] - }, - "documentation": null, - "id": 73, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_addCoreTeam", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 64, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 63, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 73, - "src": "846:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 62, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "846:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "845:17:0" - }, - "payable": false, - "returnParameters": { - "id": 65, - "nodeType": "ParameterList", - "parameters": [], - "src": "872:0:0" - }, - "scope": 86, - "src": "824:96:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 84, - "nodeType": "Block", - "src": "979:51:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 81, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75, - "src": "1014:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 78, - "name": "_coreTeamMembers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "990:16:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$424_storage", - "typeString": "struct Roles.Role storage ref" - } - }, - "id": 80, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 487, - "src": "990:23:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$424_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$424_storage_ptr_$", - "typeString": "function (struct Roles.Role storage pointer,address)" - } - }, - "id": 82, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "990:32:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 83, - "nodeType": "ExpressionStatement", - "src": "990:32:0" - } - ] - }, - "documentation": null, - "id": 85, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "_removeCoreTeam", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 76, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 85, - "src": "953:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "953:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "952:17:0" - }, - "payable": false, - "returnParameters": { - "id": 77, - "nodeType": "ParameterList", - "parameters": [], - "src": "979:0:0" - }, - "scope": 86, - "src": "928:102:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 87, - "src": "221:812:0" - } - ], - "src": "0:1035:0" - }, - "id": 0 - }, - "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoPool.sol": { - "ast": { - "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoPool.sol", - "exportedSymbols": { - "AlgoPool": [ - 300 - ] - }, - "id": 301, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 88, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:1" - }, - { - "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", - "file": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", - "id": 89, - "nodeType": "ImportDirective", - "scope": 301, - "sourceUnit": 709, - "src": "27:195:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", - "file": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", - "id": 90, - "nodeType": "ImportDirective", - "scope": 301, - "sourceUnit": 853, - "src": "224:198:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/IAlgoMiner.sol", - "file": "./IAlgoMiner.sol", - "id": 91, - "nodeType": "ImportDirective", - "scope": 301, - "sourceUnit": 381, - "src": "426:26:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/ERC20TokenHolder.sol", - "file": "./ERC20TokenHolder.sol", - "id": 92, - "nodeType": "ImportDirective", - "scope": 301, - "sourceUnit": 358, - "src": "454:32:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCoreTeamRole.sol", - "file": "./AlgoCoreTeamRole.sol", - "id": 93, - "nodeType": "ImportDirective", - "scope": 301, - "sourceUnit": 87, - "src": "488:32:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 94, - "name": "ERC20TokenHolder", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 357, - "src": "545:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20TokenHolder_$357", - "typeString": "contract ERC20TokenHolder" - } - }, - "id": 95, - "nodeType": "InheritanceSpecifier", - "src": "545:16:1" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 96, - "name": "AlgoCoreTeamRole", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 86, - "src": "563:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AlgoCoreTeamRole_$86", - "typeString": "contract AlgoCoreTeamRole" - } - }, - "id": 97, - "nodeType": "InheritanceSpecifier", - "src": "563:16:1" - } - ], - "contractDependencies": [ - 357, - 86, - 417 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 300, - "linearizedBaseContracts": [ - 300, - 86, - 357, - 417 - ], - "name": "AlgoPool", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 100, - "libraryName": { - "contractScope": null, - "id": 98, - "name": "SafeERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 852, - "src": "593:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$852", - "typeString": "library SafeERC20" - } - }, - "nodeType": "UsingForDirective", - "src": "587:27:1", - "typeName": { - "contractScope": null, - "id": 99, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 708, - "src": "607:6:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", - "typeString": "contract IERC20" - } - } - }, { "constant": true, - "id": 107, + "id": 8, "name": "TOKEN_FACTOR", "nodeType": "VariableDeclaration", - "scope": 300, - "src": "622:56:1", + "scope": 97, + "src": "56:58:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -1961,10 +750,10 @@ "typeString": "uint256" }, "typeName": { - "id": 101, + "id": 2, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "622:7:1", + "src": "56:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1976,7 +765,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 106, + "id": 7, "isConstant": false, "isLValue": false, "isPure": true, @@ -1984,14 +773,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 102, + "id": 3, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "661:2:1", + "src": "97:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -2007,14 +796,14 @@ { "argumentTypes": null, "hexValue": "3138", - "id": 104, + "id": 5, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "675:2:1", + "src": "111:2:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_18_by_1", @@ -2030,20 +819,20 @@ "typeString": "int_const 18" } ], - "id": 103, + "id": 4, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "667:7:1", + "src": "103:7:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": "uint256" }, - "id": 105, + "id": 6, "isConstant": false, "isLValue": false, "isPure": true, @@ -2051,27 +840,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "667:11:1", + "src": "103:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "661:17:1", + "src": "97:17:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "visibility": "public" + "visibility": "internal" }, { "constant": true, - "id": 112, + "id": 13, "name": "CAT_0_VALUE", "nodeType": "VariableDeclaration", - "scope": 300, - "src": "685:59:1", + "scope": 97, + "src": "121:61:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2079,10 +868,10 @@ "typeString": "uint256" }, "typeName": { - "id": 108, + "id": 9, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "685:7:1", + "src": "121:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2094,7 +883,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 111, + "id": 12, "isConstant": false, "isLValue": false, "isPure": true, @@ -2102,14 +891,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "313030303030", - "id": 109, + "id": 10, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "723:6:1", + "src": "161:6:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_100000_by_1", @@ -2121,32 +910,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 110, + "id": 11, "name": "TOKEN_FACTOR", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "732:12:1", + "referencedDeclaration": 8, + "src": "170:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "723:21:1", + "src": "161:21:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "visibility": "public" + "visibility": "internal" }, { "constant": true, - "id": 117, + "id": 18, "name": "CAT_1_VALUE", "nodeType": "VariableDeclaration", - "scope": 300, - "src": "751:60:1", + "scope": 97, + "src": "189:62:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2154,10 +943,10 @@ "typeString": "uint256" }, "typeName": { - "id": 113, + "id": 14, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "751:7:1", + "src": "189:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2169,7 +958,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 116, + "id": 17, "isConstant": false, "isLValue": false, "isPure": true, @@ -2177,14 +966,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "31303030303030", - "id": 114, + "id": 15, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "789:7:1", + "src": "229:7:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", @@ -2196,32 +985,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 115, + "id": 16, "name": "TOKEN_FACTOR", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "799:12:1", + "referencedDeclaration": 8, + "src": "239:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "789:22:1", + "src": "229:22:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "visibility": "public" + "visibility": "internal" }, { "constant": true, - "id": 124, + "id": 25, "name": "CAT_2_VALUE", "nodeType": "VariableDeclaration", - "scope": 300, - "src": "818:64:1", + "scope": 97, + "src": "258:66:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2229,10 +1018,10 @@ "typeString": "uint256" }, "typeName": { - "id": 118, + "id": 19, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "818:7:1", + "src": "258:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2244,7 +1033,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 123, + "id": 24, "isConstant": false, "isLValue": false, "isPure": true, @@ -2255,7 +1044,7 @@ "typeIdentifier": "t_rational_2000000_by_1", "typeString": "int_const 2000000" }, - "id": 121, + "id": 22, "isConstant": false, "isLValue": false, "isPure": true, @@ -2263,14 +1052,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "32", - "id": 119, + "id": 20, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "856:1:1", + "src": "298:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -2283,14 +1072,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31303030303030", - "id": 120, + "id": 21, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "860:7:1", + "src": "302:7:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", @@ -2298,7 +1087,7 @@ }, "value": "1000000" }, - "src": "856:11:1", + "src": "298:11:0", "typeDescriptions": { "typeIdentifier": "t_rational_2000000_by_1", "typeString": "int_const 2000000" @@ -2308,32 +1097,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 122, + "id": 23, "name": "TOKEN_FACTOR", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "870:12:1", + "referencedDeclaration": 8, + "src": "312:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "856:26:1", + "src": "298:26:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "visibility": "public" + "visibility": "internal" }, { "constant": true, - "id": 131, + "id": 32, "name": "CAT_3_VALUE", "nodeType": "VariableDeclaration", - "scope": 300, - "src": "889:64:1", + "scope": 97, + "src": "331:66:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2341,10 +1130,10 @@ "typeString": "uint256" }, "typeName": { - "id": 125, + "id": 26, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "889:7:1", + "src": "331:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2356,7 +1145,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 130, + "id": 31, "isConstant": false, "isLValue": false, "isPure": true, @@ -2367,7 +1156,7 @@ "typeIdentifier": "t_rational_3000000_by_1", "typeString": "int_const 3000000" }, - "id": 128, + "id": 29, "isConstant": false, "isLValue": false, "isPure": true, @@ -2375,14 +1164,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "33", - "id": 126, + "id": 27, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "927:1:1", + "src": "371:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", @@ -2395,14 +1184,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31303030303030", - "id": 127, + "id": 28, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "931:7:1", + "src": "375:7:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", @@ -2410,7 +1199,7 @@ }, "value": "1000000" }, - "src": "927:11:1", + "src": "371:11:0", "typeDescriptions": { "typeIdentifier": "t_rational_3000000_by_1", "typeString": "int_const 3000000" @@ -2420,32 +1209,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 129, + "id": 30, "name": "TOKEN_FACTOR", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "941:12:1", + "referencedDeclaration": 8, + "src": "385:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "927:26:1", + "src": "371:26:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "visibility": "public" + "visibility": "internal" }, { "constant": true, - "id": 138, + "id": 39, "name": "CAT_4_VALUE", "nodeType": "VariableDeclaration", - "scope": 300, - "src": "960:64:1", + "scope": 97, + "src": "404:66:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2453,10 +1242,10 @@ "typeString": "uint256" }, "typeName": { - "id": 132, + "id": 33, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "960:7:1", + "src": "404:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2468,7 +1257,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 137, + "id": 38, "isConstant": false, "isLValue": false, "isPure": true, @@ -2479,7 +1268,7 @@ "typeIdentifier": "t_rational_4000000_by_1", "typeString": "int_const 4000000" }, - "id": 135, + "id": 36, "isConstant": false, "isLValue": false, "isPure": true, @@ -2487,14 +1276,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "34", - "id": 133, + "id": 34, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "998:1:1", + "src": "444:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", @@ -2507,14 +1296,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31303030303030", - "id": 134, + "id": 35, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1002:7:1", + "src": "448:7:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", @@ -2522,7 +1311,7 @@ }, "value": "1000000" }, - "src": "998:11:1", + "src": "444:11:0", "typeDescriptions": { "typeIdentifier": "t_rational_4000000_by_1", "typeString": "int_const 4000000" @@ -2532,32 +1321,32 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 136, + "id": 37, "name": "TOKEN_FACTOR", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "1012:12:1", + "referencedDeclaration": 8, + "src": "458:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:26:1", + "src": "444:26:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "visibility": "public" + "visibility": "internal" }, { "constant": true, - "id": 145, + "id": 46, "name": "CAT_5_VALUE", "nodeType": "VariableDeclaration", - "scope": 300, - "src": "1031:64:1", + "scope": 97, + "src": "477:66:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2565,10 +1354,10 @@ "typeString": "uint256" }, "typeName": { - "id": 139, + "id": 40, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1031:7:1", + "src": "477:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2580,7 +1369,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 144, + "id": 45, "isConstant": false, "isLValue": false, "isPure": true, @@ -2591,7 +1380,7 @@ "typeIdentifier": "t_rational_5000000_by_1", "typeString": "int_const 5000000" }, - "id": 142, + "id": 43, "isConstant": false, "isLValue": false, "isPure": true, @@ -2599,14 +1388,14 @@ "leftExpression": { "argumentTypes": null, "hexValue": "35", - "id": 140, + "id": 41, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1069:1:1", + "src": "517:1:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -2619,14 +1408,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31303030303030", - "id": 141, + "id": 42, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1073:7:1", + "src": "521:7:0", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1000000_by_1", @@ -2634,7 +1423,7 @@ }, "value": "1000000" }, - "src": "1069:11:1", + "src": "517:11:0", "typeDescriptions": { "typeIdentifier": "t_rational_5000000_by_1", "typeString": "int_const 5000000" @@ -2644,46 +1433,1864 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 143, + "id": 44, "name": "TOKEN_FACTOR", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "1083:12:1", + "referencedDeclaration": 8, + "src": "531:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1069:26:1", + "src": "517:26:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "visibility": "public" + "visibility": "internal" + }, + { + "body": { + "id": 95, + "nodeType": "Block", + "src": "631:426:0", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 55, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 53, + "name": "category", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 48, + "src": "645:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "657:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "645:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 61, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 59, + "name": "category", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 48, + "src": "714:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 60, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "726:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "714:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 67, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 65, + "name": "category", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 48, + "src": "783:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 66, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "795:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "783:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 73, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 71, + "name": "category", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 48, + "src": "852:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "864:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "852:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 79, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 77, + "name": "category", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 48, + "src": "921:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "933:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "921:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 85, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 83, + "name": "category", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 48, + "src": "990:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "35", + "id": 84, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1002:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "src": "990:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 89, + "nodeType": "IfStatement", + "src": "987:63:0", + "trueBody": { + "id": 88, + "nodeType": "Block", + "src": "1005:45:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 86, + "name": "CAT_5_VALUE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "1027:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 52, + "id": 87, + "nodeType": "Return", + "src": "1020:18:0" + } + ] + } + }, + "id": 90, + "nodeType": "IfStatement", + "src": "918:132:0", + "trueBody": { + "id": 82, + "nodeType": "Block", + "src": "936:45:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 80, + "name": "CAT_4_VALUE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39, + "src": "958:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 52, + "id": 81, + "nodeType": "Return", + "src": "951:18:0" + } + ] + } + }, + "id": 91, + "nodeType": "IfStatement", + "src": "849:201:0", + "trueBody": { + "id": 76, + "nodeType": "Block", + "src": "867:45:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 74, + "name": "CAT_3_VALUE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32, + "src": "889:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 52, + "id": 75, + "nodeType": "Return", + "src": "882:18:0" + } + ] + } + }, + "id": 92, + "nodeType": "IfStatement", + "src": "780:270:0", + "trueBody": { + "id": 70, + "nodeType": "Block", + "src": "798:45:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 68, + "name": "CAT_2_VALUE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "820:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 52, + "id": 69, + "nodeType": "Return", + "src": "813:18:0" + } + ] + } + }, + "id": 93, + "nodeType": "IfStatement", + "src": "711:339:0", + "trueBody": { + "id": 64, + "nodeType": "Block", + "src": "729:45:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 62, + "name": "CAT_1_VALUE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18, + "src": "751:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 52, + "id": 63, + "nodeType": "Return", + "src": "744:18:0" + } + ] + } + }, + "id": 94, + "nodeType": "IfStatement", + "src": "642:408:0", + "trueBody": { + "id": 58, + "nodeType": "Block", + "src": "660:45:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 56, + "name": "CAT_0_VALUE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13, + "src": "682:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 52, + "id": 57, + "nodeType": "Return", + "src": "675:18:0" + } + ] + } + } + ] + }, + "documentation": null, + "id": 96, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCapacityByCategory", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 49, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 48, + "name": "category", + "nodeType": "VariableDeclaration", + "scope": 96, + "src": "583:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 47, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "583:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "582:16:0" + }, + "payable": false, + "returnParameters": { + "id": 52, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 51, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 96, + "src": "622:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 50, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "622:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "621:9:0" + }, + "scope": 97, + "src": "552:505:0", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 98, + "src": "27:1033:0" + } + ], + "src": "0:1060:0" + }, + "id": 0 + }, + "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCoreTeamRole.sol": { + "ast": { + "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCoreTeamRole.sol", + "exportedSymbols": { + "AlgoCoreTeamRole": [ + 184 + ] + }, + "id": 185, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 99, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:1" + }, + { + "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol", + "file": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol", + "id": 100, + "nodeType": "ImportDirective", + "scope": 185, + "sourceUnit": 532, + "src": "28:189:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 184, + "linearizedBaseContracts": [ + 184 + ], + "name": "AlgoCoreTeamRole", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 103, + "libraryName": { + "contractScope": null, + "id": 101, + "name": "Roles", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 531, + "src": "260:5:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Roles_$531", + "typeString": "library Roles" + } + }, + "nodeType": "UsingForDirective", + "src": "254:27:1", + "typeName": { + "contractScope": null, + "id": 102, + "name": "Roles.Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 444, + "src": "270:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$444_storage_ptr", + "typeString": "struct Roles.Role" + } + } }, { "constant": false, - "id": 147, - "name": "_poolType", + "id": 105, + "name": "_coreTeamMembers", "nodeType": "VariableDeclaration", - "scope": 300, - "src": "1104:24:1", + "scope": 184, + "src": "289:35:1", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_struct$_Role_$444_storage", + "typeString": "struct Roles.Role" }, "typeName": { - "id": 146, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1104:6:1", + "contractScope": null, + "id": 104, + "name": "Roles.Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 444, + "src": "289:10:1", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_struct$_Role_$444_storage_ptr", + "typeString": "struct Roles.Role" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 113, + "nodeType": "Block", + "src": "357:43:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 109, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "381:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "381:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 108, + "name": "_addCoreTeam", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "368:12:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "368:24:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 112, + "nodeType": "ExpressionStatement", + "src": "368:24:1" + } + ] + }, + "documentation": null, + "id": 114, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 106, + "nodeType": "ParameterList", + "parameters": [], + "src": "345:2:1" + }, + "payable": false, + "returnParameters": { + "id": 107, + "nodeType": "ParameterList", + "parameters": [], + "src": "357:0:1" + }, + "scope": 184, + "src": "333:67:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 124, + "nodeType": "Block", + "src": "432:62:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 118, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "462:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "462:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 117, + "name": "isCoreTeam", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 138, + "src": "451:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "451:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 116, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 890, + 891 + ], + "referencedDeclaration": 890, + "src": "443:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "443:31:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 122, + "nodeType": "ExpressionStatement", + "src": "443:31:1" + }, + { + "id": 123, + "nodeType": "PlaceholderStatement", + "src": "485:1:1" + } + ] + }, + "documentation": null, + "id": 125, + "name": "onlyCoreTeam", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 115, + "nodeType": "ParameterList", + "parameters": [], + "src": "429:2:1" + }, + "src": "408:86:1", + "visibility": "internal" + }, + { + "body": { + "id": 137, + "nodeType": "Block", + "src": "566:55:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 134, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 127, + "src": "605:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 132, + "name": "_coreTeamMembers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 105, + "src": "584:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$444_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 133, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "has", + "nodeType": "MemberAccess", + "referencedDeclaration": 530, + "src": "584:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$444_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$444_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" + } + }, + "id": 135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "584:29:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 131, + "id": 136, + "nodeType": "Return", + "src": "577:36:1" + } + ] + }, + "documentation": null, + "id": 138, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isCoreTeam", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 128, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 127, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 138, + "src": "522:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 126, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "522:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "521:17:1" + }, + "payable": false, + "returnParameters": { + "id": 131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 130, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 138, + "src": "560:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 129, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "560:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "559:6:1" + }, + "scope": 184, + "src": "502:119:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 149, + "nodeType": "Block", + "src": "687:40:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 146, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 140, + "src": "711:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 145, + "name": "_addCoreTeam", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "698:12:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "698:21:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 148, + "nodeType": "ExpressionStatement", + "src": "698:21:1" + } + ] + }, + "documentation": null, + "id": 150, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": null, + "id": 143, + "modifierName": { + "argumentTypes": null, + "id": 142, + "name": "onlyCoreTeam", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "674:12:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "674:12:1" + } + ], + "name": "addCoreTeam", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 141, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 140, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 150, + "src": "650:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "650:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "649:17:1" + }, + "payable": false, + "returnParameters": { + "id": 144, + "nodeType": "ParameterList", + "parameters": [], + "src": "687:0:1" + }, + "scope": 184, + "src": "629:98:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 158, + "nodeType": "Block", + "src": "770:46:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 154, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "797:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "797:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 153, + "name": "_removeCoreTeam", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 183, + "src": "781:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "781:27:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 157, + "nodeType": "ExpressionStatement", + "src": "781:27:1" + } + ] + }, + "documentation": null, + "id": 159, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "renounceCoreTeam", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 151, + "nodeType": "ParameterList", + "parameters": [], + "src": "760:2:1" + }, + "payable": false, + "returnParameters": { + "id": 152, + "nodeType": "ParameterList", + "parameters": [], + "src": "770:0:1" + }, + "scope": 184, + "src": "735:81:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 170, + "nodeType": "Block", + "src": "872:48:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 167, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 161, + "src": "904:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 164, + "name": "_coreTeamMembers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 105, + "src": "883:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$444_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 166, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 476, + "src": "883:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$444_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$444_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address)" + } + }, + "id": 168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "883:29:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 169, + "nodeType": "ExpressionStatement", + "src": "883:29:1" + } + ] + }, + "documentation": null, + "id": 171, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_addCoreTeam", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 162, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 161, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 171, + "src": "846:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "846:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "845:17:1" + }, + "payable": false, + "returnParameters": { + "id": 163, + "nodeType": "ParameterList", + "parameters": [], + "src": "872:0:1" + }, + "scope": 184, + "src": "824:96:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 182, + "nodeType": "Block", + "src": "979:51:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 179, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 173, + "src": "1014:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 176, + "name": "_coreTeamMembers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 105, + "src": "990:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$444_storage", + "typeString": "struct Roles.Role storage ref" + } + }, + "id": 178, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 507, + "src": "990:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$444_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$444_storage_ptr_$", + "typeString": "function (struct Roles.Role storage pointer,address)" + } + }, + "id": 180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "990:32:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 181, + "nodeType": "ExpressionStatement", + "src": "990:32:1" + } + ] + }, + "documentation": null, + "id": 183, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "_removeCoreTeam", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 174, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 173, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 183, + "src": "953:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 172, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "953:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "952:17:1" + }, + "payable": false, + "returnParameters": { + "id": 175, + "nodeType": "ParameterList", + "parameters": [], + "src": "979:0:1" + }, + "scope": 184, + "src": "928:102:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 185, + "src": "221:812:1" + } + ], + "src": "0:1035:1" + }, + "id": 1 + }, + "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoPool.sol": { + "ast": { + "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoPool.sol", + "exportedSymbols": { + "AlgoPool": [ + 315 + ] + }, + "id": 316, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 186, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:2" + }, + { + "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "file": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", + "id": 187, + "nodeType": "ImportDirective", + "scope": 316, + "sourceUnit": 729, + "src": "27:195:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", + "file": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", + "id": 188, + "nodeType": "ImportDirective", + "scope": 316, + "sourceUnit": 873, + "src": "224:198:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/IAlgoMiner.sol", + "file": "./IAlgoMiner.sol", + "id": 189, + "nodeType": "ImportDirective", + "scope": 316, + "sourceUnit": 401, + "src": "426:26:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCommon.sol", + "file": "./AlgoCommon.sol", + "id": 190, + "nodeType": "ImportDirective", + "scope": 316, + "sourceUnit": 98, + "src": "454:26:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/ERC20TokenHolder.sol", + "file": "./ERC20TokenHolder.sol", + "id": 191, + "nodeType": "ImportDirective", + "scope": 316, + "sourceUnit": 373, + "src": "482:32:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoCoreTeamRole.sol", + "file": "./AlgoCoreTeamRole.sol", + "id": 192, + "nodeType": "ImportDirective", + "scope": 316, + "sourceUnit": 185, + "src": "516:32:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 193, + "name": "AlgoCommon", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 97, + "src": "573:10:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AlgoCommon_$97", + "typeString": "contract AlgoCommon" + } + }, + "id": 194, + "nodeType": "InheritanceSpecifier", + "src": "573:10:2" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 195, + "name": "ERC20TokenHolder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 372, + "src": "585:16:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20TokenHolder_$372", + "typeString": "contract ERC20TokenHolder" + } + }, + "id": 196, + "nodeType": "InheritanceSpecifier", + "src": "585:16:2" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 197, + "name": "AlgoCoreTeamRole", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 184, + "src": "603:16:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AlgoCoreTeamRole_$184", + "typeString": "contract AlgoCoreTeamRole" + } + }, + "id": 198, + "nodeType": "InheritanceSpecifier", + "src": "603:16:2" + } + ], + "contractDependencies": [ + 97, + 372, + 184, + 437 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 315, + "linearizedBaseContracts": [ + 315, + 184, + 372, + 437, + 97 + ], + "name": "AlgoPool", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 201, + "libraryName": { + "contractScope": null, + "id": 199, + "name": "SafeERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 872, + "src": "633:9:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$872", + "typeString": "library SafeERC20" + } + }, + "nodeType": "UsingForDirective", + "src": "627:27:2", + "typeName": { + "contractScope": null, + "id": 200, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 728, + "src": "647:6:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$728", + "typeString": "contract IERC20" + } + } + }, + { + "canonicalName": "AlgoPool.PoolType", + "id": 204, + "members": [ + { + "id": 202, + "name": "MinerPool", + "nodeType": "EnumValue", + "src": "687:9:2" + }, + { + "id": 203, + "name": "ReferralPool", + "nodeType": "EnumValue", + "src": "707:12:2" + } + ], + "name": "PoolType", + "nodeType": "EnumDefinition", + "src": "662:64:2" + }, + { + "constant": false, + "id": 206, + "name": "_poolType", + "nodeType": "VariableDeclaration", + "scope": 315, + "src": "734:26:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PoolType_$204", + "typeString": "enum AlgoPool.PoolType" + }, + "typeName": { + "contractScope": null, + "id": 205, + "name": "PoolType", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 204, + "src": "734:8:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_PoolType_$204", + "typeString": "enum AlgoPool.PoolType" } }, "value": null, @@ -2691,11 +3298,11 @@ }, { "constant": false, - "id": 151, + "id": 210, "name": "_fundedMiners", "nodeType": "VariableDeclaration", - "scope": 300, - "src": "1135:38:1", + "scope": 315, + "src": "767:38:2", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2703,28 +3310,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 150, + "id": 209, "keyType": { - "id": 148, + "id": 207, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1143:7:1", + "src": "775:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "1135:24:1", + "src": "767:24:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 149, + "id": 208, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1154:4:1", + "src": "786:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2736,60 +3343,60 @@ }, { "body": { - "id": 167, + "id": 226, "nodeType": "Block", - "src": "1317:39:1", + "src": "951:39:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 165, + "id": 224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 163, + "id": 222, "name": "_poolType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 147, - "src": "1328:9:1", + "referencedDeclaration": 206, + "src": "962:9:2", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_enum$_PoolType_$204", + "typeString": "enum AlgoPool.PoolType" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 164, + "id": 223, "name": "poolType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "1340:8:1", + "referencedDeclaration": 212, + "src": "974:8:2", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_enum$_PoolType_$204", + "typeString": "enum AlgoPool.PoolType" } }, - "src": "1328:20:1", + "src": "962:20:2", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_enum$_PoolType_$204", + "typeString": "enum AlgoPool.PoolType" } }, - "id": 166, + "id": 225, "nodeType": "ExpressionStatement", - "src": "1328:20:1" + "src": "962:20:2" } ] }, "documentation": null, - "id": 168, + "id": 227, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -2798,82 +3405,84 @@ "arguments": [ { "argumentTypes": null, - "id": 158, + "id": 217, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 155, - "src": "1259:12:1", + "referencedDeclaration": 214, + "src": "893:12:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], - "id": 159, + "id": 218, "modifierName": { "argumentTypes": null, - "id": 157, + "id": 216, "name": "ERC20TokenHolder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 357, - "src": "1242:16:1", + "referencedDeclaration": 372, + "src": "876:16:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20TokenHolder_$357_$", + "typeIdentifier": "t_type$_t_contract$_ERC20TokenHolder_$372_$", "typeString": "type(contract ERC20TokenHolder)" } }, "nodeType": "ModifierInvocation", - "src": "1242:30:1" + "src": "876:30:2" }, { "arguments": [], - "id": 161, + "id": 220, "modifierName": { "argumentTypes": null, - "id": 160, + "id": 219, "name": "AlgoCoreTeamRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 86, - "src": "1282:16:1", + "referencedDeclaration": 184, + "src": "916:16:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_AlgoCoreTeamRole_$86_$", + "typeIdentifier": "t_type$_t_contract$_AlgoCoreTeamRole_$184_$", "typeString": "type(contract AlgoCoreTeamRole)" } }, "nodeType": "ModifierInvocation", - "src": "1282:18:1" + "src": "916:18:2" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 156, + "id": 215, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 153, + "id": 212, "name": "poolType", "nodeType": "VariableDeclaration", - "scope": 168, - "src": "1194:15:1", + "scope": 227, + "src": "826:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_enum$_PoolType_$204", + "typeString": "enum AlgoPool.PoolType" }, "typeName": { - "id": 152, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1194:6:1", + "contractScope": null, + "id": 211, + "name": "PoolType", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 204, + "src": "826:8:2", "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" + "typeIdentifier": "t_enum$_PoolType_$204", + "typeString": "enum AlgoPool.PoolType" } }, "value": null, @@ -2881,11 +3490,11 @@ }, { "constant": false, - "id": 155, + "id": 214, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 168, - "src": "1211:20:1", + "scope": 227, + "src": "845:20:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2893,10 +3502,10 @@ "typeString": "address" }, "typeName": { - "id": 154, + "id": 213, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1211:7:1", + "src": "845:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2906,26 +3515,26 @@ "visibility": "internal" } ], - "src": "1193:39:1" + "src": "825:41:2" }, "payable": false, "returnParameters": { - "id": 162, + "id": 221, "nodeType": "ParameterList", "parameters": [], - "src": "1317:0:1" + "src": "951:0:2" }, - "scope": 300, - "src": "1182:174:1", + "scope": 315, + "src": "814:176:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 289, + "id": 304, "nodeType": "Block", - "src": "1444:912:1", + "src": "1078:641:2", "statements": [ { "expression": { @@ -2933,7 +3542,7 @@ "arguments": [ { "argumentTypes": null, - "id": 181, + "id": 240, "isConstant": false, "isLValue": false, "isPure": false, @@ -2941,31 +3550,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1463:28:1", + "src": "1097:28:2", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 178, + "id": 237, "name": "_fundedMiners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "1464:13:1", + "referencedDeclaration": 210, + "src": "1098:13:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 180, + "id": 239, "indexExpression": { "argumentTypes": null, - "id": 179, + "id": 238, "name": "minerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 170, - "src": "1478:12:1", + "referencedDeclaration": 229, + "src": "1112:12:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2976,7 +3585,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1464:27:1", + "src": "1098:27:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2995,21 +3604,21 @@ "typeString": "bool" } ], - "id": 177, + "id": 236, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 870, - 871 + 890, + 891 ], - "referencedDeclaration": 870, - "src": "1455:7:1", + "referencedDeclaration": 890, + "src": "1089:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 182, + "id": 241, "isConstant": false, "isLValue": false, "isPure": false, @@ -3017,43 +3626,43 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1455:37:1", + "src": "1089:37:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 183, + "id": 242, "nodeType": "ExpressionStatement", - "src": "1455:37:1" + "src": "1089:37:2" }, { "assignments": [ - 185 + 244 ], "declarations": [ { "constant": false, - "id": 185, + "id": 244, "name": "algoMiner", "nodeType": "VariableDeclaration", - "scope": 290, - "src": "1505:20:1", + "scope": 305, + "src": "1139:20:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAlgoMiner_$380", + "typeIdentifier": "t_contract$_IAlgoMiner_$400", "typeString": "contract IAlgoMiner" }, "typeName": { "contractScope": null, - "id": 184, + "id": 243, "name": "IAlgoMiner", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 380, - "src": "1505:10:1", + "referencedDeclaration": 400, + "src": "1139:10:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAlgoMiner_$380", + "typeIdentifier": "t_contract$_IAlgoMiner_$400", "typeString": "contract IAlgoMiner" } }, @@ -3061,18 +3670,18 @@ "visibility": "internal" } ], - "id": 189, + "id": 248, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 187, + "id": 246, "name": "minerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 170, - "src": "1539:12:1", + "referencedDeclaration": 229, + "src": "1173:12:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3086,18 +3695,18 @@ "typeString": "address" } ], - "id": 186, + "id": 245, "name": "IAlgoMiner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 380, - "src": "1528:10:1", + "referencedDeclaration": 400, + "src": "1162:10:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IAlgoMiner_$380_$", + "typeIdentifier": "t_type$_t_contract$_IAlgoMiner_$400_$", "typeString": "type(contract IAlgoMiner)" } }, - "id": 188, + "id": 247, "isConstant": false, "isLValue": false, "isPure": false, @@ -3105,14 +3714,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1528:24:1", + "src": "1162:24:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAlgoMiner_$380", + "typeIdentifier": "t_contract$_IAlgoMiner_$400", "typeString": "contract IAlgoMiner" } }, "nodeType": "VariableDeclarationStatement", - "src": "1505:47:1" + "src": "1139:47:2" }, { "expression": { @@ -3125,32 +3734,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 191, + "id": 250, "name": "algoMiner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 185, - "src": "1581:9:1", + "referencedDeclaration": 244, + "src": "1215:9:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAlgoMiner_$380", + "typeIdentifier": "t_contract$_IAlgoMiner_$400", "typeString": "contract IAlgoMiner" } }, - "id": 192, + "id": 251, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isAlgoMiner", "nodeType": "MemberAccess", - "referencedDeclaration": 364, - "src": "1581:21:1", + "referencedDeclaration": 379, + "src": "1215:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_pure$__$returns$_t_bool_$", "typeString": "function () pure external returns (bool)" } }, - "id": 193, + "id": 252, "isConstant": false, "isLValue": false, "isPure": false, @@ -3158,7 +3767,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1581:23:1", + "src": "1215:23:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3172,21 +3781,21 @@ "typeString": "bool" } ], - "id": 190, + "id": 249, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 870, - 871 + 890, + 891 ], - "referencedDeclaration": 870, - "src": "1573:7:1", + "referencedDeclaration": 890, + "src": "1207:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 194, + "id": 253, "isConstant": false, "isLValue": false, "isPure": false, @@ -3194,28 +3803,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1573:32:1", + "src": "1207:32:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 195, + "id": 254, "nodeType": "ExpressionStatement", - "src": "1573:32:1" + "src": "1207:32:2" }, { "assignments": [ - 197 + 256 ], "declarations": [ { "constant": false, - "id": 197, + "id": 256, "name": "minerCategory", "nodeType": "VariableDeclaration", - "scope": 290, - "src": "1626:19:1", + "scope": 305, + "src": "1260:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3223,10 +3832,10 @@ "typeString": "uint8" }, "typeName": { - "id": 196, + "id": 255, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1626:5:1", + "src": "1260:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3236,7 +3845,7 @@ "visibility": "internal" } ], - "id": 201, + "id": 260, "initialValue": { "argumentTypes": null, "arguments": [], @@ -3244,32 +3853,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 198, + "id": 257, "name": "algoMiner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 185, - "src": "1648:9:1", + "referencedDeclaration": 244, + "src": "1282:9:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAlgoMiner_$380", + "typeIdentifier": "t_contract$_IAlgoMiner_$400", "typeString": "contract IAlgoMiner" } }, - "id": 199, + "id": 258, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getCategory", "nodeType": "MemberAccess", - "referencedDeclaration": 369, - "src": "1648:21:1", + "referencedDeclaration": 389, + "src": "1282:21:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", "typeString": "function () view external returns (uint8)" } }, - "id": 200, + "id": 259, "isConstant": false, "isLValue": false, "isPure": false, @@ -3277,14 +3886,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1648:23:1", + "src": "1282:23:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "VariableDeclarationStatement", - "src": "1626:45:1" + "src": "1260:45:2" }, { "expression": { @@ -3296,7 +3905,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 209, + "id": 268, "isConstant": false, "isLValue": false, "isPure": false, @@ -3307,19 +3916,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 205, + "id": 264, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 203, + "id": 262, "name": "minerCategory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 197, - "src": "1692:13:1", + "referencedDeclaration": 256, + "src": "1326:13:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3330,14 +3939,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 204, + "id": 263, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1709:1:1", + "src": "1343:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3345,7 +3954,7 @@ }, "value": "0" }, - "src": "1692:18:1", + "src": "1326:18:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3359,19 +3968,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 208, + "id": 267, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 206, + "id": 265, "name": "minerCategory", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 197, - "src": "1714:13:1", + "referencedDeclaration": 256, + "src": "1348:13:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3382,14 +3991,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "35", - "id": 207, + "id": 266, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1731:1:1", + "src": "1365:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_5_by_1", @@ -3397,13 +4006,13 @@ }, "value": "5" }, - "src": "1714:18:1", + "src": "1348:18:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1692:40:1", + "src": "1326:40:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3417,21 +4026,21 @@ "typeString": "bool" } ], - "id": 202, + "id": 261, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 870, - 871 + 890, + 891 ], - "referencedDeclaration": 870, - "src": "1684:7:1", + "referencedDeclaration": 890, + "src": "1318:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 210, + "id": 269, "isConstant": false, "isLValue": false, "isPure": false, @@ -3439,28 +4048,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1684:49:1", + "src": "1318:49:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 211, + "id": 270, "nodeType": "ExpressionStatement", - "src": "1684:49:1" + "src": "1318:49:2" }, { "assignments": [ - 213 + 272 ], "declarations": [ { "constant": false, - "id": 213, + "id": 272, "name": "value", "nodeType": "VariableDeclaration", - "scope": 290, - "src": "1746:13:1", + "scope": 305, + "src": "1380:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3468,10 +4077,10 @@ "typeString": "uint256" }, "typeName": { - "id": 212, + "id": 271, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1746:7:1", + "src": "1380:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3481,644 +4090,146 @@ "visibility": "internal" } ], - "id": 215, + "id": 276, "initialValue": { "argumentTypes": null, - "hexValue": "30", - "id": 214, + "arguments": [ + { + "argumentTypes": null, + "id": 274, + "name": "minerCategory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "1418:13:2", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 273, + "name": "getCapacityByCategory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "1396:21:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_uint256_$", + "typeString": "function (uint8) pure returns (uint256)" + } + }, + "id": 275, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "Literal", - "src": "1762:1:1", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "1396:36:2", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, "nodeType": "VariableDeclarationStatement", - "src": "1746:17:1" + "src": "1380:52:2" }, { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_enum$_PoolType_$204", + "typeString": "enum AlgoPool.PoolType" }, - "id": 218, + "id": 280, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 216, - "name": "minerCategory", + "id": 277, + "name": "_poolType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 197, - "src": "1779:13:1", + "referencedDeclaration": 206, + "src": "1527:9:2", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_enum$_PoolType_$204", + "typeString": "enum AlgoPool.PoolType" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 217, + "expression": { + "argumentTypes": null, + "id": 278, + "name": "PoolType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 204, + "src": "1540:8:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_PoolType_$204_$", + "typeString": "type(enum AlgoPool.PoolType)" + } + }, + "id": 279, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", "lValueRequested": false, - "nodeType": "Literal", - "src": "1796:1:1", - "subdenomination": null, + "memberName": "ReferralPool", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1540:21:2", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_enum$_PoolType_$204", + "typeString": "enum AlgoPool.PoolType" + } }, - "src": "1779:18:1", + "src": "1527:34:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 224, - "name": "minerCategory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 197, - "src": "1854:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1871:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1854:18:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 232, - "name": "minerCategory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 197, - "src": "1929:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 233, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1946:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "1929:18:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 240, - "name": "minerCategory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 197, - "src": "2004:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 241, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2021:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "src": "2004:18:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 248, - "name": "minerCategory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 197, - "src": "2079:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "34", - "id": 249, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2096:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "2079:18:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 256, - "name": "minerCategory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 197, - "src": "2154:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "35", - "id": 257, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2171:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - }, - "value": "5" - }, - "src": "2154:18:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 264, - "nodeType": "IfStatement", - "src": "2151:69:1", - "trueBody": { - "id": 263, - "nodeType": "Block", - "src": "2174:46:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 259, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 213, - "src": "2189:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 260, - "name": "CAT_5_VALUE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 145, - "src": "2197:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2189:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 262, - "nodeType": "ExpressionStatement", - "src": "2189:19:1" - } - ] - } - }, - "id": 265, - "nodeType": "IfStatement", - "src": "2076:144:1", - "trueBody": { - "id": 255, - "nodeType": "Block", - "src": "2099:46:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 251, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 213, - "src": "2114:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 252, - "name": "CAT_4_VALUE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "2122:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2114:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 254, - "nodeType": "ExpressionStatement", - "src": "2114:19:1" - } - ] - } - }, - "id": 266, - "nodeType": "IfStatement", - "src": "2001:219:1", - "trueBody": { - "id": 247, - "nodeType": "Block", - "src": "2024:46:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 243, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 213, - "src": "2039:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 244, - "name": "CAT_3_VALUE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "2047:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2039:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 246, - "nodeType": "ExpressionStatement", - "src": "2039:19:1" - } - ] - } - }, - "id": 267, - "nodeType": "IfStatement", - "src": "1926:294:1", - "trueBody": { - "id": 239, - "nodeType": "Block", - "src": "1949:46:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 235, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 213, - "src": "1964:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 236, - "name": "CAT_2_VALUE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 124, - "src": "1972:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1964:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 238, - "nodeType": "ExpressionStatement", - "src": "1964:19:1" - } - ] - } - }, - "id": 268, - "nodeType": "IfStatement", - "src": "1851:369:1", - "trueBody": { - "id": 231, - "nodeType": "Block", - "src": "1874:46:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 227, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 213, - "src": "1889:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 228, - "name": "CAT_1_VALUE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "1897:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1889:19:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 230, - "nodeType": "ExpressionStatement", - "src": "1889:19:1" - } - ] - } - }, - "id": 269, + "falseBody": null, + "id": 290, "nodeType": "IfStatement", - "src": "1776:444:1", + "src": "1524:90:2", "trueBody": { - "id": 223, + "id": 289, "nodeType": "Block", - "src": "1799:46:1", + "src": "1563:51:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 221, + "id": 287, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 219, + "id": 281, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 213, - "src": "1814:5:1", + "referencedDeclaration": 272, + "src": "1578:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4128,26 +4239,100 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 220, - "name": "CAT_0_VALUE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 112, - "src": "1822:11:1", + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 282, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 272, + "src": "1586:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 283, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1594:2:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "1586:10:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 285, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1599:3:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "1586:16:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1814:19:1", + "src": "1578:24:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 222, + "id": 288, "nodeType": "ExpressionStatement", - "src": "1814:19:1" + "src": "1578:24:2" } ] } @@ -4155,101 +4340,7 @@ { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 271, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 213, - "src": "2240:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 272, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2248:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2240:9:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 270, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 870, - 871 - ], - "referencedDeclaration": 870, - "src": "2232:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2232:18:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 275, - "nodeType": "ExpressionStatement", - "src": "2232:18:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 280, + "id": 295, "isConstant": false, "isLValue": false, "isPure": false, @@ -4258,26 +4349,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 276, + "id": 291, "name": "_fundedMiners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "2263:13:1", + "referencedDeclaration": 210, + "src": "1626:13:2", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 278, + "id": 293, "indexExpression": { "argumentTypes": null, - "id": 277, + "id": 292, "name": "minerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 170, - "src": "2277:12:1", + "referencedDeclaration": 229, + "src": "1640:12:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4288,7 +4379,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2263:27:1", + "src": "1626:27:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4299,14 +4390,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 279, + "id": 294, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2293:4:1", + "src": "1656:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4314,15 +4405,15 @@ }, "value": "true" }, - "src": "2263:34:1", + "src": "1626:34:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 281, + "id": 296, "nodeType": "ExpressionStatement", - "src": "2263:34:1" + "src": "1626:34:2" }, { "expression": { @@ -4330,12 +4421,12 @@ "arguments": [ { "argumentTypes": null, - "id": 285, + "id": 300, "name": "minerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 170, - "src": "2328:12:1", + "referencedDeclaration": 229, + "src": "1691:12:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4343,12 +4434,12 @@ }, { "argumentTypes": null, - "id": 286, + "id": 301, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 213, - "src": "2342:5:1", + "referencedDeclaration": 272, + "src": "1705:5:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4368,32 +4459,32 @@ ], "expression": { "argumentTypes": null, - "id": 282, + "id": 297, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 312, - "src": "2308:6:1", + "referencedDeclaration": 327, + "src": "1671:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", + "typeIdentifier": "t_contract$_IERC20_$728", "typeString": "contract IERC20" } }, - "id": 284, + "id": 299, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 733, - "src": "2308:19:1", + "referencedDeclaration": 753, + "src": "1671:19:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$708_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$708_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$728_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$728_$", "typeString": "function (contract IERC20,address,uint256)" } }, - "id": 287, + "id": 302, "isConstant": false, "isLValue": false, "isPure": false, @@ -4401,76 +4492,76 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2308:40:1", + "src": "1671:40:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 288, + "id": 303, "nodeType": "ExpressionStatement", - "src": "2308:40:1" + "src": "1671:40:2" } ] }, "documentation": null, - "id": 290, + "id": 305, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 173, + "id": 232, "modifierName": { "argumentTypes": null, - "id": 172, + "id": 231, "name": "notTerminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 408, - "src": "1417:13:1", + "referencedDeclaration": 428, + "src": "1051:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1417:13:1" + "src": "1051:13:2" }, { "arguments": null, - "id": 175, + "id": 234, "modifierName": { "argumentTypes": null, - "id": 174, + "id": 233, "name": "onlyCoreTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27, - "src": "1431:12:1", + "referencedDeclaration": 125, + "src": "1065:12:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1431:12:1" + "src": "1065:12:2" } ], "name": "trasferToMiner", "nodeType": "FunctionDefinition", "parameters": { - "id": 171, + "id": 230, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 170, + "id": 229, "name": "minerAddress", "nodeType": "VariableDeclaration", - "scope": 290, - "src": "1388:20:1", + "scope": 305, + "src": "1022:20:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4478,10 +4569,10 @@ "typeString": "address" }, "typeName": { - "id": 169, + "id": 228, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1388:7:1", + "src": "1022:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4491,26 +4582,26 @@ "visibility": "internal" } ], - "src": "1387:22:1" + "src": "1021:22:2" }, "payable": false, "returnParameters": { - "id": 176, + "id": 235, "nodeType": "ParameterList", "parameters": [], - "src": "1444:0:1" + "src": "1078:0:2" }, - "scope": 300, - "src": "1364:992:1", + "scope": 315, + "src": "998:721:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 298, + "id": 313, "nodeType": "Block", - "src": "2405:31:1", + "src": "1768:31:2", "statements": [ { "expression": { @@ -4518,20 +4609,20 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 295, + "id": 310, "name": "_terminate", "nodeType": "Identifier", "overloadedDeclarations": [ - 356 + 371 ], - "referencedDeclaration": 356, - "src": "2416:10:1", + "referencedDeclaration": 371, + "src": "1779:10:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 296, + "id": 311, "isConstant": false, "isLValue": false, "isPure": false, @@ -4539,125 +4630,125 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2416:12:1", + "src": "1779:12:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 297, + "id": 312, "nodeType": "ExpressionStatement", - "src": "2416:12:1" + "src": "1779:12:2" } ] }, "documentation": null, - "id": 299, + "id": 314, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 293, + "id": 308, "modifierName": { "argumentTypes": null, - "id": 292, + "id": 307, "name": "onlyCoreTeam", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27, - "src": "2392:12:1", + "referencedDeclaration": 125, + "src": "1755:12:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2392:12:1" + "src": "1755:12:2" } ], "name": "terminate", "nodeType": "FunctionDefinition", "parameters": { - "id": 291, + "id": 306, "nodeType": "ParameterList", "parameters": [], - "src": "2382:2:1" + "src": "1745:2:2" }, "payable": false, "returnParameters": { - "id": 294, + "id": 309, "nodeType": "ParameterList", "parameters": [], - "src": "2405:0:1" + "src": "1768:0:2" }, - "scope": 300, - "src": "2364:72:1", + "scope": 315, + "src": "1727:72:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 301, - "src": "524:1915:1" + "scope": 316, + "src": "552:1250:2" } ], - "src": "0:2441:1" + "src": "0:1804:2" }, - "id": 1 + "id": 2 }, "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/ERC20TokenHolder.sol": { "ast": { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/ERC20TokenHolder.sol", "exportedSymbols": { "ERC20TokenHolder": [ - 357 + 372 ] }, - "id": 358, + "id": 373, "nodeType": "SourceUnit", "nodes": [ { - "id": 302, + "id": 317, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:2" + "src": "0:23:3" }, { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", "file": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", - "id": 303, + "id": 318, "nodeType": "ImportDirective", - "scope": 358, - "sourceUnit": 709, - "src": "27:195:2", + "scope": 373, + "sourceUnit": 729, + "src": "27:195:3", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", "file": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", - "id": 304, + "id": 319, "nodeType": "ImportDirective", - "scope": 358, - "sourceUnit": 853, - "src": "224:198:2", + "scope": 373, + "sourceUnit": 873, + "src": "224:198:3", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/Terminable.sol", "file": "./Terminable.sol", - "id": 305, + "id": 320, "nodeType": "ImportDirective", - "scope": 358, - "sourceUnit": 418, - "src": "426:26:2", + "scope": 373, + "sourceUnit": 438, + "src": "426:26:3", "symbolAliases": [], "unitAlias": "" }, @@ -4667,86 +4758,86 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 306, + "id": 321, "name": "Terminable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 417, - "src": "485:10:2", + "referencedDeclaration": 437, + "src": "485:10:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_Terminable_$417", + "typeIdentifier": "t_contract$_Terminable_$437", "typeString": "contract Terminable" } }, - "id": 307, + "id": 322, "nodeType": "InheritanceSpecifier", - "src": "485:10:2" + "src": "485:10:3" } ], "contractDependencies": [ - 417 + 437 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 357, + "id": 372, "linearizedBaseContracts": [ - 357, - 417 + 372, + 437 ], "name": "ERC20TokenHolder", "nodeType": "ContractDefinition", "nodes": [ { - "id": 310, + "id": 325, "libraryName": { "contractScope": null, - "id": 308, + "id": 323, "name": "SafeERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 852, - "src": "509:9:2", + "referencedDeclaration": 872, + "src": "509:9:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$852", + "typeIdentifier": "t_contract$_SafeERC20_$872", "typeString": "library SafeERC20" } }, "nodeType": "UsingForDirective", - "src": "503:27:2", + "src": "503:27:3", "typeName": { "contractScope": null, - "id": 309, + "id": 324, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 708, - "src": "523:6:2", + "referencedDeclaration": 728, + "src": "523:6:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", + "typeIdentifier": "t_contract$_IERC20_$728", "typeString": "contract IERC20" } } }, { "constant": false, - "id": 312, + "id": 327, "name": "_token", "nodeType": "VariableDeclaration", - "scope": 357, - "src": "538:22:2", + "scope": 372, + "src": "538:22:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", + "typeIdentifier": "t_contract$_IERC20_$728", "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 311, + "id": 326, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 708, - "src": "538:6:2", + "referencedDeclaration": 728, + "src": "538:6:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", + "typeIdentifier": "t_contract$_IERC20_$728", "typeString": "contract IERC20" } }, @@ -4755,28 +4846,28 @@ }, { "body": { - "id": 325, + "id": 340, "nodeType": "Block", - "src": "625:48:2", + "src": "625:48:3", "statements": [ { "expression": { "argumentTypes": null, - "id": 323, + "id": 338, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 319, + "id": 334, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 312, - "src": "636:6:2", + "referencedDeclaration": 327, + "src": "636:6:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", + "typeIdentifier": "t_contract$_IERC20_$728", "typeString": "contract IERC20" } }, @@ -4787,12 +4878,12 @@ "arguments": [ { "argumentTypes": null, - "id": 321, + "id": 336, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "652:12:2", + "referencedDeclaration": 329, + "src": "652:12:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4806,18 +4897,18 @@ "typeString": "address" } ], - "id": 320, + "id": 335, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 708, - "src": "645:6:2", + "referencedDeclaration": 728, + "src": "645:6:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$708_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$728_$", "typeString": "type(contract IERC20)" } }, - "id": 322, + "id": 337, "isConstant": false, "isLValue": false, "isPure": false, @@ -4825,63 +4916,63 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "645:20:2", + "src": "645:20:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", + "typeIdentifier": "t_contract$_IERC20_$728", "typeString": "contract IERC20" } }, - "src": "636:29:2", + "src": "636:29:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", + "typeIdentifier": "t_contract$_IERC20_$728", "typeString": "contract IERC20" } }, - "id": 324, + "id": 339, "nodeType": "ExpressionStatement", - "src": "636:29:2" + "src": "636:29:3" } ] }, "documentation": null, - "id": 326, + "id": 341, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [ { "arguments": [], - "id": 317, + "id": 332, "modifierName": { "argumentTypes": null, - "id": 316, + "id": 331, "name": "Terminable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 417, - "src": "603:10:2", + "referencedDeclaration": 437, + "src": "603:10:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Terminable_$417_$", + "typeIdentifier": "t_type$_t_contract$_Terminable_$437_$", "typeString": "type(contract Terminable)" } }, "nodeType": "ModifierInvocation", - "src": "603:12:2" + "src": "603:12:3" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 315, + "id": 330, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 314, + "id": 329, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 326, - "src": "581:20:2", + "scope": 341, + "src": "581:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4889,10 +4980,10 @@ "typeString": "address" }, "typeName": { - "id": 313, + "id": 328, "name": "address", "nodeType": "ElementaryTypeName", - "src": "581:7:2", + "src": "581:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4902,39 +4993,39 @@ "visibility": "internal" } ], - "src": "580:22:2" + "src": "580:22:3" }, "payable": false, "returnParameters": { - "id": 318, + "id": 333, "nodeType": "ParameterList", "parameters": [], - "src": "625:0:2" + "src": "625:0:3" }, - "scope": 357, - "src": "569:104:2", + "scope": 372, + "src": "569:104:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 355, + "id": 370, "nodeType": "Block", - "src": "712:214:2", + "src": "712:214:3", "statements": [ { "assignments": [ - 330 + 345 ], "declarations": [ { "constant": false, - "id": 330, + "id": 345, "name": "currentBalance", "nodeType": "VariableDeclaration", - "scope": 356, - "src": "723:22:2", + "scope": 371, + "src": "723:22:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4942,10 +5033,10 @@ "typeString": "uint256" }, "typeName": { - "id": 329, + "id": 344, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "723:7:2", + "src": "723:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4955,7 +5046,7 @@ "visibility": "internal" } ], - "id": 337, + "id": 352, "initialValue": { "argumentTypes": null, "arguments": [ @@ -4964,14 +5055,14 @@ "arguments": [ { "argumentTypes": null, - "id": 334, + "id": 349, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 894, - "src": "773:4:2", + "referencedDeclaration": 916, + "src": "773:4:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20TokenHolder_$357", + "typeIdentifier": "t_contract$_ERC20TokenHolder_$372", "typeString": "contract ERC20TokenHolder" } } @@ -4979,24 +5070,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20TokenHolder_$357", + "typeIdentifier": "t_contract$_ERC20TokenHolder_$372", "typeString": "contract ERC20TokenHolder" } ], - "id": 333, + "id": 348, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "765:7:2", + "src": "765:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 335, + "id": 350, "isConstant": false, "isLValue": false, "isPure": false, @@ -5004,7 +5095,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "765:13:2", + "src": "765:13:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5020,32 +5111,32 @@ ], "expression": { "argumentTypes": null, - "id": 331, + "id": 346, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 312, - "src": "748:6:2", + "referencedDeclaration": 327, + "src": "748:6:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", + "typeIdentifier": "t_contract$_IERC20_$728", "typeString": "contract IERC20" } }, - "id": 332, + "id": 347, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 653, - "src": "748:16:2", + "referencedDeclaration": 673, + "src": "748:16:3", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 336, + "id": 351, "isConstant": false, "isLValue": false, "isPure": false, @@ -5053,14 +5144,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "748:31:2", + "src": "748:31:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "723:56:2" + "src": "723:56:3" }, { "condition": { @@ -5069,19 +5160,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 340, + "id": 355, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 338, + "id": 353, "name": "currentBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 330, - "src": "793:14:2", + "referencedDeclaration": 345, + "src": "793:14:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5092,14 +5183,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 339, + "id": 354, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "810:1:2", + "src": "810:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5107,20 +5198,20 @@ }, "value": "0" }, - "src": "793:18:2", + "src": "793:18:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 349, + "id": 364, "nodeType": "IfStatement", - "src": "790:95:2", + "src": "790:95:3", "trueBody": { - "id": 348, + "id": 363, "nodeType": "Block", - "src": "813:72:2", + "src": "813:72:3", "statements": [ { "expression": { @@ -5128,12 +5219,12 @@ "arguments": [ { "argumentTypes": null, - "id": 344, + "id": 359, "name": "_creator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 384, - "src": "848:8:2", + "referencedDeclaration": 404, + "src": "848:8:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5141,12 +5232,12 @@ }, { "argumentTypes": null, - "id": 345, + "id": 360, "name": "currentBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 330, - "src": "858:14:2", + "referencedDeclaration": 345, + "src": "858:14:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5166,32 +5257,32 @@ ], "expression": { "argumentTypes": null, - "id": 341, + "id": 356, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 312, - "src": "828:6:2", + "referencedDeclaration": 327, + "src": "828:6:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", + "typeIdentifier": "t_contract$_IERC20_$728", "typeString": "contract IERC20" } }, - "id": 343, + "id": 358, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 733, - "src": "828:19:2", + "referencedDeclaration": 753, + "src": "828:19:3", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$708_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$708_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$728_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$728_$", "typeString": "function (contract IERC20,address,uint256)" } }, - "id": 346, + "id": 361, "isConstant": false, "isLValue": false, "isPure": false, @@ -5199,15 +5290,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "828:45:2", + "src": "828:45:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 347, + "id": 362, "nodeType": "ExpressionStatement", - "src": "828:45:2" + "src": "828:45:3" } ] } @@ -5220,32 +5311,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 350, + "id": 365, "name": "Terminable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 417, - "src": "895:10:2", + "referencedDeclaration": 437, + "src": "895:10:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Terminable_$417_$", + "typeIdentifier": "t_type$_t_contract$_Terminable_$437_$", "typeString": "type(contract Terminable)" } }, - "id": 352, + "id": 367, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_terminate", "nodeType": "MemberAccess", - "referencedDeclaration": 416, - "src": "895:21:2", + "referencedDeclaration": 436, + "src": "895:21:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 353, + "id": 368, "isConstant": false, "isLValue": false, "isPure": false, @@ -5253,20 +5344,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "895:23:2", + "src": "895:23:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 354, + "id": 369, "nodeType": "ExpressionStatement", - "src": "895:23:2" + "src": "895:23:3" } ] }, "documentation": null, - "id": 356, + "id": 371, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5274,313 +5365,46 @@ "name": "_terminate", "nodeType": "FunctionDefinition", "parameters": { - "id": 327, + "id": 342, "nodeType": "ParameterList", "parameters": [], - "src": "700:2:2" + "src": "700:2:3" }, "payable": false, "returnParameters": { - "id": 328, + "id": 343, "nodeType": "ParameterList", "parameters": [], - "src": "712:0:2" + "src": "712:0:3" }, - "scope": 357, - "src": "681:245:2", + "scope": 372, + "src": "681:245:3", "stateMutability": "nonpayable", - "superFunction": 416, + "superFunction": 436, "visibility": "internal" } ], - "scope": 358, - "src": "456:473:2" + "scope": 373, + "src": "456:473:3" } ], - "src": "0:929:2" + "src": "0:929:3" }, - "id": 2 + "id": 3 }, "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/IAlgoMiner.sol": { "ast": { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/IAlgoMiner.sol", "exportedSymbols": { "IAlgoMiner": [ - 380 + 400 ] }, - "id": 381, + "id": 401, "nodeType": "SourceUnit", "nodes": [ { - "id": 359, - "literals": [ - "solidity", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:23:3" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 380, - "linearizedBaseContracts": [ - 380 - ], - "name": "IAlgoMiner", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 364, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isAlgoMiner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [], - "src": "74:2:3" - }, - "payable": false, - "returnParameters": { - "id": 363, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 362, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 364, - "src": "98:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 361, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "98:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "97:6:3" - }, - "scope": 380, - "src": "54:50:3", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 369, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getCategory", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 365, - "nodeType": "ParameterList", - "parameters": [], - "src": "130:2:3" - }, - "payable": false, - "returnParameters": { - "id": 368, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 367, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 369, - "src": "154:5:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 366, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "154:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "153:7:3" - }, - "scope": 380, - "src": "110:51:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 374, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isMining", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "184:2:3" - }, - "payable": false, - "returnParameters": { - "id": 373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 372, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 374, - "src": "208:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 371, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "208:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "207:6:3" - }, - "scope": 380, - "src": "167:47:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 379, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getMiner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 375, - "nodeType": "ParameterList", - "parameters": [], - "src": "237:2:3" - }, - "payable": false, - "returnParameters": { - "id": 378, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 377, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 379, - "src": "261:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 376, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "261:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "260:9:3" - }, - "scope": 380, - "src": "220:50:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 381, - "src": "27:246:3" - } - ], - "src": "0:273:3" - }, - "id": 3 - }, - "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/Terminable.sol": { - "ast": { - "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/Terminable.sol", - "exportedSymbols": { - "Terminable": [ - 417 - ] - }, - "id": 418, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 382, + "id": 374, "literals": [ "solidity", "0.4", @@ -5594,21 +5418,344 @@ "contractDependencies": [], "contractKind": "contract", "documentation": null, - "fullyImplemented": true, - "id": 417, + "fullyImplemented": false, + "id": 400, "linearizedBaseContracts": [ - 417 + 400 + ], + "name": "IAlgoMiner", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 379, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isAlgoMiner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 375, + "nodeType": "ParameterList", + "parameters": [], + "src": "74:2:4" + }, + "payable": false, + "returnParameters": { + "id": 378, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 377, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 379, + "src": "98:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 376, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "98:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "97:6:4" + }, + "scope": 400, + "src": "54:50:4", + "stateMutability": "pure", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 384, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getMinerType", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 380, + "nodeType": "ParameterList", + "parameters": [], + "src": "131:2:4" + }, + "payable": false, + "returnParameters": { + "id": 383, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 382, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 384, + "src": "155:5:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 381, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "155:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "154:7:4" + }, + "scope": 400, + "src": "110:52:4", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 389, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getCategory", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 385, + "nodeType": "ParameterList", + "parameters": [], + "src": "188:2:4" + }, + "payable": false, + "returnParameters": { + "id": 388, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 387, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 389, + "src": "212:5:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 386, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "212:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "211:7:4" + }, + "scope": 400, + "src": "168:51:4", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 394, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "isMining", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [], + "src": "242:2:4" + }, + "payable": false, + "returnParameters": { + "id": 393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 392, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 394, + "src": "266:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "266:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "265:6:4" + }, + "scope": 400, + "src": "225:47:4", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 399, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getMiner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 395, + "nodeType": "ParameterList", + "parameters": [], + "src": "295:2:4" + }, + "payable": false, + "returnParameters": { + "id": 398, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 397, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 399, + "src": "319:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 396, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "319:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "318:9:4" + }, + "scope": 400, + "src": "278:50:4", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 401, + "src": "27:304:4" + } + ], + "src": "0:331:4" + }, + "id": 4 + }, + "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/Terminable.sol": { + "ast": { + "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/Terminable.sol", + "exportedSymbols": { + "Terminable": [ + 437 + ] + }, + "id": 438, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 402, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:5" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 437, + "linearizedBaseContracts": [ + 437 ], "name": "Terminable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 384, + "id": 404, "name": "_creator", "nodeType": "VariableDeclaration", - "scope": 417, - "src": "56:25:4", + "scope": 437, + "src": "56:25:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5616,10 +5763,10 @@ "typeString": "address" }, "typeName": { - "id": 383, + "id": 403, "name": "address", "nodeType": "ElementaryTypeName", - "src": "56:7:4", + "src": "56:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5630,11 +5777,11 @@ }, { "constant": false, - "id": 386, + "id": 406, "name": "_terminated", "nodeType": "VariableDeclaration", - "scope": 417, - "src": "88:25:4", + "scope": 437, + "src": "88:25:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5642,10 +5789,10 @@ "typeString": "bool" }, "typeName": { - "id": 385, + "id": 405, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "88:4:4", + "src": "88:4:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5656,26 +5803,26 @@ }, { "body": { - "id": 398, + "id": 418, "nodeType": "Block", - "src": "145:70:4", + "src": "145:70:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 392, + "id": 412, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 389, + "id": 409, "name": "_creator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 384, - "src": "156:8:4", + "referencedDeclaration": 404, + "src": "156:8:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5687,18 +5834,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 390, + "id": 410, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 867, - "src": "167:3:4", + "referencedDeclaration": 887, + "src": "167:3:5", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 391, + "id": 411, "isConstant": false, "isLValue": false, "isPure": false, @@ -5706,38 +5853,38 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "167:10:4", + "src": "167:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "156:21:4", + "src": "156:21:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 393, + "id": 413, "nodeType": "ExpressionStatement", - "src": "156:21:4" + "src": "156:21:5" }, { "expression": { "argumentTypes": null, - "id": 396, + "id": 416, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 394, + "id": 414, "name": "_terminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 386, - "src": "188:11:4", + "referencedDeclaration": 406, + "src": "188:11:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5748,14 +5895,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 395, + "id": 415, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "202:5:4", + "src": "202:5:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5763,20 +5910,20 @@ }, "value": "false" }, - "src": "188:19:4", + "src": "188:19:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 397, + "id": 417, "nodeType": "ExpressionStatement", - "src": "188:19:4" + "src": "188:19:5" } ] }, "documentation": null, - "id": 399, + "id": 419, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -5784,29 +5931,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 387, + "id": 407, "nodeType": "ParameterList", "parameters": [], - "src": "133:2:4" + "src": "133:2:5" }, "payable": false, "returnParameters": { - "id": 388, + "id": 408, "nodeType": "ParameterList", "parameters": [], - "src": "145:0:4" + "src": "145:0:5" }, - "scope": 417, - "src": "122:93:4", + "scope": 437, + "src": "122:93:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 407, + "id": 427, "nodeType": "Block", - "src": "248:52:4", + "src": "248:52:5", "statements": [ { "expression": { @@ -5814,7 +5961,7 @@ "arguments": [ { "argumentTypes": null, - "id": 403, + "id": 423, "isConstant": false, "isLValue": false, "isPure": false, @@ -5822,15 +5969,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "267:12:4", + "src": "267:12:5", "subExpression": { "argumentTypes": null, - "id": 402, + "id": 422, "name": "_terminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 386, - "src": "268:11:4", + "referencedDeclaration": 406, + "src": "268:11:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5849,21 +5996,21 @@ "typeString": "bool" } ], - "id": 401, + "id": 421, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 870, - 871 + 890, + 891 ], - "referencedDeclaration": 870, - "src": "259:7:4", + "referencedDeclaration": 890, + "src": "259:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 404, + "id": 424, "isConstant": false, "isLValue": false, "isPure": false, @@ -5871,58 +6018,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "259:21:4", + "src": "259:21:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 405, + "id": 425, "nodeType": "ExpressionStatement", - "src": "259:21:4" + "src": "259:21:5" }, { - "id": 406, + "id": 426, "nodeType": "PlaceholderStatement", - "src": "291:1:4" + "src": "291:1:5" } ] }, "documentation": null, - "id": 408, + "id": 428, "name": "notTerminated", "nodeType": "ModifierDefinition", "parameters": { - "id": 400, + "id": 420, "nodeType": "ParameterList", "parameters": [], - "src": "245:2:4" + "src": "245:2:5" }, - "src": "223:77:4", + "src": "223:77:5", "visibility": "internal" }, { "body": { - "id": 415, + "id": 435, "nodeType": "Block", - "src": "339:37:4", + "src": "339:37:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 413, + "id": 433, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 411, + "id": 431, "name": "_terminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 386, - "src": "350:11:4", + "referencedDeclaration": 406, + "src": "350:11:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5933,14 +6080,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 412, + "id": 432, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "364:4:4", + "src": "364:4:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5948,1346 +6095,67 @@ }, "value": "true" }, - "src": "350:18:4", + "src": "350:18:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 414, + "id": 434, "nodeType": "ExpressionStatement", - "src": "350:18:4" + "src": "350:18:5" } ] }, "documentation": null, - "id": 416, + "id": 436, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "_terminate", "nodeType": "FunctionDefinition", - "parameters": { - "id": 409, - "nodeType": "ParameterList", - "parameters": [], - "src": "327:2:4" - }, - "payable": false, - "returnParameters": { - "id": 410, - "nodeType": "ParameterList", - "parameters": [], - "src": "339:0:4" - }, - "scope": 417, - "src": "308:68:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 418, - "src": "27:352:4" - } - ], - "src": "0:379:4" - }, - "id": 4 - }, - "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol": { - "ast": { - "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol", - "exportedSymbols": { - "Roles": [ - 511 - ] - }, - "id": 512, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 419, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:5" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "@title Roles\n@dev Library for managing addresses assigned to a Role.", - "fullyImplemented": true, - "id": 511, - "linearizedBaseContracts": [ - 511 - ], - "name": "Roles", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "Roles.Role", - "id": 424, - "members": [ - { - "constant": false, - "id": 423, - "name": "bearer", - "nodeType": "VariableDeclaration", - "scope": 424, - "src": "145:32:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "typeName": { - "id": 422, - "keyType": { - "id": 420, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "154:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "145:25:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 421, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "165:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Role", - "nodeType": "StructDefinition", - "scope": 511, - "src": "127:55:5", - "visibility": "public" - }, - { - "body": { - "id": 455, - "nodeType": "Block", - "src": "302:109:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 432, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "316:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 434, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "335:1:5", - "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": 433, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "327:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 435, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "327:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "316:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 431, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 870, - 871 - ], - "referencedDeclaration": 870, - "src": "308:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "308:30:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 438, - "nodeType": "ExpressionStatement", - "src": "308:30:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "352:19:5", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 441, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 426, - "src": "357:4:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$424_storage_ptr", - "typeString": "struct Roles.Role storage pointer" - } - }, - { - "argumentTypes": null, - "id": 442, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "363:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Role_$424_storage_ptr", - "typeString": "struct Roles.Role storage pointer" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 440, - "name": "has", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 510, - "src": "353:3:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$424_storage_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" - } - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "353:18:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 870, - 871 - ], - "referencedDeclaration": 870, - "src": "344:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "344:28:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 446, - "nodeType": "ExpressionStatement", - "src": "344:28:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 447, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 426, - "src": "379:4:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$424_storage_ptr", - "typeString": "struct Roles.Role storage pointer" - } - }, - "id": 450, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bearer", - "nodeType": "MemberAccess", - "referencedDeclaration": 423, - "src": "379:11:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 451, - "indexExpression": { - "argumentTypes": null, - "id": 449, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "391:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "379:20:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "402:4:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "379:27:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 454, - "nodeType": "ExpressionStatement", - "src": "379:27:5" - } - ] - }, - "documentation": "@dev give an account access to this role", - "id": 456, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", "parameters": { "id": 429, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 426, - "name": "role", - "nodeType": "VariableDeclaration", - "scope": 456, - "src": "257:17:5", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$424_storage_ptr", - "typeString": "struct Roles.Role" - }, - "typeName": { - "contractScope": null, - "id": 425, - "name": "Role", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 424, - "src": "257:4:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$424_storage_ptr", - "typeString": "struct Roles.Role" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 428, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 456, - "src": "276:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 427, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "276:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "256:36:5" + "parameters": [], + "src": "327:2:5" }, "payable": false, "returnParameters": { "id": 430, "nodeType": "ParameterList", "parameters": [], - "src": "302:0:5" + "src": "339:0:5" }, - "scope": 511, - "src": "244:167:5", + "scope": 437, + "src": "308:68:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" - }, - { - "body": { - "id": 486, - "nodeType": "Block", - "src": "538:109:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 464, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 460, - "src": "552:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 466, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "571:1:5", - "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": 465, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "563:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 467, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "563:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "552:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 463, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 870, - 871 - ], - "referencedDeclaration": 870, - "src": "544:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "544:30:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 470, - "nodeType": "ExpressionStatement", - "src": "544:30:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 473, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 458, - "src": "592:4:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$424_storage_ptr", - "typeString": "struct Roles.Role storage pointer" - } - }, - { - "argumentTypes": null, - "id": 474, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 460, - "src": "598:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Role_$424_storage_ptr", - "typeString": "struct Roles.Role storage pointer" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 472, - "name": "has", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 510, - "src": "588:3:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$424_storage_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" - } - }, - "id": 475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "588:18:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 471, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 870, - 871 - ], - "referencedDeclaration": 870, - "src": "580:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "580:27:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 477, - "nodeType": "ExpressionStatement", - "src": "580:27:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 478, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 458, - "src": "614:4:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$424_storage_ptr", - "typeString": "struct Roles.Role storage pointer" - } - }, - "id": 481, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bearer", - "nodeType": "MemberAccess", - "referencedDeclaration": 423, - "src": "614:11:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 482, - "indexExpression": { - "argumentTypes": null, - "id": 480, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 460, - "src": "626:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "614:20:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 483, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "637:5:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "614:28:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 485, - "nodeType": "ExpressionStatement", - "src": "614:28:5" - } - ] - }, - "documentation": "@dev remove an account's access to this role", - "id": 487, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "remove", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 458, - "name": "role", - "nodeType": "VariableDeclaration", - "scope": 487, - "src": "493:17:5", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$424_storage_ptr", - "typeString": "struct Roles.Role" - }, - "typeName": { - "contractScope": null, - "id": 457, - "name": "Role", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 424, - "src": "493:4:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$424_storage_ptr", - "typeString": "struct Roles.Role" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 460, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 487, - "src": "512:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 459, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "512:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "492:36:5" - }, - "payable": false, - "returnParameters": { - "id": 462, - "nodeType": "ParameterList", - "parameters": [], - "src": "538:0:5" - }, - "scope": 511, - "src": "477:170:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 509, - "nodeType": "Block", - "src": "817:74:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 497, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "831:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 499, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "850:1:5", - "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": 498, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "842:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "842:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "831:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 496, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 870, - 871 - ], - "referencedDeclaration": 870, - "src": "823:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "823:30:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 503, - "nodeType": "ExpressionStatement", - "src": "823:30:5" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 504, - "name": "role", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 489, - "src": "866:4:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$424_storage_ptr", - "typeString": "struct Roles.Role storage pointer" - } - }, - "id": 505, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bearer", - "nodeType": "MemberAccess", - "referencedDeclaration": 423, - "src": "866:11:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 507, - "indexExpression": { - "argumentTypes": null, - "id": 506, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 491, - "src": "878:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "866:20:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 495, - "id": 508, - "nodeType": "Return", - "src": "859:27:5" - } - ] - }, - "documentation": "@dev check if an account has this role\n@return bool", - "id": 510, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "has", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 492, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 489, - "name": "role", - "nodeType": "VariableDeclaration", - "scope": 510, - "src": "738:17:5", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$424_storage_ptr", - "typeString": "struct Roles.Role" - }, - "typeName": { - "contractScope": null, - "id": 488, - "name": "Role", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 424, - "src": "738:4:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$424_storage_ptr", - "typeString": "struct Roles.Role" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 491, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 510, - "src": "757:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 490, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "757:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "737:36:5" - }, - "payable": false, - "returnParameters": { - "id": 495, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 494, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 510, - "src": "809:4:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 493, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "809:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "808:6:5" - }, - "scope": 511, - "src": "725:166:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" } ], - "scope": 512, - "src": "109:784:5" + "scope": 438, + "src": "27:352:5" } ], - "src": "0:894:5" + "src": "0:379:5" }, "id": 5 }, - "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol": { + "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol": { "ast": { - "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol", + "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/access/Roles.sol", "exportedSymbols": { - "SafeMath": [ - 639 + "Roles": [ + 531 ] }, - "id": 640, + "id": 532, "nodeType": "SourceUnit", "nodes": [ { - "id": 513, + "id": 439, "literals": [ "solidity", "^", @@ -7301,189 +6169,77 @@ "baseContracts": [], "contractDependencies": [], "contractKind": "library", - "documentation": "@title SafeMath\n@dev Math operations with safety checks that revert on error", + "documentation": "@title Roles\n@dev Library for managing addresses assigned to a Role.", "fullyImplemented": true, - "id": 639, + "id": 531, "linearizedBaseContracts": [ - 639 + 531 ], - "name": "SafeMath", + "name": "Roles", "nodeType": "ContractDefinition", "nodes": [ { - "body": { - "id": 545, - "nodeType": "Block", - "src": "271:314:6", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 524, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 522, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 515, - "src": "486:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 523, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "491:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "486:6:6", + "canonicalName": "Roles.Role", + "id": 444, + "members": [ + { + "constant": false, + "id": 443, + "name": "bearer", + "nodeType": "VariableDeclaration", + "scope": 444, + "src": "145:32:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 442, + "keyType": { + "id": 440, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "154:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "145:25:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 441, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "165:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } - }, - "falseBody": null, - "id": 528, - "nodeType": "IfStatement", - "src": "482:35:6", - "trueBody": { - "id": 527, - "nodeType": "Block", - "src": "494:23:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 525, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "509:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 521, - "id": 526, - "nodeType": "Return", - "src": "502:8:6" - } - ] } }, - { - "assignments": [ - 530 - ], - "declarations": [ - { - "constant": false, - "id": 530, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "523:9:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 529, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "523:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 534, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 533, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 531, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 515, - "src": "535:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 532, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "539:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "535:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "523:17:6" - }, + "value": null, + "visibility": "internal" + } + ], + "name": "Role", + "nodeType": "StructDefinition", + "scope": 531, + "src": "127:55:6", + "visibility": "public" + }, + { + "body": { + "id": 475, + "nodeType": "Block", + "src": "302:109:6", + "statements": [ { "expression": { "argumentTypes": null, @@ -7491,75 +6247,86 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 540, + "id": 456, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 536, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "554:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 537, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 515, - "src": "558:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "554:5:6", + "id": 452, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 448, + "src": "316:7:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "nodeType": "BinaryOperation", - "operator": "==", + "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 539, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "563:1:6", + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "335:1:6", + "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": 453, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "327:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "327:10:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "src": "554:10:6", + "src": "316:21:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7573,21 +6340,21 @@ "typeString": "bool" } ], - "id": 535, + "id": 451, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 870, - 871 + 890, + 891 ], - "referencedDeclaration": 870, - "src": "546:7:6", + "referencedDeclaration": 890, + "src": "308:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 541, + "id": 457, "isConstant": false, "isLValue": false, "isPure": false, @@ -7595,70 +6362,273 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "546:19:6", + "src": "308:30:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 542, + "id": 458, "nodeType": "ExpressionStatement", - "src": "546:19:6" + "src": "308:30:6" }, { "expression": { "argumentTypes": null, - "id": 543, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "579:1:6", + "arguments": [ + { + "argumentTypes": null, + "id": 464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "352:19:6", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 461, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 446, + "src": "357:4:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$444_storage_ptr", + "typeString": "struct Roles.Role storage pointer" + } + }, + { + "argumentTypes": null, + "id": 462, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 448, + "src": "363:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Role_$444_storage_ptr", + "typeString": "struct Roles.Role storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 460, + "name": "has", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 530, + "src": "353:3:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$444_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" + } + }, + "id": 463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "353:18:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 459, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 890, + 891 + ], + "referencedDeclaration": 890, + "src": "344:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "344:28:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "functionReturnParameters": 521, - "id": 544, - "nodeType": "Return", - "src": "572:8:6" + "id": 466, + "nodeType": "ExpressionStatement", + "src": "344:28:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 467, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 446, + "src": "379:4:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$444_storage_ptr", + "typeString": "struct Roles.Role storage pointer" + } + }, + "id": 470, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "bearer", + "nodeType": "MemberAccess", + "referencedDeclaration": 443, + "src": "379:11:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 471, + "indexExpression": { + "argumentTypes": null, + "id": 469, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 448, + "src": "391:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "379:20:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "402:4:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "379:27:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 474, + "nodeType": "ExpressionStatement", + "src": "379:27:6" } ] }, - "documentation": "@dev Multiplies two numbers, reverts on overflow.", - "id": 546, + "documentation": "@dev give an account access to this role", + "id": 476, "implemented": true, "isConstructor": false, - "isDeclaredConst": true, + "isDeclaredConst": false, "modifiers": [], - "name": "mul", + "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 518, + "id": 449, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 515, - "name": "a", + "id": 446, + "name": "role", "nodeType": "VariableDeclaration", - "scope": 546, - "src": "217:9:6", + "scope": 476, + "src": "257:17:6", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Role_$444_storage_ptr", + "typeString": "struct Roles.Role" }, "typeName": { - "id": 514, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "217:7:6", + "contractScope": null, + "id": 445, + "name": "Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 444, + "src": "257:4:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_struct$_Role_$444_storage_ptr", + "typeString": "struct Roles.Role" } }, "value": null, @@ -7666,79 +6636,1001 @@ }, { "constant": false, - "id": 517, - "name": "b", + "id": 448, + "name": "account", "nodeType": "VariableDeclaration", - "scope": 546, - "src": "228:9:6", + "scope": 476, + "src": "276:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 516, - "name": "uint256", + "id": 447, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "228:7:6", + "src": "276:7:6", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" } ], - "src": "216:22:6" + "src": "256:36:6" }, "payable": false, "returnParameters": { - "id": 521, + "id": 450, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 520, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 546, - "src": "262:7:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 519, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "262:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "261:9:6" + "parameters": [], + "src": "302:0:6" }, - "scope": 639, - "src": "204:381:6", - "stateMutability": "pure", + "scope": 531, + "src": "244:167:6", + "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 569, + "id": 506, "nodeType": "Block", - "src": "762:203:6", + "src": "538:109:6", "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 484, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "552:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 486, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "571:1:6", + "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": 485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "563:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 487, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "563:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "552:21:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 483, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 890, + 891 + ], + "referencedDeclaration": 890, + "src": "544:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "544:30:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 490, + "nodeType": "ExpressionStatement", + "src": "544:30:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 493, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 478, + "src": "592:4:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$444_storage_ptr", + "typeString": "struct Roles.Role storage pointer" + } + }, + { + "argumentTypes": null, + "id": 494, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "598:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Role_$444_storage_ptr", + "typeString": "struct Roles.Role storage pointer" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 492, + "name": "has", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 530, + "src": "588:3:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$444_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" + } + }, + "id": 495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "588:18:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 491, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 890, + 891 + ], + "referencedDeclaration": 890, + "src": "580:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "580:27:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 497, + "nodeType": "ExpressionStatement", + "src": "580:27:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 498, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 478, + "src": "614:4:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$444_storage_ptr", + "typeString": "struct Roles.Role storage pointer" + } + }, + "id": 501, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "bearer", + "nodeType": "MemberAccess", + "referencedDeclaration": 443, + "src": "614:11:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 502, + "indexExpression": { + "argumentTypes": null, + "id": 500, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "626:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "614:20:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "637:5:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "614:28:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 505, + "nodeType": "ExpressionStatement", + "src": "614:28:6" + } + ] + }, + "documentation": "@dev remove an account's access to this role", + "id": 507, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 478, + "name": "role", + "nodeType": "VariableDeclaration", + "scope": 507, + "src": "493:17:6", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$444_storage_ptr", + "typeString": "struct Roles.Role" + }, + "typeName": { + "contractScope": null, + "id": 477, + "name": "Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 444, + "src": "493:4:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$444_storage_ptr", + "typeString": "struct Roles.Role" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 480, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 507, + "src": "512:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 479, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "512:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "492:36:6" + }, + "payable": false, + "returnParameters": { + "id": 482, + "nodeType": "ParameterList", + "parameters": [], + "src": "538:0:6" + }, + "scope": 531, + "src": "477:170:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 529, + "nodeType": "Block", + "src": "817:74:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 517, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 511, + "src": "831:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "850:1:6", + "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": 518, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "842:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 520, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "842:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "831:21:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 516, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 890, + 891 + ], + "referencedDeclaration": 890, + "src": "823:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "823:30:6", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 523, + "nodeType": "ExpressionStatement", + "src": "823:30:6" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 524, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 509, + "src": "866:4:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$444_storage_ptr", + "typeString": "struct Roles.Role storage pointer" + } + }, + "id": 525, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "bearer", + "nodeType": "MemberAccess", + "referencedDeclaration": 443, + "src": "866:11:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 527, + "indexExpression": { + "argumentTypes": null, + "id": 526, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 511, + "src": "878:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "866:20:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 515, + "id": 528, + "nodeType": "Return", + "src": "859:27:6" + } + ] + }, + "documentation": "@dev check if an account has this role\n@return bool", + "id": 530, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "has", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 512, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 509, + "name": "role", + "nodeType": "VariableDeclaration", + "scope": 530, + "src": "738:17:6", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$444_storage_ptr", + "typeString": "struct Roles.Role" + }, + "typeName": { + "contractScope": null, + "id": 508, + "name": "Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 444, + "src": "738:4:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Role_$444_storage_ptr", + "typeString": "struct Roles.Role" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 511, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 530, + "src": "757:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 510, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "757:7:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "737:36:6" + }, + "payable": false, + "returnParameters": { + "id": 515, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 514, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 530, + "src": "809:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 513, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "809:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "808:6:6" + }, + "scope": 531, + "src": "725:166:6", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 532, + "src": "109:784:6" + } + ], + "src": "0:894:6" + }, + "id": 6 + }, + "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol": { + "ast": { + "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol", + "exportedSymbols": { + "SafeMath": [ + 659 + ] + }, + "id": 660, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 533, + "literals": [ + "solidity", + "^", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:24:7" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "@title SafeMath\n@dev Math operations with safety checks that revert on error", + "fullyImplemented": true, + "id": 659, + "linearizedBaseContracts": [ + 659 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 565, + "nodeType": "Block", + "src": "271:314:7", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 542, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 535, + "src": "486:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "491:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "486:6:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 548, + "nodeType": "IfStatement", + "src": "482:35:7", + "trueBody": { + "id": 547, + "nodeType": "Block", + "src": "494:23:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 545, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "509:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 541, + "id": 546, + "nodeType": "Return", + "src": "502:8:7" + } + ] + } + }, + { + "assignments": [ + 550 + ], + "declarations": [ + { + "constant": false, + "id": 550, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 566, + "src": "523:9:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 549, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "523:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 554, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 551, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 535, + "src": "535:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 552, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 537, + "src": "539:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "535:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "523:17:7" + }, { "expression": { "argumentTypes": null, @@ -7749,45 +7641,72 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 558, + "id": 560, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 556, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "776:1:6", + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 556, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 550, + "src": "554:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 557, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 535, + "src": "558:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "554:5:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": ">", + "operator": "==", "rightExpression": { "argumentTypes": null, - "hexValue": "30", - "id": 557, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "780:1:6", - "subdenomination": null, + "id": 559, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 537, + "src": "563:1:7", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "src": "776:5:6", + "src": "554:10:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7805,17 +7724,17 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 870, - 871 + 890, + 891 ], - "referencedDeclaration": 870, - "src": "768:7:6", + "referencedDeclaration": 890, + "src": "546:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 559, + "id": 561, "isConstant": false, "isLValue": false, "isPure": false, @@ -7823,28 +7742,256 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "768:14:6", + "src": "546:19:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 560, + "id": 562, "nodeType": "ExpressionStatement", - "src": "768:14:6" + "src": "546:19:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 563, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 550, + "src": "579:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 541, + "id": 564, + "nodeType": "Return", + "src": "572:8:7" + } + ] + }, + "documentation": "@dev Multiplies two numbers, reverts on overflow.", + "id": 566, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 538, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 535, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 566, + "src": "217:9:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 534, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "217:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 537, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 566, + "src": "228:9:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "228:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "216:22:7" + }, + "payable": false, + "returnParameters": { + "id": 541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 540, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 566, + "src": "262:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 539, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "262:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "261:9:7" + }, + "scope": 659, + "src": "204:381:7", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 589, + "nodeType": "Block", + "src": "762:203:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 576, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 570, + "src": "776:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "780:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "776:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 575, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 890, + 891 + ], + "referencedDeclaration": 890, + "src": "768:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "768:14:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 580, + "nodeType": "ExpressionStatement", + "src": "768:14:7" }, { "assignments": [ - 562 + 582 ], "declarations": [ { "constant": false, - "id": 562, + "id": 582, "name": "c", "nodeType": "VariableDeclaration", - "scope": 570, - "src": "846:9:6", + "scope": 590, + "src": "846:9:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7852,10 +7999,10 @@ "typeString": "uint256" }, "typeName": { - "id": 561, + "id": 581, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "846:7:6", + "src": "846:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7865,26 +8012,26 @@ "visibility": "internal" } ], - "id": 566, + "id": 586, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 565, + "id": 585, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 563, + "id": 583, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "858:1:6", + "referencedDeclaration": 568, + "src": "858:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7894,49 +8041,49 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 564, + "id": 584, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "862:1:6", + "referencedDeclaration": 570, + "src": "862:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "858:5:6", + "src": "858:5:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "846:17:6" + "src": "846:17:7" }, { "expression": { "argumentTypes": null, - "id": 567, + "id": 587, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 562, - "src": "959:1:6", + "referencedDeclaration": 582, + "src": "959:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 554, - "id": 568, + "functionReturnParameters": 574, + "id": 588, "nodeType": "Return", - "src": "952:8:6" + "src": "952:8:7" } ] }, "documentation": "@dev Integer division of two numbers truncating the quotient, reverts on division by zero.", - "id": 570, + "id": 590, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7944,16 +8091,16 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 551, + "id": 571, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 548, + "id": 568, "name": "a", "nodeType": "VariableDeclaration", - "scope": 570, - "src": "708:9:6", + "scope": 590, + "src": "708:9:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7961,10 +8108,10 @@ "typeString": "uint256" }, "typeName": { - "id": 547, + "id": 567, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "708:7:6", + "src": "708:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7975,11 +8122,11 @@ }, { "constant": false, - "id": 550, + "id": 570, "name": "b", "nodeType": "VariableDeclaration", - "scope": 570, - "src": "719:9:6", + "scope": 590, + "src": "719:9:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7987,10 +8134,10 @@ "typeString": "uint256" }, "typeName": { - "id": 549, + "id": 569, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "719:7:6", + "src": "719:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8000,20 +8147,20 @@ "visibility": "internal" } ], - "src": "707:22:6" + "src": "707:22:7" }, "payable": false, "returnParameters": { - "id": 554, + "id": 574, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 553, + "id": 573, "name": "", "nodeType": "VariableDeclaration", - "scope": 570, - "src": "753:7:6", + "scope": 590, + "src": "753:7:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8021,10 +8168,10 @@ "typeString": "uint256" }, "typeName": { - "id": 552, + "id": 572, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "753:7:6", + "src": "753:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8034,19 +8181,19 @@ "visibility": "internal" } ], - "src": "752:9:6" + "src": "752:9:7" }, - "scope": 639, - "src": "695:270:6", + "scope": 659, + "src": "695:270:7", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 593, + "id": 613, "nodeType": "Block", - "src": "1145:64:6", + "src": "1145:64:7", "statements": [ { "expression": { @@ -8058,19 +8205,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 582, + "id": 602, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 580, + "id": 600, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 574, - "src": "1159:1:6", + "referencedDeclaration": 594, + "src": "1159:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8080,18 +8227,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 581, + "id": 601, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 572, - "src": "1164:1:6", + "referencedDeclaration": 592, + "src": "1164:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1159:6:6", + "src": "1159:6:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8105,21 +8252,21 @@ "typeString": "bool" } ], - "id": 579, + "id": 599, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 870, - 871 + 890, + 891 ], - "referencedDeclaration": 870, - "src": "1151:7:6", + "referencedDeclaration": 890, + "src": "1151:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 583, + "id": 603, "isConstant": false, "isLValue": false, "isPure": false, @@ -8127,28 +8274,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1151:15:6", + "src": "1151:15:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 584, + "id": 604, "nodeType": "ExpressionStatement", - "src": "1151:15:6" + "src": "1151:15:7" }, { "assignments": [ - 586 + 606 ], "declarations": [ { "constant": false, - "id": 586, + "id": 606, "name": "c", "nodeType": "VariableDeclaration", - "scope": 594, - "src": "1172:9:6", + "scope": 614, + "src": "1172:9:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8156,10 +8303,10 @@ "typeString": "uint256" }, "typeName": { - "id": 585, + "id": 605, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1172:7:6", + "src": "1172:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8169,26 +8316,26 @@ "visibility": "internal" } ], - "id": 590, + "id": 610, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 589, + "id": 609, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 587, + "id": 607, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 572, - "src": "1184:1:6", + "referencedDeclaration": 592, + "src": "1184:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8198,49 +8345,49 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 588, + "id": 608, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 574, - "src": "1188:1:6", + "referencedDeclaration": 594, + "src": "1188:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1184:5:6", + "src": "1184:5:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1172:17:6" + "src": "1172:17:7" }, { "expression": { "argumentTypes": null, - "id": 591, + "id": 611, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 586, - "src": "1203:1:6", + "referencedDeclaration": 606, + "src": "1203:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 578, - "id": 592, + "functionReturnParameters": 598, + "id": 612, "nodeType": "Return", - "src": "1196:8:6" + "src": "1196:8:7" } ] }, "documentation": "@dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).", - "id": 594, + "id": 614, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8248,16 +8395,16 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 575, + "id": 595, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 572, + "id": 592, "name": "a", "nodeType": "VariableDeclaration", - "scope": 594, - "src": "1091:9:6", + "scope": 614, + "src": "1091:9:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8265,10 +8412,10 @@ "typeString": "uint256" }, "typeName": { - "id": 571, + "id": 591, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1091:7:6", + "src": "1091:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8279,11 +8426,11 @@ }, { "constant": false, - "id": 574, + "id": 594, "name": "b", "nodeType": "VariableDeclaration", - "scope": 594, - "src": "1102:9:6", + "scope": 614, + "src": "1102:9:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8291,10 +8438,10 @@ "typeString": "uint256" }, "typeName": { - "id": 573, + "id": 593, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1102:7:6", + "src": "1102:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8304,20 +8451,20 @@ "visibility": "internal" } ], - "src": "1090:22:6" + "src": "1090:22:7" }, "payable": false, "returnParameters": { - "id": 578, + "id": 598, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 577, + "id": 597, "name": "", "nodeType": "VariableDeclaration", - "scope": 594, - "src": "1136:7:6", + "scope": 614, + "src": "1136:7:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8325,10 +8472,10 @@ "typeString": "uint256" }, "typeName": { - "id": 576, + "id": 596, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1136:7:6", + "src": "1136:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8338,32 +8485,32 @@ "visibility": "internal" } ], - "src": "1135:9:6" + "src": "1135:9:7" }, - "scope": 639, - "src": "1078:131:6", + "scope": 659, + "src": "1078:131:7", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 617, + "id": 637, "nodeType": "Block", - "src": "1339:64:6", + "src": "1339:64:7", "statements": [ { "assignments": [ - 604 + 624 ], "declarations": [ { "constant": false, - "id": 604, + "id": 624, "name": "c", "nodeType": "VariableDeclaration", - "scope": 618, - "src": "1345:9:6", + "scope": 638, + "src": "1345:9:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8371,10 +8518,10 @@ "typeString": "uint256" }, "typeName": { - "id": 603, + "id": 623, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1345:7:6", + "src": "1345:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8384,26 +8531,26 @@ "visibility": "internal" } ], - "id": 608, + "id": 628, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 607, + "id": 627, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 605, + "id": 625, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "1357:1:6", + "referencedDeclaration": 616, + "src": "1357:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8413,25 +8560,25 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 606, + "id": 626, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "1361:1:6", + "referencedDeclaration": 618, + "src": "1361:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1357:5:6", + "src": "1357:5:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1345:17:6" + "src": "1345:17:7" }, { "expression": { @@ -8443,19 +8590,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 612, + "id": 632, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 610, + "id": 630, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 604, - "src": "1376:1:6", + "referencedDeclaration": 624, + "src": "1376:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8465,18 +8612,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 611, + "id": 631, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "1381:1:6", + "referencedDeclaration": 616, + "src": "1381:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1376:6:6", + "src": "1376:6:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8490,21 +8637,21 @@ "typeString": "bool" } ], - "id": 609, + "id": 629, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 870, - 871 + 890, + 891 ], - "referencedDeclaration": 870, - "src": "1368:7:6", + "referencedDeclaration": 890, + "src": "1368:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 613, + "id": 633, "isConstant": false, "isLValue": false, "isPure": false, @@ -8512,39 +8659,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1368:15:6", + "src": "1368:15:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 614, + "id": 634, "nodeType": "ExpressionStatement", - "src": "1368:15:6" + "src": "1368:15:7" }, { "expression": { "argumentTypes": null, - "id": 615, + "id": 635, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 604, - "src": "1397:1:6", + "referencedDeclaration": 624, + "src": "1397:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 602, - "id": 616, + "functionReturnParameters": 622, + "id": 636, "nodeType": "Return", - "src": "1390:8:6" + "src": "1390:8:7" } ] }, "documentation": "@dev Adds two numbers, reverts on overflow.", - "id": 618, + "id": 638, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8552,16 +8699,16 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 599, + "id": 619, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 596, + "id": 616, "name": "a", "nodeType": "VariableDeclaration", - "scope": 618, - "src": "1285:9:6", + "scope": 638, + "src": "1285:9:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8569,10 +8716,10 @@ "typeString": "uint256" }, "typeName": { - "id": 595, + "id": 615, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1285:7:6", + "src": "1285:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8583,11 +8730,11 @@ }, { "constant": false, - "id": 598, + "id": 618, "name": "b", "nodeType": "VariableDeclaration", - "scope": 618, - "src": "1296:9:6", + "scope": 638, + "src": "1296:9:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8595,10 +8742,10 @@ "typeString": "uint256" }, "typeName": { - "id": 597, + "id": 617, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1296:7:6", + "src": "1296:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8608,20 +8755,20 @@ "visibility": "internal" } ], - "src": "1284:22:6" + "src": "1284:22:7" }, "payable": false, "returnParameters": { - "id": 602, + "id": 622, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 601, + "id": 621, "name": "", "nodeType": "VariableDeclaration", - "scope": 618, - "src": "1330:7:6", + "scope": 638, + "src": "1330:7:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8629,10 +8776,10 @@ "typeString": "uint256" }, "typeName": { - "id": 600, + "id": 620, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1330:7:6", + "src": "1330:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8642,19 +8789,19 @@ "visibility": "internal" } ], - "src": "1329:9:6" + "src": "1329:9:7" }, - "scope": 639, - "src": "1272:131:6", + "scope": 659, + "src": "1272:131:7", "stateMutability": "pure", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 637, + "id": 657, "nodeType": "Block", - "src": "1602:44:6", + "src": "1602:44:7", "statements": [ { "expression": { @@ -8666,19 +8813,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 630, + "id": 650, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 628, + "id": 648, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 622, - "src": "1616:1:6", + "referencedDeclaration": 642, + "src": "1616:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8689,14 +8836,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 629, + "id": 649, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1621:1:6", + "src": "1621:1:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8704,7 +8851,7 @@ }, "value": "0" }, - "src": "1616:6:6", + "src": "1616:6:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8718,21 +8865,21 @@ "typeString": "bool" } ], - "id": 627, + "id": 647, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 870, - 871 + 890, + 891 ], - "referencedDeclaration": 870, - "src": "1608:7:6", + "referencedDeclaration": 890, + "src": "1608:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 631, + "id": 651, "isConstant": false, "isLValue": false, "isPure": false, @@ -8740,15 +8887,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1608:15:6", + "src": "1608:15:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 632, + "id": 652, "nodeType": "ExpressionStatement", - "src": "1608:15:6" + "src": "1608:15:7" }, { "expression": { @@ -8757,19 +8904,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 635, + "id": 655, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 633, + "id": 653, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 620, - "src": "1636:1:6", + "referencedDeclaration": 640, + "src": "1636:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8779,32 +8926,32 @@ "operator": "%", "rightExpression": { "argumentTypes": null, - "id": 634, + "id": 654, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 622, - "src": "1640:1:6", + "referencedDeclaration": 642, + "src": "1640:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1636:5:6", + "src": "1636:5:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 626, - "id": 636, + "functionReturnParameters": 646, + "id": 656, "nodeType": "Return", - "src": "1629:12:6" + "src": "1629:12:7" } ] }, "documentation": "@dev Divides two numbers and returns the remainder (unsigned integer modulo),\nreverts when dividing by zero.", - "id": 638, + "id": 658, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8812,16 +8959,16 @@ "name": "mod", "nodeType": "FunctionDefinition", "parameters": { - "id": 623, + "id": 643, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 620, + "id": 640, "name": "a", "nodeType": "VariableDeclaration", - "scope": 638, - "src": "1548:9:6", + "scope": 658, + "src": "1548:9:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8829,10 +8976,10 @@ "typeString": "uint256" }, "typeName": { - "id": 619, + "id": 639, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1548:7:6", + "src": "1548:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8843,11 +8990,11 @@ }, { "constant": false, - "id": 622, + "id": 642, "name": "b", "nodeType": "VariableDeclaration", - "scope": 638, - "src": "1559:9:6", + "scope": 658, + "src": "1559:9:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8855,10 +9002,10 @@ "typeString": "uint256" }, "typeName": { - "id": 621, + "id": 641, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1559:7:6", + "src": "1559:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8868,20 +9015,20 @@ "visibility": "internal" } ], - "src": "1547:22:6" + "src": "1547:22:7" }, "payable": false, "returnParameters": { - "id": 626, + "id": 646, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 625, + "id": 645, "name": "", "nodeType": "VariableDeclaration", - "scope": 638, - "src": "1593:7:6", + "scope": 658, + "src": "1593:7:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8889,10 +9036,10 @@ "typeString": "uint256" }, "typeName": { - "id": 624, + "id": 644, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1593:7:6", + "src": "1593:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8902,36 +9049,36 @@ "visibility": "internal" } ], - "src": "1592:9:6" + "src": "1592:9:7" }, - "scope": 639, - "src": "1535:111:6", + "scope": 659, + "src": "1535:111:7", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 640, - "src": "117:1531:6" + "scope": 660, + "src": "117:1531:7" } ], - "src": "0:1649:6" + "src": "0:1649:7" }, - "id": 6 + "id": 7 }, "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol": { "ast": { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", "exportedSymbols": { "IERC20": [ - 708 + 728 ] }, - "id": 709, + "id": 729, "nodeType": "SourceUnit", "nodes": [ { - "id": 641, + "id": 661, "literals": [ "solidity", "^", @@ -8939,7 +9086,7 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:7" + "src": "0:24:8" }, { "baseContracts": [], @@ -8947,9 +9094,9 @@ "contractKind": "interface", "documentation": "@title ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/20", "fullyImplemented": false, - "id": 708, + "id": 728, "linearizedBaseContracts": [ - 708 + 728 ], "name": "IERC20", "nodeType": "ContractDefinition", @@ -8957,7 +9104,7 @@ { "body": null, "documentation": null, - "id": 646, + "id": 666, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -8965,23 +9112,23 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 642, + "id": 662, "nodeType": "ParameterList", "parameters": [], - "src": "156:2:7" + "src": "156:2:8" }, "payable": false, "returnParameters": { - "id": 645, + "id": 665, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 644, + "id": 664, "name": "", "nodeType": "VariableDeclaration", - "scope": 646, - "src": "182:7:7", + "scope": 666, + "src": "182:7:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8989,10 +9136,10 @@ "typeString": "uint256" }, "typeName": { - "id": 643, + "id": 663, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "182:7:7", + "src": "182:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9002,10 +9149,10 @@ "visibility": "internal" } ], - "src": "181:9:7" + "src": "181:9:8" }, - "scope": 708, - "src": "136:55:7", + "scope": 728, + "src": "136:55:8", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -9013,7 +9160,7 @@ { "body": null, "documentation": null, - "id": 653, + "id": 673, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -9021,16 +9168,16 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 649, + "id": 669, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 648, + "id": 668, "name": "who", "nodeType": "VariableDeclaration", - "scope": 653, - "src": "214:11:7", + "scope": 673, + "src": "214:11:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9038,10 +9185,10 @@ "typeString": "address" }, "typeName": { - "id": 647, + "id": 667, "name": "address", "nodeType": "ElementaryTypeName", - "src": "214:7:7", + "src": "214:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9051,20 +9198,20 @@ "visibility": "internal" } ], - "src": "213:13:7" + "src": "213:13:8" }, "payable": false, "returnParameters": { - "id": 652, + "id": 672, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 651, + "id": 671, "name": "", "nodeType": "VariableDeclaration", - "scope": 653, - "src": "250:7:7", + "scope": 673, + "src": "250:7:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9072,10 +9219,10 @@ "typeString": "uint256" }, "typeName": { - "id": 650, + "id": 670, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "250:7:7", + "src": "250:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9085,10 +9232,10 @@ "visibility": "internal" } ], - "src": "249:9:7" + "src": "249:9:8" }, - "scope": 708, - "src": "195:64:7", + "scope": 728, + "src": "195:64:8", "stateMutability": "view", "superFunction": null, "visibility": "external" @@ -9096,7 +9243,7 @@ { "body": null, "documentation": null, - "id": 662, + "id": 682, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -9104,260 +9251,76 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 658, + "id": 678, "nodeType": "ParameterList", "parameters": [ - { - "constant": false, - "id": 655, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 662, - "src": "282:13:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 654, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "282:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 657, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 662, - "src": "297:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 656, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "297:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "281:32:7" - }, - "payable": false, - "returnParameters": { - "id": 661, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 660, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 662, - "src": "341:7:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 659, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "341:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "340:9:7" - }, - "scope": 708, - "src": "263:87:7", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 671, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 667, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 664, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 671, - "src": "372:10:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 663, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "372:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 666, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 671, - "src": "384:13:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 665, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "384:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "371:27:7" - }, - "payable": false, - "returnParameters": { - "id": 670, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 669, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 671, - "src": "417:4:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 668, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "417:4:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "416:6:7" - }, - "scope": 708, - "src": "354:69:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 680, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 676, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 673, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 680, - "src": "444:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 672, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "444:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, { "constant": false, "id": 675, - "name": "value", + "name": "owner", "nodeType": "VariableDeclaration", - "scope": 680, - "src": "461:13:7", + "scope": 682, + "src": "282:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 674, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "282:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 677, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 682, + "src": "297:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "297:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "281:32:8" + }, + "payable": false, + "returnParameters": { + "id": 681, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 680, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 682, + "src": "341:7:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9365,10 +9328,10 @@ "typeString": "uint256" }, "typeName": { - "id": 674, + "id": 679, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "461:7:7", + "src": "341:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9378,45 +9341,11 @@ "visibility": "internal" } ], - "src": "443:32:7" + "src": "340:9:8" }, - "payable": false, - "returnParameters": { - "id": 679, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 678, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 680, - "src": "498:4:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 677, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "498:4:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "497:6:7" - }, - "scope": 708, - "src": "427:77:7", - "stateMutability": "nonpayable", + "scope": 728, + "src": "263:87:8", + "stateMutability": "view", "superFunction": null, "visibility": "external" }, @@ -9428,45 +9357,19 @@ "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "transferFrom", + "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { "id": 687, "nodeType": "ParameterList", "parameters": [ - { - "constant": false, - "id": 682, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 691, - "src": "530:12:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 681, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "530:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, { "constant": false, "id": 684, "name": "to", "nodeType": "VariableDeclaration", "scope": 691, - "src": "544:10:7", + "src": "372:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9477,7 +9380,7 @@ "id": 683, "name": "address", "nodeType": "ElementaryTypeName", - "src": "544:7:7", + "src": "372:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9492,7 +9395,7 @@ "name": "value", "nodeType": "VariableDeclaration", "scope": 691, - "src": "556:13:7", + "src": "384:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9503,7 +9406,7 @@ "id": 685, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "556:7:7", + "src": "384:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9513,7 +9416,7 @@ "visibility": "internal" } ], - "src": "529:41:7" + "src": "371:27:8" }, "payable": false, "returnParameters": { @@ -9526,7 +9429,7 @@ "name": "", "nodeType": "VariableDeclaration", "scope": 691, - "src": "593:4:7", + "src": "417:4:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9537,7 +9440,7 @@ "id": 688, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "593:4:7", + "src": "417:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9547,32 +9450,35 @@ "visibility": "internal" } ], - "src": "592:6:7" + "src": "416:6:8" }, - "scope": 708, - "src": "508:91:7", + "scope": 728, + "src": "354:69:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "external" }, { - "anonymous": false, + "body": null, "documentation": null, - "id": 699, - "name": "Transfer", - "nodeType": "EventDefinition", + "id": 700, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", "parameters": { - "id": 698, + "id": 696, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 693, - "indexed": true, - "name": "from", + "name": "spender", "nodeType": "VariableDeclaration", - "scope": 699, - "src": "623:20:7", + "scope": 700, + "src": "444:15:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9583,7 +9489,7 @@ "id": 692, "name": "address", "nodeType": "ElementaryTypeName", - "src": "623:7:7", + "src": "444:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9595,38 +9501,10 @@ { "constant": false, "id": 695, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 699, - "src": "649:18:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 694, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "649:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 697, - "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 699, - "src": "673:13:7", + "scope": 700, + "src": "461:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9634,10 +9512,10 @@ "typeString": "uint256" }, "typeName": { - "id": 696, + "id": 694, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "673:7:7", + "src": "461:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9647,28 +9525,69 @@ "visibility": "internal" } ], - "src": "617:73:7" + "src": "443:32:8" }, - "src": "603:88:7" - }, - { - "anonymous": false, - "documentation": null, - "id": 707, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 706, + "payable": false, + "returnParameters": { + "id": 699, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 701, - "indexed": true, - "name": "owner", + "id": 698, + "name": "", "nodeType": "VariableDeclaration", - "scope": 707, - "src": "715:21:7", + "scope": 700, + "src": "498:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 697, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "498:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "497:6:8" + }, + "scope": 728, + "src": "427:77:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 711, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 707, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 702, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 711, + "src": "530:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9676,10 +9595,10 @@ "typeString": "address" }, "typeName": { - "id": 700, + "id": 701, "name": "address", "nodeType": "ElementaryTypeName", - "src": "715:7:7", + "src": "530:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9690,12 +9609,11 @@ }, { "constant": false, - "id": 703, - "indexed": true, - "name": "spender", + "id": 704, + "name": "to", "nodeType": "VariableDeclaration", - "scope": 707, - "src": "742:23:7", + "scope": 711, + "src": "544:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9703,10 +9621,10 @@ "typeString": "address" }, "typeName": { - "id": 702, + "id": 703, "name": "address", "nodeType": "ElementaryTypeName", - "src": "742:7:7", + "src": "544:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9717,12 +9635,11 @@ }, { "constant": false, - "id": 705, - "indexed": false, + "id": 706, "name": "value", "nodeType": "VariableDeclaration", - "scope": 707, - "src": "771:13:7", + "scope": 711, + "src": "556:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9730,10 +9647,10 @@ "typeString": "uint256" }, "typeName": { - "id": 704, + "id": 705, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "771:7:7", + "src": "556:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9743,32 +9660,262 @@ "visibility": "internal" } ], - "src": "709:79:7" + "src": "529:41:8" }, - "src": "695:94:7" + "payable": false, + "returnParameters": { + "id": 710, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 709, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 711, + "src": "593:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 708, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "593:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "592:6:8" + }, + "scope": 728, + "src": "508:91:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "anonymous": false, + "documentation": null, + "id": 719, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 713, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 719, + "src": "623:20:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 712, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "623:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 715, + "indexed": true, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 719, + "src": "649:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 714, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "649:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 717, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 719, + "src": "673:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 716, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "673:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "617:73:8" + }, + "src": "603:88:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 727, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 721, + "indexed": true, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 727, + "src": "715:21:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "715:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 723, + "indexed": true, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 727, + "src": "742:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 722, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "742:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 725, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 727, + "src": "771:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "771:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "709:79:8" + }, + "src": "695:94:8" } ], - "scope": 709, - "src": "115:676:7" + "scope": 729, + "src": "115:676:8" } ], - "src": "0:792:7" + "src": "0:792:8" }, - "id": 7 + "id": 8 }, "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol": { "ast": { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/SafeERC20.sol", "exportedSymbols": { "SafeERC20": [ - 852 + 872 ] }, - "id": 853, + "id": 873, "nodeType": "SourceUnit", "nodes": [ { - "id": 710, + "id": 730, "literals": [ "solidity", "^", @@ -9776,27 +9923,27 @@ ".24" ], "nodeType": "PragmaDirective", - "src": "0:24:8" + "src": "0:24:9" }, { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", "file": "./IERC20.sol", - "id": 711, + "id": 731, "nodeType": "ImportDirective", - "scope": 853, - "sourceUnit": 709, - "src": "26:22:8", + "scope": 873, + "sourceUnit": 729, + "src": "26:22:9", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/math/SafeMath.sol", "file": "../../math/SafeMath.sol", - "id": 712, + "id": 732, "nodeType": "ImportDirective", - "scope": 853, - "sourceUnit": 640, - "src": "49:33:8", + "scope": 873, + "sourceUnit": 660, + "src": "49:33:9", "symbolAliases": [], "unitAlias": "" }, @@ -9806,34 +9953,34 @@ "contractKind": "library", "documentation": "@title SafeERC20\n@dev Wrappers around ERC20 operations that throw on failure.\nTo use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,\nwhich allows you to call the safe operations as `token.safeTransfer(...)`, etc.", "fullyImplemented": true, - "id": 852, + "id": 872, "linearizedBaseContracts": [ - 852 + 872 ], "name": "SafeERC20", "nodeType": "ContractDefinition", "nodes": [ { - "id": 715, + "id": 735, "libraryName": { "contractScope": null, - "id": 713, + "id": 733, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 639, - "src": "382:8:8", + "referencedDeclaration": 659, + "src": "382:8:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$639", + "typeIdentifier": "t_contract$_SafeMath_$659", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", - "src": "376:27:8", + "src": "376:27:9", "typeName": { - "id": 714, + "id": 734, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "395:7:8", + "src": "395:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9842,251 +9989,9 @@ }, { "body": { - "id": 732, + "id": 752, "nodeType": "Block", - "src": "501:45:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 727, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 719, - "src": "530:2:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 728, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 721, - "src": "534:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 725, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 717, - "src": "515:5:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", - "typeString": "contract IERC20" - } - }, - "id": 726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 671, - "src": "515:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "515:25:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 724, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 870, - 871 - ], - "referencedDeclaration": 870, - "src": "507:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 730, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "507:34:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 731, - "nodeType": "ExpressionStatement", - "src": "507:34:8" - } - ] - }, - "documentation": null, - "id": 733, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "safeTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 722, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 717, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 733, - "src": "434:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 716, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 708, - "src": "434:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 719, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 733, - "src": "452:10:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 718, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "452:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 721, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 733, - "src": "468:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 720, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "468:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "428:57:8" - }, - "payable": false, - "returnParameters": { - "id": 723, - "nodeType": "ParameterList", - "parameters": [], - "src": "501:0:8" - }, - "scope": 852, - "src": "407:139:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 753, - "nodeType": "Block", - "src": "666:55:8", + "src": "501:45:9", "statements": [ { "expression": { @@ -10098,11 +10003,11 @@ { "argumentTypes": null, "id": 747, - "name": "from", + "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 737, - "src": "699:4:8", + "referencedDeclaration": 739, + "src": "530:2:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10111,24 +10016,11 @@ { "argumentTypes": null, "id": 748, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "705:2:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 749, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 741, - "src": "709:5:8", + "src": "534:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10137,10 +10029,6 @@ ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, { "typeIdentifier": "t_address", "typeString": "address" @@ -10156,10 +10044,10 @@ "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 735, - "src": "680:5:8", + "referencedDeclaration": 737, + "src": "515:5:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", + "typeIdentifier": "t_contract$_IERC20_$728", "typeString": "contract IERC20" } }, @@ -10168,16 +10056,16 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "transferFrom", + "memberName": "transfer", "nodeType": "MemberAccess", "referencedDeclaration": 691, - "src": "680:18:8", + "src": "515:14:9", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 750, + "id": 749, "isConstant": false, "isLValue": false, "isPure": false, @@ -10185,7 +10073,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "680:35:8", + "src": "515:25:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10203,17 +10091,17 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 870, - 871 + 890, + 891 ], - "referencedDeclaration": 870, - "src": "672:7:8", + "referencedDeclaration": 890, + "src": "507:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 751, + "id": 750, "isConstant": false, "isLValue": false, "isPure": false, @@ -10221,25 +10109,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "672:44:8", + "src": "507:34:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 752, + "id": 751, "nodeType": "ExpressionStatement", - "src": "672:44:8" + "src": "507:34:9" } ] }, "documentation": null, - "id": 754, + "id": 753, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "safeTransferFrom", + "name": "safeTransfer", "nodeType": "FunctionDefinition", "parameters": { "id": 742, @@ -10247,65 +10135,39 @@ "parameters": [ { "constant": false, - "id": 735, + "id": 737, "name": "token", "nodeType": "VariableDeclaration", - "scope": 754, - "src": "581:12:8", + "scope": 753, + "src": "434:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", + "typeIdentifier": "t_contract$_IERC20_$728", "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 734, + "id": 736, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 708, - "src": "581:6:8", + "referencedDeclaration": 728, + "src": "434:6:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", + "typeIdentifier": "t_contract$_IERC20_$728", "typeString": "contract IERC20" } }, "value": null, "visibility": "internal" }, - { - "constant": false, - "id": 737, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 754, - "src": "599:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 736, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "599:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, { "constant": false, "id": 739, "name": "to", "nodeType": "VariableDeclaration", - "scope": 754, - "src": "617:10:8", + "scope": 753, + "src": "452:10:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10316,7 +10178,7 @@ "id": 738, "name": "address", "nodeType": "ElementaryTypeName", - "src": "617:7:8", + "src": "452:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10330,8 +10192,8 @@ "id": 741, "name": "value", "nodeType": "VariableDeclaration", - "scope": 754, - "src": "633:13:8", + "scope": 753, + "src": "468:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10342,7 +10204,7 @@ "id": 740, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "633:7:8", + "src": "468:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10352,26 +10214,311 @@ "visibility": "internal" } ], - "src": "575:75:8" + "src": "428:57:9" }, "payable": false, "returnParameters": { "id": 743, "nodeType": "ParameterList", "parameters": [], - "src": "666:0:8" + "src": "501:0:9" }, - "scope": 852, - "src": "550:171:8", + "scope": 872, + "src": "407:139:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 788, + "id": 773, "nodeType": "Block", - "src": "823:330:8", + "src": "666:55:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 767, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 757, + "src": "699:4:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 768, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 759, + "src": "705:2:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 769, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 761, + "src": "709:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 765, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 755, + "src": "680:5:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$728", + "typeString": "contract IERC20" + } + }, + "id": 766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 711, + "src": "680:18:9", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "680:35:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 764, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 890, + 891 + ], + "referencedDeclaration": 890, + "src": "672:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "672:44:9", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 772, + "nodeType": "ExpressionStatement", + "src": "672:44:9" + } + ] + }, + "documentation": null, + "id": 774, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 762, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 755, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 774, + "src": "581:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$728", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 754, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 728, + "src": "581:6:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$728", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 757, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 774, + "src": "599:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 756, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "599:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 759, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 774, + "src": "617:10:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "617:7:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 761, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 774, + "src": "633:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 760, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "633:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "575:75:9" + }, + "payable": false, + "returnParameters": { + "id": 763, + "nodeType": "ParameterList", + "parameters": [], + "src": "666:0:9" + }, + "scope": 872, + "src": "550:171:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 808, + "nodeType": "Block", + "src": "823:330:9", "statements": [ { "expression": { @@ -10383,7 +10530,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 777, + "id": 797, "isConstant": false, "isLValue": false, "isPure": false, @@ -10397,19 +10544,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 766, + "id": 786, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 764, + "id": 784, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 760, - "src": "1045:5:8", + "referencedDeclaration": 780, + "src": "1045:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10420,14 +10567,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 765, + "id": 785, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1054:1:8", + "src": "1054:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10435,21 +10582,21 @@ }, "value": "0" }, - "src": "1045:10:8", + "src": "1045:10:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 767, + "id": 787, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "1044:12:8", + "src": "1044:12:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10466,7 +10613,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 775, + "id": 795, "isConstant": false, "isLValue": false, "isPure": false, @@ -10478,18 +10625,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 770, + "id": 790, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 867, - "src": "1077:3:8", + "referencedDeclaration": 887, + "src": "1077:3:9", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 771, + "id": 791, "isConstant": false, "isLValue": false, "isPure": false, @@ -10497,7 +10644,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1077:10:8", + "src": "1077:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10505,12 +10652,12 @@ }, { "argumentTypes": null, - "id": 772, + "id": 792, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 758, - "src": "1089:7:8", + "referencedDeclaration": 778, + "src": "1089:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10530,32 +10677,32 @@ ], "expression": { "argumentTypes": null, - "id": 768, + "id": 788, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 756, - "src": "1061:5:8", + "referencedDeclaration": 776, + "src": "1061:5:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", + "typeIdentifier": "t_contract$_IERC20_$728", "typeString": "contract IERC20" } }, - "id": 769, + "id": 789, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 662, - "src": "1061:15:8", + "referencedDeclaration": 682, + "src": "1061:15:9", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 773, + "id": 793, "isConstant": false, "isLValue": false, "isPure": false, @@ -10563,7 +10710,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1061:36:8", + "src": "1061:36:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10574,14 +10721,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 774, + "id": 794, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1101:1:8", + "src": "1101:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10589,27 +10736,27 @@ }, "value": "0" }, - "src": "1061:41:8", + "src": "1061:41:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], - "id": 776, + "id": 796, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "1060:43:8", + "src": "1060:43:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1044:59:8", + "src": "1044:59:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10623,21 +10770,21 @@ "typeString": "bool" } ], - "id": 763, + "id": 783, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 870, - 871 + 890, + 891 ], - "referencedDeclaration": 870, - "src": "1036:7:8", + "referencedDeclaration": 890, + "src": "1036:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 778, + "id": 798, "isConstant": false, "isLValue": false, "isPure": false, @@ -10645,15 +10792,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1036:68:8", + "src": "1036:68:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 779, + "id": 799, "nodeType": "ExpressionStatement", - "src": "1036:68:8" + "src": "1036:68:9" }, { "expression": { @@ -10664,12 +10811,12 @@ "arguments": [ { "argumentTypes": null, - "id": 783, + "id": 803, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 758, - "src": "1132:7:8", + "referencedDeclaration": 778, + "src": "1132:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10677,12 +10824,12 @@ }, { "argumentTypes": null, - "id": 784, + "id": 804, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 760, - "src": "1141:5:8", + "referencedDeclaration": 780, + "src": "1141:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10702,32 +10849,32 @@ ], "expression": { "argumentTypes": null, - "id": 781, + "id": 801, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 756, - "src": "1118:5:8", + "referencedDeclaration": 776, + "src": "1118:5:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", + "typeIdentifier": "t_contract$_IERC20_$728", "typeString": "contract IERC20" } }, - "id": 782, + "id": 802, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "approve", "nodeType": "MemberAccess", - "referencedDeclaration": 680, - "src": "1118:13:8", + "referencedDeclaration": 700, + "src": "1118:13:9", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 785, + "id": 805, "isConstant": false, "isLValue": false, "isPure": false, @@ -10735,7 +10882,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1118:29:8", + "src": "1118:29:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10749,21 +10896,21 @@ "typeString": "bool" } ], - "id": 780, + "id": 800, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 870, - 871 + 890, + 891 ], - "referencedDeclaration": 870, - "src": "1110:7:8", + "referencedDeclaration": 890, + "src": "1110:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 786, + "id": 806, "isConstant": false, "isLValue": false, "isPure": false, @@ -10771,20 +10918,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1110:38:8", + "src": "1110:38:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 787, + "id": 807, "nodeType": "ExpressionStatement", - "src": "1110:38:8" + "src": "1110:38:9" } ] }, "documentation": null, - "id": 789, + "id": 809, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -10792,31 +10939,31 @@ "name": "safeApprove", "nodeType": "FunctionDefinition", "parameters": { - "id": 761, + "id": 781, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 756, + "id": 776, "name": "token", "nodeType": "VariableDeclaration", - "scope": 789, - "src": "751:12:8", + "scope": 809, + "src": "751:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", + "typeIdentifier": "t_contract$_IERC20_$728", "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 755, + "id": 775, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 708, - "src": "751:6:8", + "referencedDeclaration": 728, + "src": "751:6:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", + "typeIdentifier": "t_contract$_IERC20_$728", "typeString": "contract IERC20" } }, @@ -10825,11 +10972,11 @@ }, { "constant": false, - "id": 758, + "id": 778, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 789, - "src": "769:15:8", + "scope": 809, + "src": "769:15:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10837,10 +10984,10 @@ "typeString": "address" }, "typeName": { - "id": 757, + "id": 777, "name": "address", "nodeType": "ElementaryTypeName", - "src": "769:7:8", + "src": "769:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10851,11 +10998,11 @@ }, { "constant": false, - "id": 760, + "id": 780, "name": "value", "nodeType": "VariableDeclaration", - "scope": 789, - "src": "790:13:8", + "scope": 809, + "src": "790:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10863,10 +11010,10 @@ "typeString": "uint256" }, "typeName": { - "id": 759, + "id": 779, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "790:7:8", + "src": "790:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10876,39 +11023,39 @@ "visibility": "internal" } ], - "src": "745:62:8" + "src": "745:62:9" }, "payable": false, "returnParameters": { - "id": 762, + "id": 782, "nodeType": "ParameterList", "parameters": [], - "src": "823:0:8" + "src": "823:0:9" }, - "scope": 852, - "src": "725:428:8", + "scope": 872, + "src": "725:428:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 819, + "id": 839, "nodeType": "Block", - "src": "1265:135:8", + "src": "1265:135:9", "statements": [ { "assignments": [ - 799 + 819 ], "declarations": [ { "constant": false, - "id": 799, + "id": 819, "name": "newAllowance", "nodeType": "VariableDeclaration", - "scope": 820, - "src": "1271:20:8", + "scope": 840, + "src": "1271:20:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10916,10 +11063,10 @@ "typeString": "uint256" }, "typeName": { - "id": 798, + "id": 818, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1271:7:8", + "src": "1271:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10929,18 +11076,18 @@ "visibility": "internal" } ], - "id": 810, + "id": 830, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 808, + "id": 828, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 795, - "src": "1338:5:8", + "referencedDeclaration": 815, + "src": "1338:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10962,14 +11109,14 @@ "arguments": [ { "argumentTypes": null, - "id": 803, + "id": 823, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "1318:4:8", + "referencedDeclaration": 910, + "src": "1318:4:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$852", + "typeIdentifier": "t_contract$_SafeERC20_$872", "typeString": "library SafeERC20" } } @@ -10977,24 +11124,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_SafeERC20_$852", + "typeIdentifier": "t_contract$_SafeERC20_$872", "typeString": "library SafeERC20" } ], - "id": 802, + "id": 822, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1310:7:8", + "src": "1310:7:9", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 804, + "id": 824, "isConstant": false, "isLValue": false, "isPure": false, @@ -11002,7 +11149,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1310:13:8", + "src": "1310:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11010,12 +11157,12 @@ }, { "argumentTypes": null, - "id": 805, + "id": 825, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 793, - "src": "1325:7:8", + "referencedDeclaration": 813, + "src": "1325:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11035,32 +11182,32 @@ ], "expression": { "argumentTypes": null, - "id": 800, + "id": 820, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 791, - "src": "1294:5:8", + "referencedDeclaration": 811, + "src": "1294:5:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", + "typeIdentifier": "t_contract$_IERC20_$728", "typeString": "contract IERC20" } }, - "id": 801, + "id": 821, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 662, - "src": "1294:15:8", + "referencedDeclaration": 682, + "src": "1294:15:9", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 806, + "id": 826, "isConstant": false, "isLValue": false, "isPure": false, @@ -11068,27 +11215,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1294:39:8", + "src": "1294:39:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 807, + "id": 827, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 618, - "src": "1294:43:8", + "referencedDeclaration": 638, + "src": "1294:43:9", "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": 809, + "id": 829, "isConstant": false, "isLValue": false, "isPure": false, @@ -11096,14 +11243,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1294:50:8", + "src": "1294:50:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1271:73:8" + "src": "1271:73:9" }, { "expression": { @@ -11114,12 +11261,12 @@ "arguments": [ { "argumentTypes": null, - "id": 814, + "id": 834, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 793, - "src": "1372:7:8", + "referencedDeclaration": 813, + "src": "1372:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11127,12 +11274,12 @@ }, { "argumentTypes": null, - "id": 815, + "id": 835, "name": "newAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "1381:12:8", + "referencedDeclaration": 819, + "src": "1381:12:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11152,32 +11299,32 @@ ], "expression": { "argumentTypes": null, - "id": 812, + "id": 832, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 791, - "src": "1358:5:8", + "referencedDeclaration": 811, + "src": "1358:5:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", + "typeIdentifier": "t_contract$_IERC20_$728", "typeString": "contract IERC20" } }, - "id": 813, + "id": 833, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "approve", "nodeType": "MemberAccess", - "referencedDeclaration": 680, - "src": "1358:13:8", + "referencedDeclaration": 700, + "src": "1358:13:9", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 816, + "id": 836, "isConstant": false, "isLValue": false, "isPure": false, @@ -11185,7 +11332,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1358:36:8", + "src": "1358:36:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11199,21 +11346,21 @@ "typeString": "bool" } ], - "id": 811, + "id": 831, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 870, - 871 + 890, + 891 ], - "referencedDeclaration": 870, - "src": "1350:7:8", + "referencedDeclaration": 890, + "src": "1350:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 817, + "id": 837, "isConstant": false, "isLValue": false, "isPure": false, @@ -11221,20 +11368,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1350:45:8", + "src": "1350:45:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 818, + "id": 838, "nodeType": "ExpressionStatement", - "src": "1350:45:8" + "src": "1350:45:9" } ] }, "documentation": null, - "id": 820, + "id": 840, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -11242,31 +11389,31 @@ "name": "safeIncreaseAllowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 796, + "id": 816, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 791, + "id": 811, "name": "token", "nodeType": "VariableDeclaration", - "scope": 820, - "src": "1193:12:8", + "scope": 840, + "src": "1193:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", + "typeIdentifier": "t_contract$_IERC20_$728", "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 790, + "id": 810, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 708, - "src": "1193:6:8", + "referencedDeclaration": 728, + "src": "1193:6:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", + "typeIdentifier": "t_contract$_IERC20_$728", "typeString": "contract IERC20" } }, @@ -11275,11 +11422,11 @@ }, { "constant": false, - "id": 793, + "id": 813, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 820, - "src": "1211:15:8", + "scope": 840, + "src": "1211:15:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11287,10 +11434,10 @@ "typeString": "address" }, "typeName": { - "id": 792, + "id": 812, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1211:7:8", + "src": "1211:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11301,11 +11448,11 @@ }, { "constant": false, - "id": 795, + "id": 815, "name": "value", "nodeType": "VariableDeclaration", - "scope": 820, - "src": "1232:13:8", + "scope": 840, + "src": "1232:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11313,10 +11460,10 @@ "typeString": "uint256" }, "typeName": { - "id": 794, + "id": 814, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1232:7:8", + "src": "1232:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11326,39 +11473,39 @@ "visibility": "internal" } ], - "src": "1187:62:8" + "src": "1187:62:9" }, "payable": false, "returnParameters": { - "id": 797, + "id": 817, "nodeType": "ParameterList", "parameters": [], - "src": "1265:0:8" + "src": "1265:0:9" }, - "scope": 852, - "src": "1157:243:8", + "scope": 872, + "src": "1157:243:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 850, + "id": 870, "nodeType": "Block", - "src": "1512:135:8", + "src": "1512:135:9", "statements": [ { "assignments": [ - 830 + 850 ], "declarations": [ { "constant": false, - "id": 830, + "id": 850, "name": "newAllowance", "nodeType": "VariableDeclaration", - "scope": 851, - "src": "1518:20:8", + "scope": 871, + "src": "1518:20:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11366,10 +11513,10 @@ "typeString": "uint256" }, "typeName": { - "id": 829, + "id": 849, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1518:7:8", + "src": "1518:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11379,18 +11526,18 @@ "visibility": "internal" } ], - "id": 841, + "id": 861, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 839, + "id": 859, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 826, - "src": "1585:5:8", + "referencedDeclaration": 846, + "src": "1585:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11412,14 +11559,14 @@ "arguments": [ { "argumentTypes": null, - "id": 834, + "id": 854, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "1565:4:8", + "referencedDeclaration": 910, + "src": "1565:4:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$852", + "typeIdentifier": "t_contract$_SafeERC20_$872", "typeString": "library SafeERC20" } } @@ -11427,24 +11574,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_SafeERC20_$852", + "typeIdentifier": "t_contract$_SafeERC20_$872", "typeString": "library SafeERC20" } ], - "id": 833, + "id": 853, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1557:7:8", + "src": "1557:7:9", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 835, + "id": 855, "isConstant": false, "isLValue": false, "isPure": false, @@ -11452,7 +11599,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1557:13:8", + "src": "1557:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11460,12 +11607,12 @@ }, { "argumentTypes": null, - "id": 836, + "id": 856, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 824, - "src": "1572:7:8", + "referencedDeclaration": 844, + "src": "1572:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11485,32 +11632,32 @@ ], "expression": { "argumentTypes": null, - "id": 831, + "id": 851, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 822, - "src": "1541:5:8", + "referencedDeclaration": 842, + "src": "1541:5:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", + "typeIdentifier": "t_contract$_IERC20_$728", "typeString": "contract IERC20" } }, - "id": 832, + "id": 852, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 662, - "src": "1541:15:8", + "referencedDeclaration": 682, + "src": "1541:15:9", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", "typeString": "function (address,address) view external returns (uint256)" } }, - "id": 837, + "id": 857, "isConstant": false, "isLValue": false, "isPure": false, @@ -11518,27 +11665,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1541:39:8", + "src": "1541:39:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 838, + "id": 858, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 594, - "src": "1541:43:8", + "referencedDeclaration": 614, + "src": "1541:43:9", "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": 840, + "id": 860, "isConstant": false, "isLValue": false, "isPure": false, @@ -11546,14 +11693,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1541:50:8", + "src": "1541:50:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1518:73:8" + "src": "1518:73:9" }, { "expression": { @@ -11564,12 +11711,12 @@ "arguments": [ { "argumentTypes": null, - "id": 845, + "id": 865, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 824, - "src": "1619:7:8", + "referencedDeclaration": 844, + "src": "1619:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11577,12 +11724,12 @@ }, { "argumentTypes": null, - "id": 846, + "id": 866, "name": "newAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 830, - "src": "1628:12:8", + "referencedDeclaration": 850, + "src": "1628:12:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11602,32 +11749,32 @@ ], "expression": { "argumentTypes": null, - "id": 843, + "id": 863, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 822, - "src": "1605:5:8", + "referencedDeclaration": 842, + "src": "1605:5:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", + "typeIdentifier": "t_contract$_IERC20_$728", "typeString": "contract IERC20" } }, - "id": 844, + "id": 864, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "approve", "nodeType": "MemberAccess", - "referencedDeclaration": 680, - "src": "1605:13:8", + "referencedDeclaration": 700, + "src": "1605:13:9", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 847, + "id": 867, "isConstant": false, "isLValue": false, "isPure": false, @@ -11635,7 +11782,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1605:36:8", + "src": "1605:36:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -11649,21 +11796,21 @@ "typeString": "bool" } ], - "id": 842, + "id": 862, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 870, - 871 + 890, + 891 ], - "referencedDeclaration": 870, - "src": "1597:7:8", + "referencedDeclaration": 890, + "src": "1597:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 848, + "id": 868, "isConstant": false, "isLValue": false, "isPure": false, @@ -11671,20 +11818,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1597:45:8", + "src": "1597:45:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 849, + "id": 869, "nodeType": "ExpressionStatement", - "src": "1597:45:8" + "src": "1597:45:9" } ] }, "documentation": null, - "id": 851, + "id": 871, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -11692,31 +11839,31 @@ "name": "safeDecreaseAllowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 827, + "id": 847, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 822, + "id": 842, "name": "token", "nodeType": "VariableDeclaration", - "scope": 851, - "src": "1440:12:8", + "scope": 871, + "src": "1440:12:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", + "typeIdentifier": "t_contract$_IERC20_$728", "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 821, + "id": 841, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 708, - "src": "1440:6:8", + "referencedDeclaration": 728, + "src": "1440:6:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$708", + "typeIdentifier": "t_contract$_IERC20_$728", "typeString": "contract IERC20" } }, @@ -11725,11 +11872,11 @@ }, { "constant": false, - "id": 824, + "id": 844, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 851, - "src": "1458:15:8", + "scope": 871, + "src": "1458:15:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11737,10 +11884,10 @@ "typeString": "address" }, "typeName": { - "id": 823, + "id": 843, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1458:7:8", + "src": "1458:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11751,11 +11898,11 @@ }, { "constant": false, - "id": 826, + "id": 846, "name": "value", "nodeType": "VariableDeclaration", - "scope": 851, - "src": "1479:13:8", + "scope": 871, + "src": "1479:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11763,10 +11910,10 @@ "typeString": "uint256" }, "typeName": { - "id": 825, + "id": 845, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1479:7:8", + "src": "1479:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11776,29 +11923,29 @@ "visibility": "internal" } ], - "src": "1434:62:8" + "src": "1434:62:9" }, "payable": false, "returnParameters": { - "id": 828, + "id": 848, "nodeType": "ParameterList", "parameters": [], - "src": "1512:0:8" + "src": "1512:0:9" }, - "scope": 852, - "src": "1404:243:8", + "scope": 872, + "src": "1404:243:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 853, - "src": "353:1296:8" + "scope": 873, + "src": "353:1296:9" } ], - "src": "0:1650:8" + "src": "0:1650:9" }, - "id": 8 + "id": 9 } } } \ No newline at end of file diff --git a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoPool.abi b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoPool.abi index cd7eb1f10..397eab310 100644 --- a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoPool.abi +++ b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoPool.abi @@ -1 +1 @@ -[{"constant":false,"inputs":[],"name":"terminate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"minerAddress","type":"address"}],"name":"trasferToMiner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_FACTOR","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addCoreTeam","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CAT_4_VALUE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CAT_1_VALUE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CAT_3_VALUE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isCoreTeam","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CAT_0_VALUE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CAT_5_VALUE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CAT_2_VALUE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceCoreTeam","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"poolType","type":"uint16"},{"name":"tokenAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"}] \ No newline at end of file +[{"constant":false,"inputs":[],"name":"terminate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"minerAddress","type":"address"}],"name":"trasferToMiner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"}],"name":"addCoreTeam","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isCoreTeam","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceCoreTeam","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"poolType","type":"uint8"},{"name":"tokenAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"}] \ No newline at end of file diff --git a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoPool.bin b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoPool.bin index 987528f83..d4cc95eca 100644 --- a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoPool.bin +++ b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoPool.bin @@ -1 +1 @@ -608060405234801561001057600080fd5b5060405160408061091a8339810160405280516020909101516000805433600160a060020a0319918216811760a060020a60ff02191690925560018054909116600160a060020a03841617905561006f9064010000000061008b810204565b506003805461ffff191661ffff92909216919091179055610134565b6100a36002826401000000006107116100a682021704565b50565b600160a060020a03811615156100bb57600080fd5b6100ce82826401000000006100fd810204565b156100d857600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a038216151561011457600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b6107d7806101436000396000f3006080604052600436106100a05763ffffffff60e060020a6000350416630c08bf8881146100a55780632296f4c7146100bc57806325109e8b146100dd5780632e6b684914610104578063455acbcd14610125578063492fba841461013a57806349dc9ed01461014f578063608d3d3d146101645780639fc3c98314610199578063a89febb2146101ae578063aed6183f146101c3578063d43acc79146101d8575b600080fd5b3480156100b157600080fd5b506100ba6101ed565b005b3480156100c857600080fd5b506100ba600160a060020a036004351661020b565b3480156100e957600080fd5b506100f2610475565b60408051918252519081900360200190f35b34801561011057600080fd5b506100ba600160a060020a0360043516610481565b34801561013157600080fd5b506100f26104a1565b34801561014657600080fd5b506100f26104b0565b34801561015b57600080fd5b506100f26104be565b34801561017057600080fd5b50610185600160a060020a03600435166104cd565b604080519115158252519081900360200190f35b3480156101a557600080fd5b506100f26104e6565b3480156101ba57600080fd5b506100f26104f4565b3480156101cf57600080fd5b506100f2610503565b3480156101e457600080fd5b506100ba610512565b6101f6336104cd565b151561020157600080fd5b61020961051b565b565b600080548190819074010000000000000000000000000000000000000000900460ff161561023857600080fd5b610241336104cd565b151561024c57600080fd5b600160a060020a03841660009081526004602052604090205460ff161561027257600080fd5b83925082600160a060020a0316631777fb4b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156102b357600080fd5b505af11580156102c7573d6000803e3d6000fd5b505050506040513d60208110156102dd57600080fd5b505115156102ea57600080fd5b82600160a060020a03166380258e476040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561032857600080fd5b505af115801561033c573d6000803e3d6000fd5b505050506040513d602081101561035257600080fd5b50519150600060ff83161080159061036e575060058260ff1611155b151561037957600080fd5b50600060ff82161515610397575069152d02c7e14af6800000610428565b8160ff16600114156103b4575069d3c21bcecceda1000000610428565b8160ff16600214156103d257506a01a784379d99db42000000610428565b8160ff16600314156103f057506a027b46536c66c8e3000000610428565b8160ff166004141561040e57506a034f086f3b33b684000000610428565b8160ff166005141561042857506a0422ca8b0a00a4250000005b6000811161043557600080fd5b600160a060020a038085166000908152600460205260409020805460ff191660019081179091555461046f9116858363ffffffff6105e216565b50505050565b670de0b6b3a764000081565b61048a336104cd565b151561049557600080fd5b61049e81610681565b50565b6a034f086f3b33b68400000081565b69d3c21bcecceda100000081565b6a027b46536c66c8e300000081565b60006104e060028363ffffffff61069216565b92915050565b69152d02c7e14af680000081565b6a0422ca8b0a00a42500000081565b6a01a784379d99db4200000081565b610209336106c9565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b15801561058057600080fd5b505af1158015610594573d6000803e3d6000fd5b505050506040513d60208110156105aa57600080fd5b5051905060008111156105da576000546001546105da91600160a060020a0391821691168363ffffffff6105e216565b61049e6106da565b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561064557600080fd5b505af1158015610659573d6000803e3d6000fd5b505050506040513d602081101561066f57600080fd5b5051151561067c57600080fd5b505050565b61049e60028263ffffffff61071116565b6000600160a060020a03821615156106a957600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61049e60028263ffffffff61075f16565b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600160a060020a038116151561072657600080fd5b6107308282610692565b1561073a57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038116151561077457600080fd5b61077e8282610692565b151561078957600080fd5b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a7230582003c6fe797e016b5da34d582d5503b392dfdb98114c82abcb7165886533dc93b80029 \ No newline at end of file +608060405234801561001057600080fd5b506040516040806107f28339810160405280516020909101516000805433600160a060020a0319918216811760a060020a60ff02191690925560018054909116600160a060020a03841617905561006f90640100000000610093810204565b6003805483919060ff19166001838181111561008757fe5b0217905550505061013c565b6100ab6002826401000000006105e16100ae82021704565b50565b600160a060020a03811615156100c357600080fd5b6100d68282640100000000610105810204565b156100e057600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a038216151561011c57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b6106a78061014b6000396000f3006080604052600436106100535763ffffffff60e060020a6000350416630c08bf8881146100585780632296f4c71461006f5780632e6b684914610090578063608d3d3d146100b1578063d43acc79146100e6575b600080fd5b34801561006457600080fd5b5061006d6100fb565b005b34801561007b57600080fd5b5061006d600160a060020a0360043516610119565b34801561009c57600080fd5b5061006d600160a060020a03600435166102f5565b3480156100bd57600080fd5b506100d2600160a060020a0360043516610315565b604080519115158252519081900360200190f35b3480156100f257600080fd5b5061006d610330565b61010433610315565b151561010f57600080fd5b610117610339565b565b600080548190819074010000000000000000000000000000000000000000900460ff161561014657600080fd5b61014f33610315565b151561015a57600080fd5b600160a060020a03841660009081526004602052604090205460ff161561018057600080fd5b83925082600160a060020a0316631777fb4b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156101c157600080fd5b505af11580156101d5573d6000803e3d6000fd5b505050506040513d60208110156101eb57600080fd5b505115156101f857600080fd5b82600160a060020a03166380258e476040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561023657600080fd5b505af115801561024a573d6000803e3d6000fd5b505050506040513d602081101561026057600080fd5b50519150600060ff83161080159061027c575060058260ff1611155b151561028757600080fd5b61029082610400565b9050600160035460ff1660018111156102a557fe5b14156102b5576064600a82020490505b600160a060020a038085166000908152600460205260409020805460ff19166001908117909155546102ef9116858363ffffffff6104b216565b50505050565b6102fe33610315565b151561030957600080fd5b61031281610551565b50565b600061032860028363ffffffff61056216565b90505b919050565b61011733610599565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b15801561039e57600080fd5b505af11580156103b2573d6000803e3d6000fd5b505050506040513d60208110156103c857600080fd5b5051905060008111156103f8576000546001546103f891600160a060020a0391821691168363ffffffff6104b216565b6103126105aa565b600060ff8216151561041d575069152d02c7e14af680000061032b565b8160ff166001141561043a575069d3c21bcecceda100000061032b565b8160ff166002141561045857506a01a784379d99db4200000061032b565b8160ff166003141561047657506a027b46536c66c8e300000061032b565b8160ff166004141561049457506a034f086f3b33b68400000061032b565b8160ff166005141561032b57506a0422ca8b0a00a42500000061032b565b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561051557600080fd5b505af1158015610529573d6000803e3d6000fd5b505050506040513d602081101561053f57600080fd5b5051151561054c57600080fd5b505050565b61031260028263ffffffff6105e116565b6000600160a060020a038216151561057957600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61031260028263ffffffff61062f16565b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600160a060020a03811615156105f657600080fd5b6106008282610562565b1561060a57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038116151561064457600080fd5b61064e8282610562565b151561065957600080fd5b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a723058208317cc38f72fdbf4d19029db12a6c784275ab5dfd7521863b2c79aee26e6effb0029 \ No newline at end of file diff --git a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoPool.json b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoPool.json index 3a44ddf38..96063ba80 100644 --- a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoPool.json +++ b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/bin/AlgoPool.json @@ -23,20 +23,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "constant": true, - "inputs": [], - "name": "TOKEN_FACTOR", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "constant": false, "inputs": [ @@ -51,48 +37,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "constant": true, - "inputs": [], - "name": "CAT_4_VALUE", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "CAT_1_VALUE", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "CAT_3_VALUE", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "constant": true, "inputs": [ @@ -112,48 +56,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": true, - "inputs": [], - "name": "CAT_0_VALUE", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "CAT_5_VALUE", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "CAT_2_VALUE", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "constant": false, "inputs": [], @@ -167,7 +69,7 @@ "inputs": [ { "name": "poolType", - "type": "uint16" + "type": "uint8" }, { "name": "tokenAddress", @@ -179,15 +81,8 @@ "type": "constructor" } ], - "bytecode": "608060405234801561001057600080fd5b5060405160408061091a8339810160405280516020909101516000805433600160a060020a0319918216811760a060020a60ff02191690925560018054909116600160a060020a03841617905561006f9064010000000061008b810204565b506003805461ffff191661ffff92909216919091179055610134565b6100a36002826401000000006107116100a682021704565b50565b600160a060020a03811615156100bb57600080fd5b6100ce82826401000000006100fd810204565b156100d857600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a038216151561011457600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b6107d7806101436000396000f3006080604052600436106100a05763ffffffff60e060020a6000350416630c08bf8881146100a55780632296f4c7146100bc57806325109e8b146100dd5780632e6b684914610104578063455acbcd14610125578063492fba841461013a57806349dc9ed01461014f578063608d3d3d146101645780639fc3c98314610199578063a89febb2146101ae578063aed6183f146101c3578063d43acc79146101d8575b600080fd5b3480156100b157600080fd5b506100ba6101ed565b005b3480156100c857600080fd5b506100ba600160a060020a036004351661020b565b3480156100e957600080fd5b506100f2610475565b60408051918252519081900360200190f35b34801561011057600080fd5b506100ba600160a060020a0360043516610481565b34801561013157600080fd5b506100f26104a1565b34801561014657600080fd5b506100f26104b0565b34801561015b57600080fd5b506100f26104be565b34801561017057600080fd5b50610185600160a060020a03600435166104cd565b604080519115158252519081900360200190f35b3480156101a557600080fd5b506100f26104e6565b3480156101ba57600080fd5b506100f26104f4565b3480156101cf57600080fd5b506100f2610503565b3480156101e457600080fd5b506100ba610512565b6101f6336104cd565b151561020157600080fd5b61020961051b565b565b600080548190819074010000000000000000000000000000000000000000900460ff161561023857600080fd5b610241336104cd565b151561024c57600080fd5b600160a060020a03841660009081526004602052604090205460ff161561027257600080fd5b83925082600160a060020a0316631777fb4b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156102b357600080fd5b505af11580156102c7573d6000803e3d6000fd5b505050506040513d60208110156102dd57600080fd5b505115156102ea57600080fd5b82600160a060020a03166380258e476040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561032857600080fd5b505af115801561033c573d6000803e3d6000fd5b505050506040513d602081101561035257600080fd5b50519150600060ff83161080159061036e575060058260ff1611155b151561037957600080fd5b50600060ff82161515610397575069152d02c7e14af6800000610428565b8160ff16600114156103b4575069d3c21bcecceda1000000610428565b8160ff16600214156103d257506a01a784379d99db42000000610428565b8160ff16600314156103f057506a027b46536c66c8e3000000610428565b8160ff166004141561040e57506a034f086f3b33b684000000610428565b8160ff166005141561042857506a0422ca8b0a00a4250000005b6000811161043557600080fd5b600160a060020a038085166000908152600460205260409020805460ff191660019081179091555461046f9116858363ffffffff6105e216565b50505050565b670de0b6b3a764000081565b61048a336104cd565b151561049557600080fd5b61049e81610681565b50565b6a034f086f3b33b68400000081565b69d3c21bcecceda100000081565b6a027b46536c66c8e300000081565b60006104e060028363ffffffff61069216565b92915050565b69152d02c7e14af680000081565b6a0422ca8b0a00a42500000081565b6a01a784379d99db4200000081565b610209336106c9565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b15801561058057600080fd5b505af1158015610594573d6000803e3d6000fd5b505050506040513d60208110156105aa57600080fd5b5051905060008111156105da576000546001546105da91600160a060020a0391821691168363ffffffff6105e216565b61049e6106da565b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561064557600080fd5b505af1158015610659573d6000803e3d6000fd5b505050506040513d602081101561066f57600080fd5b5051151561067c57600080fd5b505050565b61049e60028263ffffffff61071116565b6000600160a060020a03821615156106a957600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61049e60028263ffffffff61075f16565b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600160a060020a038116151561072657600080fd5b6107308282610692565b1561073a57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038116151561077457600080fd5b61077e8282610692565b151561078957600080fd5b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a7230582003c6fe797e016b5da34d582d5503b392dfdb98114c82abcb7165886533dc93b80029", + "bytecode": "608060405234801561001057600080fd5b506040516040806107f28339810160405280516020909101516000805433600160a060020a0319918216811760a060020a60ff02191690925560018054909116600160a060020a03841617905561006f90640100000000610093810204565b6003805483919060ff19166001838181111561008757fe5b0217905550505061013c565b6100ab6002826401000000006105e16100ae82021704565b50565b600160a060020a03811615156100c357600080fd5b6100d68282640100000000610105810204565b156100e057600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a038216151561011c57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b6106a78061014b6000396000f3006080604052600436106100535763ffffffff60e060020a6000350416630c08bf8881146100585780632296f4c71461006f5780632e6b684914610090578063608d3d3d146100b1578063d43acc79146100e6575b600080fd5b34801561006457600080fd5b5061006d6100fb565b005b34801561007b57600080fd5b5061006d600160a060020a0360043516610119565b34801561009c57600080fd5b5061006d600160a060020a03600435166102f5565b3480156100bd57600080fd5b506100d2600160a060020a0360043516610315565b604080519115158252519081900360200190f35b3480156100f257600080fd5b5061006d610330565b61010433610315565b151561010f57600080fd5b610117610339565b565b600080548190819074010000000000000000000000000000000000000000900460ff161561014657600080fd5b61014f33610315565b151561015a57600080fd5b600160a060020a03841660009081526004602052604090205460ff161561018057600080fd5b83925082600160a060020a0316631777fb4b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156101c157600080fd5b505af11580156101d5573d6000803e3d6000fd5b505050506040513d60208110156101eb57600080fd5b505115156101f857600080fd5b82600160a060020a03166380258e476040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561023657600080fd5b505af115801561024a573d6000803e3d6000fd5b505050506040513d602081101561026057600080fd5b50519150600060ff83161080159061027c575060058260ff1611155b151561028757600080fd5b61029082610400565b9050600160035460ff1660018111156102a557fe5b14156102b5576064600a82020490505b600160a060020a038085166000908152600460205260409020805460ff19166001908117909155546102ef9116858363ffffffff6104b216565b50505050565b6102fe33610315565b151561030957600080fd5b61031281610551565b50565b600061032860028363ffffffff61056216565b90505b919050565b61011733610599565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b15801561039e57600080fd5b505af11580156103b2573d6000803e3d6000fd5b505050506040513d60208110156103c857600080fd5b5051905060008111156103f8576000546001546103f891600160a060020a0391821691168363ffffffff6104b216565b6103126105aa565b600060ff8216151561041d575069152d02c7e14af680000061032b565b8160ff166001141561043a575069d3c21bcecceda100000061032b565b8160ff166002141561045857506a01a784379d99db4200000061032b565b8160ff166003141561047657506a027b46536c66c8e300000061032b565b8160ff166004141561049457506a034f086f3b33b68400000061032b565b8160ff166005141561032b57506a0422ca8b0a00a42500000061032b565b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561051557600080fd5b505af1158015610529573d6000803e3d6000fd5b505050506040513d602081101561053f57600080fd5b5051151561054c57600080fd5b505050565b61031260028263ffffffff6105e116565b6000600160a060020a038216151561057957600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61031260028263ffffffff61062f16565b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600160a060020a03811615156105f657600080fd5b6106008282610562565b1561060a57600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038116151561064457600080fd5b61064e8282610562565b151561065957600080fd5b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a723058208317cc38f72fdbf4d19029db12a6c784275ab5dfd7521863b2c79aee26e6effb0029", "functionHashes": { - "CAT_0_VALUE()": "9fc3c983", - "CAT_1_VALUE()": "492fba84", - "CAT_2_VALUE()": "aed6183f", - "CAT_3_VALUE()": "49dc9ed0", - "CAT_4_VALUE()": "455acbcd", - "CAT_5_VALUE()": "a89febb2", - "TOKEN_FACTOR()": "25109e8b", "addCoreTeam(address)": "2e6b6849", "isCoreTeam(address)": "608d3d3d", "renounceCoreTeam()": "d43acc79", @@ -196,18 +91,11 @@ }, "gasEstimates": { "creation": { - "codeDepositCost": "401400", + "codeDepositCost": "340600", "executionCost": "infinite", "totalCost": "infinite" }, "external": { - "CAT_0_VALUE()": "423", - "CAT_1_VALUE()": "357", - "CAT_2_VALUE()": "467", - "CAT_3_VALUE()": "379", - "CAT_4_VALUE()": "335", - "CAT_5_VALUE()": "445", - "TOKEN_FACTOR()": "291", "addCoreTeam(address)": "infinite", "isCoreTeam(address)": "infinite", "renounceCoreTeam()": "infinite", diff --git a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/package-lock.json b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/package-lock.json index 6ca2c08a4..e2076f62f 100644 --- a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/package-lock.json +++ b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/package-lock.json @@ -370,9 +370,9 @@ } }, "spdx-correct": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.2.tgz", - "integrity": "sha512-q9hedtzyXHr5S0A1vEPoK/7l8NpfkFYTq6iCY+Pno2ZbdZR6WexZFtqeVGkGxW3TEJMN914Z55EnAGMmenlIQQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -399,7 +399,7 @@ }, "string-width": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "resolved": "http://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "^1.0.0", diff --git a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/package.json b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/package.json index 7cc030dcd..c6ec5d4db 100644 --- a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/package.json +++ b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/package.json @@ -9,7 +9,7 @@ "author": "", "license": "ISC", "dependencies": { - "openzeppelin-solidity": "^2.0.0", - "solc": "^0.4.24" + "openzeppelin-solidity": "2.0.0", + "solc": "0.4.24" } } diff --git a/labs/algo-token-distribution/test/AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests/AlgoFeesTests.cs b/labs/algo-token-distribution/test/AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests/AlgoFeesTests.cs index 0aeb0fb1b..dc87e1df0 100644 --- a/labs/algo-token-distribution/test/AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests/AlgoFeesTests.cs +++ b/labs/algo-token-distribution/test/AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests/AlgoFeesTests.cs @@ -37,16 +37,18 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests // Create some miners... var minerAccounts = new IAccount[3]; + var referralAccounts = new IAccount[3]; AlgoMiner[] miners = new AlgoMiner[3]; for (int i = 0; i < 3; i++) { - // Create an account for the miner... + // Create an account for the miner and the referral... minerAccounts[i] = EthAccountFactory.Create(); + referralAccounts[i] = EthAccountFactory.Create(); // Create the miner... miners[i] = new AlgoMiner(EthNetwork.Instance.GetWeb3(coreTeamAccount), EthNetwork.Instance.GasPriceProvider); - await miners[i].DeployAsync(1, 2, minerAccounts[i].Address, token.ContractAddress); + await miners[i].DeployAsync(0, 2, minerAccounts[i].Address, referralAccounts[i].Address, token.ContractAddress); } // Register a miner... @@ -115,6 +117,16 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests var token = new AlgoTokenV1(EthNetwork.Instance.GetWeb3(tokenOwnerAccount), EthNetwork.Instance.GasPriceProvider); await token.DeployAsync(); + // Create the pools to transfer the proper number of tokens to the miners... + var pool1 = new AlgoPool(EthNetwork.Instance.GetWeb3(coreTeamAccount), EthNetwork.Instance.GasPriceProvider); + await pool1.DeployAsync(0, token.ContractAddress); + var pool2 = new AlgoPool(EthNetwork.Instance.GetWeb3(coreTeamAccount), EthNetwork.Instance.GasPriceProvider); + await pool2.DeployAsync(1, token.ContractAddress); + + // Transfer some tokens to the pools... + await token.TransferAsync(pool1.ContractAddress, 100.MAlgo()); + await token.TransferAsync(pool2.ContractAddress, 100.MAlgo()); + // Create a fees... var fees1 = new AlgoFees(EthNetwork.Instance.GetWeb3(coreTeamAccount), EthNetwork.Instance.GasPriceProvider); await fees1.DeployAsync(token.ContractAddress); @@ -127,20 +139,23 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests // Create one miner per category... var minerAccounts = new IAccount[6]; + var referralAccounts = new IAccount[6]; var miners = new AlgoMiner[6]; for (byte i = 0; i <= 5; i++) { - // Create an account for the miner... + // Create an account for the miner and the referral... minerAccounts[i] = EthAccountFactory.Create(); + referralAccounts[i] = EthAccountFactory.Create(); await EthNetwork.Instance.RefillAsync(minerAccounts[i]); // Create the miner... miners[i] = new AlgoMiner(EthNetwork.Instance.GetWeb3(coreTeamAccount), EthNetwork.Instance.GasPriceProvider); - await miners[i].DeployAsync(1, i, minerAccounts[i].Address, token.ContractAddress); + await miners[i].DeployAsync(0, i, minerAccounts[i].Address, referralAccounts[i].Address, token.ContractAddress); // Transfer some tokens to the miner so it can be activated... - await token.TransferAsync(miners[i].ContractAddress, 100.Algo()); + await pool1.TrasferToMinerAsync(miners[i].ContractAddress); + await pool2.TrasferToMinerAsync(miners[i].ContractAddress); // Activate the miner... await miners[i].ActivateMinerAsync(); diff --git a/labs/algo-token-distribution/test/AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests/AlgoMinerTests.cs b/labs/algo-token-distribution/test/AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests/AlgoMinerTests.cs index 11715109f..08b622946 100644 --- a/labs/algo-token-distribution/test/AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests/AlgoMinerTests.cs +++ b/labs/algo-token-distribution/test/AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests/AlgoMinerTests.cs @@ -13,10 +13,8 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests { public class AlgoMinerTests { - private const long INITIAL_SUPPLY = 1000000000; - [Fact] - public async Task BasicMinerWorkfloWTest() + public async Task PoolBasedMinerBasicWorkfloWTest() { EthNetwork.UseGanacheTestNet(); @@ -27,6 +25,7 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests var coreTeamAccount = EthAccountFactory.Create(); var supervisorAccount = EthAccountFactory.Create(); var minerAccount = EthAccountFactory.Create(); + var referralAccount = EthAccountFactory.Create(); await EthNetwork.Instance.RefillAsync(tokenOwnerAccount); await EthNetwork.Instance.RefillAsync(systemAccount); @@ -38,17 +37,19 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests var token = new AlgoTokenV1(EthNetwork.Instance.GetWeb3(tokenOwnerAccount), EthNetwork.Instance.GasPriceProvider); await token.DeployAsync(); - // Create a pool... + // Create the pools to transfer the proper number of tokens to the miners... var pool1 = new AlgoPool(EthNetwork.Instance.GetWeb3(coreTeamAccount), EthNetwork.Instance.GasPriceProvider); + await pool1.DeployAsync(0, token.ContractAddress); + var pool2 = new AlgoPool(EthNetwork.Instance.GetWeb3(coreTeamAccount), EthNetwork.Instance.GasPriceProvider); + await pool2.DeployAsync(1, token.ContractAddress); - await pool1.DeployAsync(10, token.ContractAddress); - - // Transfer some tokens to the pool... + // Transfer some tokens to the pools... await token.TransferAsync(pool1.ContractAddress, 100.MAlgo()); + await token.TransferAsync(pool2.ContractAddress, 100.MAlgo()); // Create a miner category 2... var miner1 = new AlgoMiner(EthNetwork.Instance.GetWeb3(coreTeamAccount), EthNetwork.Instance.GasPriceProvider); - await miner1.DeployAsync(5, 2, minerAccount.Address, token.ContractAddress); + await miner1.DeployAsync(0, 2, minerAccount.Address, referralAccount.Address, token.ContractAddress); // Add roles to the miner... await miner1.AddSystemAsync(systemAccount.Address); @@ -56,9 +57,10 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests // Transfer tokens to the miner... await pool1.TrasferToMinerAsync(miner1.ContractAddress); + await pool2.TrasferToMinerAsync(miner1.ContractAddress); // Ensure the miner received the tokens according to its category 2. - Assert.Equal(2.MAlgo(), await token.BalanceOfAsync(miner1.ContractAddress)); + Assert.Equal(2.MAlgo() + 2.MAlgo() * 10 / 100, await token.BalanceOfAsync(miner1.ContractAddress)); // Activate the miner... await miner1.ActivateMinerAsync(); @@ -72,13 +74,16 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests var paymentPerDay = 2.MAlgo() / 2 / 365; BigInteger expectedMinerBalance = 0; + BigInteger expectedReferralBalance = 0; for (int i = 0; i < 5; i++) { await miner1.MineAsync(); expectedMinerBalance += paymentPerDay; + expectedReferralBalance += paymentPerDay * 10 / 100; Assert.Equal(expectedMinerBalance, await token.BalanceOfAsync(minerAccount.Address)); + Assert.Equal(expectedReferralBalance, await token.BalanceOfAsync(referralAccount.Address)); } // Pause the miner... @@ -101,8 +106,10 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests miner1.Bind(EthNetwork.Instance.GetWeb3(coreTeamAccount)); await miner1.MineAsync(); expectedMinerBalance += paymentPerDay; + expectedReferralBalance += paymentPerDay * 10 / 100; Assert.Equal(expectedMinerBalance, await token.BalanceOfAsync(minerAccount.Address)); + Assert.Equal(expectedReferralBalance, await token.BalanceOfAsync(referralAccount.Address)); } } } diff --git a/labs/algo-token-distribution/test/AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests/AlgoPoolTests.cs b/labs/algo-token-distribution/test/AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests/AlgoPoolTests.cs index ebef49f56..b80e7c0dd 100644 --- a/labs/algo-token-distribution/test/AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests/AlgoPoolTests.cs +++ b/labs/algo-token-distribution/test/AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests/AlgoPoolTests.cs @@ -15,7 +15,7 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests public class AlgoPoolTests { [Fact] - public async Task TransferToMinerTest() + public async Task MinerPoolTransferToMinerTest() { EthNetwork.UseGanacheTestNet(); @@ -24,6 +24,7 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests var tokenOwnerAccount = EthAccountFactory.Create(); var coreTeamAccount = EthAccountFactory.Create(); var minerAccounts = new IAccount[6]; + var referralAccounts = new IAccount[6]; await EthNetwork.Instance.RefillAsync(tokenOwnerAccount); await EthNetwork.Instance.RefillAsync(coreTeamAccount); @@ -34,7 +35,7 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests // Create a pool... var pool1 = new AlgoPool(EthNetwork.Instance.GetWeb3(coreTeamAccount), EthNetwork.Instance.GasPriceProvider); - await pool1.DeployAsync(10, token.ContractAddress); + await pool1.DeployAsync(0, token.ContractAddress); // Transfer some tokens to the pool... await token.TransferAsync(pool1.ContractAddress, 100.MAlgo()); @@ -42,14 +43,15 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests // Create miners for each category... AlgoMiner[] miners = new AlgoMiner[6]; - for (int i = 0; i <= 5; i++) + for (byte i = 0; i <= 5; i++) { - // Create an account for the miner... + // Create an account for the miner and the referral... minerAccounts[i] = EthAccountFactory.Create(); + referralAccounts[i] = EthAccountFactory.Create(); // Create the miner... miners[i] = new AlgoMiner(EthNetwork.Instance.GetWeb3(coreTeamAccount), EthNetwork.Instance.GasPriceProvider); - await miners[i].DeployAsync((ushort)i, (byte)i, minerAccounts[i].Address, token.ContractAddress); + await miners[i].DeployAsync(0, i, minerAccounts[i].Address, referralAccounts[i].Address, token.ContractAddress); } // Transfer tokens from the pool to the miners... @@ -66,5 +68,60 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests Assert.Equal(4.MAlgo(), await token.BalanceOfAsync(miners[4].ContractAddress)); Assert.Equal(5.MAlgo(), await token.BalanceOfAsync(miners[5].ContractAddress)); } + + [Fact] + public async Task ReferralPoolTransferToMinerTest() + { + EthNetwork.UseGanacheTestNet(); + + var prefundedAccount = new Account(EthNetwork.Instance.PrefundedPrivateKey); + + var tokenOwnerAccount = EthAccountFactory.Create(); + var coreTeamAccount = EthAccountFactory.Create(); + var minerAccounts = new IAccount[6]; + var referralAccounts = new IAccount[6]; + + await EthNetwork.Instance.RefillAsync(tokenOwnerAccount); + await EthNetwork.Instance.RefillAsync(coreTeamAccount); + + // Create the ERC20 token... + var token = new AlgoTokenV1(EthNetwork.Instance.GetWeb3(tokenOwnerAccount), EthNetwork.Instance.GasPriceProvider); + await token.DeployAsync(); + + // Create a pool... + var pool1 = new AlgoPool(EthNetwork.Instance.GetWeb3(coreTeamAccount), EthNetwork.Instance.GasPriceProvider); + await pool1.DeployAsync(1, token.ContractAddress); + + // Transfer some tokens to the pool... + await token.TransferAsync(pool1.ContractAddress, 100.MAlgo()); + + // Create miners for each category... + AlgoMiner[] miners = new AlgoMiner[6]; + + for (byte i = 0; i <= 5; i++) + { + // Create an account for the miner and the referral... + minerAccounts[i] = EthAccountFactory.Create(); + referralAccounts[i] = EthAccountFactory.Create(); + + // Create the miner... + miners[i] = new AlgoMiner(EthNetwork.Instance.GetWeb3(coreTeamAccount), EthNetwork.Instance.GasPriceProvider); + await miners[i].DeployAsync(0, i, minerAccounts[i].Address, referralAccounts[i].Address, token.ContractAddress); + } + + // Transfer tokens from the pool to the miners... + for (int i = 0; i <= 5; i++) + { + await pool1.TrasferToMinerAsync(miners[i].ContractAddress); + } + + // Ensure each miner received the proper amount of tokens according its category... + Assert.Equal(100000.Algo() * 10 / 100, await token.BalanceOfAsync(miners[0].ContractAddress)); + Assert.Equal(1.MAlgo() * 10 / 100, await token.BalanceOfAsync(miners[1].ContractAddress)); + Assert.Equal(2.MAlgo() * 10 / 100, await token.BalanceOfAsync(miners[2].ContractAddress)); + Assert.Equal(3.MAlgo() * 10 / 100, await token.BalanceOfAsync(miners[3].ContractAddress)); + Assert.Equal(4.MAlgo() * 10 / 100, await token.BalanceOfAsync(miners[4].ContractAddress)); + Assert.Equal(5.MAlgo() * 10 / 100, await token.BalanceOfAsync(miners[5].ContractAddress)); + } } } diff --git a/labs/algo-token-playground/README.md b/labs/algo-token-playground/README.md index bf9aa722a..dc2ff3370 100644 --- a/labs/algo-token-playground/README.md +++ b/labs/algo-token-playground/README.md @@ -200,10 +200,10 @@ The following commands are supported for the `AlgoPool` contract: `deploy-algopool [-n ]` Creates a new instance of the `AlgoPool` contract. -* `poolType`: the type of pool (uint16) +* `poolType`: the type of pool (uint8: 0 = PoolType, 1 = ReferralPool) * `tokenAddress`: the address of the AlgoToken contract ->Example: `deploy-algopool 1 token -n dev_pool` +>Example: `deploy-algopool 0 token -n dev_pool` #### algopool-trasfertominer @@ -220,15 +220,16 @@ The following commands are supported for the `AlgoMiner` contract: #### deploy-algominer -`deploy-algominer [-n ]` +`deploy-algominer [-n ]` Creates a new instance of the `AlgoPool` contract. -* `minerType`: the type of miner (uint16) +* `minerType`: the type of miner (uint8: 0 = PoolBased, 1 = NonPoolBased) * `category`: the category of miner (uint8: valid from 0 to 5) * `minerAccountAddress`: the address of the miner's owner +* `referralAccountAddress`: the address of the referral * `tokenAddress`: the address of the AlgoToken contract ->Example: `deploy-algominer 1 2 miner_1_account token -n miner_1` +>Example: `deploy-algominer 0 2 miner_1_account referral_1_account token -n miner_1` #### algominer-activateminer @@ -275,16 +276,17 @@ Resumes the miner. `.algominer-stopandremoveownership` -Sets the miner to the stopped state and remove the ownership, a new owner will be assigned using the `resetMiner` operation. +Sets the miner to the stopped state and remove the ownership, a new owner and referral will be assigned using the `resetMiner` operation. >Example: `miner_1.algominer-stopandremoveownership` #### algominer-resetminer -`.algominer-resetminer ` +`.algominer-resetminer ` Resets the miner. * `newOwnerAddress`: the address of the new owner +* `newReferralAddress`: the address of the new referral >Example: `miner_1.algominer-resetminer` diff --git a/labs/algo-token-playground/algofees-script.md b/labs/algo-token-playground/algofees-script.txt similarity index 57% rename from labs/algo-token-playground/algofees-script.md rename to labs/algo-token-playground/algofees-script.txt index e19a958d1..6763e8f6e 100644 --- a/labs/algo-token-playground/algofees-script.md +++ b/labs/algo-token-playground/algofees-script.txt @@ -1,9 +1,15 @@ new-account -n miner_0_account +new-account -n ref_0_account new-account -n miner_1_account +new-account -n ref_1_account new-account -n miner_2_account +new-account -n ref_2_account new-account -n miner_3_account +new-account -n ref_3_account new-account -n miner_4_account +new-account -n ref_4_account new-account -n miner_5_account +new-account -n ref_5_account import-account 0936af475d2701538aad321f87e0a51f2b297634653393e8cab7290a674009a5 -n prefunded eth-transfer miner_0_account 1eth eth-transfer miner_1_account 1eth @@ -12,18 +18,28 @@ eth-transfer miner_3_account 1eth eth-transfer miner_4_account 1eth eth-transfer miner_5_account 1eth deploy-algotoken -n token -deploy-algominer 1 0 miner_0_account token -n miner_0 -deploy-algominer 1 1 miner_1_account token -n miner_1 -deploy-algominer 1 2 miner_2_account token -n miner_2 -deploy-algominer 1 3 miner_3_account token -n miner_3 -deploy-algominer 1 4 miner_4_account token -n miner_4 -deploy-algominer 1 5 miner_5_account token -n miner_5 -token.algotoken-transfer miner_0 1m -token.algotoken-transfer miner_1 1m -token.algotoken-transfer miner_2 1m -token.algotoken-transfer miner_3 1m -token.algotoken-transfer miner_4 1m -token.algotoken-transfer miner_5 1m +deploy-algominer 1 0 miner_0_account ref_0_account token -n miner_0 +deploy-algominer 1 1 miner_1_account ref_1_account token -n miner_1 +deploy-algominer 1 2 miner_2_account ref_2_account token -n miner_2 +deploy-algominer 1 3 miner_3_account ref_3_account token -n miner_3 +deploy-algominer 1 4 miner_4_account ref_4_account token -n miner_4 +deploy-algominer 1 5 miner_5_account ref_5_account token -n miner_5 +deploy-algopool 0 token -n dev_pool +deploy-algopool 1 token -n ref_pool +token.algotoken-transfer dev_pool 100m +token.algotoken-transfer ref_pool 100m +dev_pool.algopool-trasfertominer miner_0 +ref_pool.algopool-trasfertominer miner_0 +dev_pool.algopool-trasfertominer miner_1 +ref_pool.algopool-trasfertominer miner_1 +dev_pool.algopool-trasfertominer miner_2 +ref_pool.algopool-trasfertominer miner_2 +dev_pool.algopool-trasfertominer miner_3 +ref_pool.algopool-trasfertominer miner_3 +dev_pool.algopool-trasfertominer miner_4 +ref_pool.algopool-trasfertominer miner_4 +dev_pool.algopool-trasfertominer miner_5 +ref_pool.algopool-trasfertominer miner_5 miner_0.algominer-activateminer miner_1.algominer-activateminer miner_2.algominer-activateminer diff --git a/labs/algo-token-playground/algotoken-script.md b/labs/algo-token-playground/pool-based-algominer-script.txt similarity index 62% rename from labs/algo-token-playground/algotoken-script.md rename to labs/algo-token-playground/pool-based-algominer-script.txt index e4fc98581..7d1571fdb 100644 --- a/labs/algo-token-playground/algotoken-script.md +++ b/labs/algo-token-playground/pool-based-algominer-script.txt @@ -1,13 +1,18 @@ new-account -n miner_1_account +new-account -n ref_1_account import-account 0936af475d2701538aad321f87e0a51f2b297634653393e8cab7290a674009a5 -n prefunded eth-transfer miner_1_account 1eth eth-getbalance miner_1_account deploy-algotoken -n token -deploy-algopool 1 token -n dev_pool +deploy-algopool 0 token -n dev_pool +deploy-algopool 1 token -n ref_pool token.algotoken-transfer dev_pool 100m +token.algotoken-transfer ref_pool 100m token.algotoken-balanceof dev_pool -deploy-algominer 1 2 miner_1_account token -n miner_1 +token.algotoken-balanceof ref_pool +deploy-algominer 0 2 miner_1_account ref_1_account token -n miner_1 dev_pool.algopool-trasfertominer miner_1 +ref_pool.algopool-trasfertominer miner_1 token.algotoken-balanceof miner_1 miner_1.algominer-activateminer set-account miner_1_account @@ -15,5 +20,7 @@ miner_1.algominer-startmining set-account prefunded miner_1.algominer-mine token.algotoken-balanceof miner_1_account +token.algotoken-balanceof ref_1_account miner_1.algominer-mine token.algotoken-balanceof miner_1_account +token.algotoken-balanceof ref_1_account diff --git a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/AlgoMinerContract/AlgoMinerDeployCommand.cs b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/AlgoMinerContract/AlgoMinerDeployCommand.cs index e335c7432..41f9df66f 100644 --- a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/AlgoMinerContract/AlgoMinerDeployCommand.cs +++ b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/AlgoMinerContract/AlgoMinerDeployCommand.cs @@ -14,9 +14,10 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Commands.AlgoMinerContract { public override string DefaultName => "AlgoMiner"; - public ushort MinerType { get; set; } + public byte MinerType { get; set; } public byte Category { get; set; } public string MinerAccountAddress { get; set; } + public string ReferralAccountAddress { get; set; } public string TokenAddress { get; set; } protected override async Task DeployContractAsync(RuntimeContext context, Web3 web3) @@ -26,6 +27,7 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Commands.AlgoMinerContract MinerType, Category, context.ResolveAccountReference(MinerAccountAddress), + context.ResolveAccountReference(ReferralAccountAddress), context.ResolveContractReference(TokenAddress)); } } diff --git a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/AlgoMinerContract/AlgoMinerResetMinerCommand.cs b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/AlgoMinerContract/AlgoMinerResetMinerCommand.cs index f66dde831..5faa0df01 100644 --- a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/AlgoMinerContract/AlgoMinerResetMinerCommand.cs +++ b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/AlgoMinerContract/AlgoMinerResetMinerCommand.cs @@ -14,12 +14,15 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Commands.AlgoMinerContract public class AlgoMinerResetMinerCommand : EthInvokeTransactionalFunctionCommand { public string NewOwnerAddress { get; set; } + public string NewReferralAddress { get; set; } protected override async Task ExecuteAsync(RuntimeContext context, string contractAddress, Web3 web3) { var algoMiner = new AlgoMiner(contractAddress, web3, context.GasPriceProvider); - return await algoMiner.ResetMinerAsync(context.ResolveAccountReference(NewOwnerAddress)); + return await algoMiner.ResetMinerAsync( + context.ResolveAccountReference(NewOwnerAddress), + context.ResolveAccountReference(NewReferralAddress)); } } } diff --git a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/AlgoPoolContract/AlgoPoolDeployCommand.cs b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/AlgoPoolContract/AlgoPoolDeployCommand.cs index e2ca14b22..ed6732c6d 100644 --- a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/AlgoPoolContract/AlgoPoolDeployCommand.cs +++ b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/AlgoPoolContract/AlgoPoolDeployCommand.cs @@ -14,7 +14,7 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Commands.AlgoPoolContract { public override string DefaultName => "AlgoPool"; - public ushort PoolType { get; set; } + public byte PoolType { get; set; } public string TokenAddress { get; set; } protected override async Task DeployContractAsync(RuntimeContext context, Web3 web3) diff --git a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Parsers/AlgoMinerParsers.cs b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Parsers/AlgoMinerParsers.cs index 3e10cfd1a..1b857c43b 100644 --- a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Parsers/AlgoMinerParsers.cs +++ b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Parsers/AlgoMinerParsers.cs @@ -11,17 +11,19 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Parsers public static void Register() { (from command in CommonParsers.Token("deploy-algominer") - from minerType in CommonParsers.IntegerValue - from category in CommonParsers.IntegerValue + from minerType in CommonParsers.ByteValue + from category in CommonParsers.ByteValue from minerAccountAddress in CommonParsers.StringValue + from referralAccountAddress in CommonParsers.StringValue from tokenAddress in CommonParsers.StringValue from name in CommonParsers.Switch('n', "name", CommonParsers.Identifier).Optional() select new AlgoMinerDeployCommand { Name = name.GetOrDefault(), - MinerType = (ushort)minerType, - Category = (byte)category, + MinerType = minerType, + Category = category, MinerAccountAddress = minerAccountAddress, + ReferralAccountAddress = referralAccountAddress, TokenAddress = tokenAddress }).Register(); @@ -65,10 +67,12 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Parsers (from contractReference in CommonParsers.Invoke("algominer-resetminer") from newOwnerAddress in CommonParsers.StringValue + from newReferralAddress in CommonParsers.StringValue select new AlgoMinerResetMinerCommand { ContractReference = contractReference, - NewOwnerAddress = newOwnerAddress + NewOwnerAddress = newOwnerAddress, + NewReferralAddress = newReferralAddress }).Register(); (from contractReference in CommonParsers.Invoke("algominer-startmining") diff --git a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Parsers/AlgoPoolParsers.cs b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Parsers/AlgoPoolParsers.cs index abb30cee0..487b903ba 100644 --- a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Parsers/AlgoPoolParsers.cs +++ b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Parsers/AlgoPoolParsers.cs @@ -11,13 +11,13 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Parsers public static void Register() { (from command in CommonParsers.Token("deploy-algopool") - from poolType in CommonParsers.IntegerValue + from poolType in CommonParsers.ByteValue from tokenAddress in CommonParsers.StringValue from name in CommonParsers.Switch('n', "name", CommonParsers.Identifier).Optional() select new AlgoPoolDeployCommand { Name = name.GetOrDefault(), - PoolType = (ushort)poolType, + PoolType = poolType, TokenAddress = tokenAddress }).Register(); diff --git a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Parsers/CommonParsers.cs b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Parsers/CommonParsers.cs index 67ffea648..5ee66ae6c 100644 --- a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Parsers/CommonParsers.cs +++ b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Parsers/CommonParsers.cs @@ -24,6 +24,9 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Parsers from close in Parse.Char('"') select content; + public static readonly Parser ByteValue = + Integer.Select(x => byte.Parse(x, CultureInfo.InvariantCulture)); + public static readonly Parser IntegerValue = Integer.Select(x => int.Parse(x, CultureInfo.InvariantCulture)); diff --git a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Runtime/RuntimeContext.cs b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Runtime/RuntimeContext.cs index 1a7cb66e0..adaf9a5d4 100644 --- a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Runtime/RuntimeContext.cs +++ b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Runtime/RuntimeContext.cs @@ -18,6 +18,8 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Runtime public string ResolveAccountReference(string reference) { + if (string.IsNullOrWhiteSpace(reference) || string.Equals(reference, "0x0", StringComparison.OrdinalIgnoreCase)) return "0x0"; + if (TryResolveAccountReference(reference, out string address)) return address; throw new Exception($"Invalid account name or address: '{reference}'.");