From 6f105e531f3d6b96e1562c90b9b8b2021103d52f Mon Sep 17 00:00:00 2001 From: pmmax Date: Fri, 21 Dec 2018 11:38:27 -0300 Subject: [PATCH] Added minor validations to AlgoMiner. Created integration tests for "terminate" function in all contracts. Updated the playground to support the "terminate" function for all contracts. Added the "reset" command to the playground. Updated playground docs. Updated playground sample scripts. --- .../AlgoFees.cs | 5 + .../AlgoMiner.cs | 5 + .../AlgoPool.cs | 5 + .../SmartContracts/src/AlgoMiner.sol | 16 +- .../SmartContracts/src/IAlgoMiner.sol | 3 +- .../src/bin/AlgoFees-sol-output.json | 2 +- .../src/bin/AlgoMiner-sol-output.json | 5789 +++++++++-------- .../SmartContracts/src/bin/AlgoMiner.bin | 2 +- .../SmartContracts/src/bin/AlgoMiner.json | 4 +- .../AlgoFeesTests.cs | 56 +- .../AlgoMinerTests.cs | 40 + .../AlgoPoolTests.cs | 38 + labs/algo-token-playground/README.md | 73 +- .../algo-token-playground/algofees-script.txt | 16 - .../AlgoFeesTerminateCommand.cs | 23 + .../AlgoMinerTerminateCommand.cs | 23 + .../AlgoPoolTerminateCommand.cs | 23 + .../ListEnvironmentCommand.cs | 2 +- .../Commands/System/ResetCommand.cs | 23 + .../Parsers/AlgoFeesParsers.cs | 6 + .../Parsers/AlgoMinerParsers.cs | 6 + .../Parsers/AlgoPoolParsers.cs | 6 + .../Parsers/EthNetworkParsers.cs | 4 - .../Parsers/SystemParsers.cs | 22 + .../REPL.cs | 1 + .../Runtime/RuntimeContext.cs | 10 +- .../terminate-script.txt | 29 + 27 files changed, 3403 insertions(+), 2829 deletions(-) create mode 100644 labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/AlgoFeesContract/AlgoFeesTerminateCommand.cs create mode 100644 labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/AlgoMinerContract/AlgoMinerTerminateCommand.cs create mode 100644 labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/AlgoPoolContract/AlgoPoolTerminateCommand.cs rename labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/{EthNetwork => System}/ListEnvironmentCommand.cs (90%) create mode 100644 labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/System/ResetCommand.cs create mode 100644 labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Parsers/SystemParsers.cs create mode 100644 labs/algo-token-playground/terminate-script.txt diff --git a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/AlgoFees.cs b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/AlgoFees.cs index 751870ed3..55797e885 100644 --- a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/AlgoFees.cs +++ b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/AlgoFees.cs @@ -15,6 +15,7 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution private Function _registerMiner; private Function _unregisterMiner; private Function _mine; + private Function _terminate; private Function _addSystem; private Function _addCoreTeam; @@ -37,6 +38,7 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution _registerMiner = contractDescriptor.GetFunction("registerMiner"); _unregisterMiner = contractDescriptor.GetFunction("unregisterMiner"); _mine = contractDescriptor.GetFunction("mine"); + _terminate = contractDescriptor.GetFunction("terminate"); _addSystem = contractDescriptor.GetFunction("addSystem"); _addCoreTeam = contractDescriptor.GetFunction("addCoreTeam"); @@ -54,6 +56,9 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution public Task MineAsync() => InvokeAsync(_mine, 1500000); + public Task TerminateAsync() => + InvokeAsync(_terminate, 900000); + public Task AddSystemAsync(string account) => InvokeAsync(_addSystem, 900000, account); 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 f411a72ac..6aa9675a5 100644 --- a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/AlgoMiner.cs +++ b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/AlgoMiner.cs @@ -22,6 +22,7 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution private Function _startMining; private Function _stopMining; private Function _mine; + private Function _terminate; private Function _addSystem; private Function _addCoreTeam; @@ -49,6 +50,7 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution _startMining = contractDescriptor.GetFunction("startMining"); _stopMining = contractDescriptor.GetFunction("stopMining"); _mine = contractDescriptor.GetFunction("mine"); + _terminate = contractDescriptor.GetFunction("terminate"); _addSystem = contractDescriptor.GetFunction("addSystem"); _addCoreTeam = contractDescriptor.GetFunction("addCoreTeam"); @@ -85,6 +87,9 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution public Task MineAsync() => InvokeAsync(_mine, 900000); + public Task TerminateAsync() => + InvokeAsync(_terminate, 900000); + public Task AddSystemAsync(string account) => InvokeAsync(_addSystem, 900000, account); 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 7fbf9a3ca..1ac592575 100644 --- a/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/AlgoPool.cs +++ b/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/AlgoPool.cs @@ -13,6 +13,7 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution public class AlgoPool : SmartContract { private Function _trasferToMiner; + private Function _terminate; public AlgoPool(Web3 web3, IGasPriceProvider gasPriceProvider) : base(web3, gasPriceProvider) { } public AlgoPool(string contractAddress, Web3 web3, IGasPriceProvider gasPriceProvider) : base(contractAddress, web3, gasPriceProvider) { } @@ -27,9 +28,13 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution protected override void Initialize(Contract contractDescriptor) { _trasferToMiner = contractDescriptor.GetFunction("trasferToMiner"); + _terminate = contractDescriptor.GetFunction("terminate"); } public Task TrasferToMinerAsync(string minerAddress) => InvokeAsync(_trasferToMiner, 900000, minerAddress); + + public Task TerminateAsync() => + InvokeAsync(_terminate, 900000); } } 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 80ea7a1f4..c41b5b855 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 @@ -46,6 +46,11 @@ contract AlgoMiner is AlgoCommon, ERC20TokenHolder, AlgoSystemRole, AlgoCoreTeam public { require(category >= 0 && category <= 5); + require(minerAccountAddress != address(0)); + + if(minerType == MinerType.PoolBased) { + require(referralAccountAddress != address(0)); + } _minerType = minerType; _category = category; @@ -150,18 +155,13 @@ contract AlgoMiner is AlgoCommon, ERC20TokenHolder, AlgoSystemRole, AlgoCoreTeam } uint256 minerTokens = _currentYearSupply / DAYS_PER_YEAR; + uint256 referralTokens = minerTokens * 10 / 100; require(minerTokens > 0); + require(referralTokens > 0); _token.safeTransfer(_miner, minerTokens); - - if(_referral != address(0)) { - uint256 referralTokens = minerTokens * 10 / 100; - - require(referralTokens > 0); - - _token.safeTransfer(_referral, referralTokens); - } + _token.safeTransfer(_referral, referralTokens); } function terminate() public onlyCoreTeam { 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 6e28d508e..4d737f9f5 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 @@ -4,6 +4,7 @@ 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); + function getReferral() public view returns (address); + function isMining() public view returns (bool); } \ No newline at end of file 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 c3bf41b72..f2f99092c 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 @@ -2016,9 +2016,9 @@ } ], "contractDependencies": [ - 750, 86, 693, + 750, 815 ], "contractKind": "contract", 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 65fe094ae..6731ab628 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 @@ -522,13 +522,13 @@ "evm": { "bytecode": { "linkReferences": {}, - "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:-;;;;;;;" + "object": "60806040523480156200001157600080fd5b5060405160a080620014f7833981016040908152815160208301519183015160608401516080909401516000805433600160a060020a0319918216811760a060020a60ff02191690925560018054909116600160a060020a0384161790559294919262000087906401000000006200018e810204565b6200009b33640100000000620001ac810204565b620000af33640100000000620001c7810204565b60008460ff1610158015620000c8575060058460ff1611155b1515620000d457600080fd5b600160a060020a0383161515620000ea57600080fd5b6000856001811115620000f957fe5b14156200011657600160a060020a03821615156200011657600080fd5b6005805486919060ff1916600183818111156200012f57fe5b0217905550506005805461ff00191661010060ff9590951694909402939093176201000060b060020a03191662010000600160a060020a03938416021790925560068054600160a060020a031916929091169190911790555062000275565b620001a9600282640100000000620011ac620001e282021704565b50565b620001a9600382640100000000620011ac620001e282021704565b620001a9600482640100000000620011ac620001e282021704565b600160a060020a0381161515620001f857600080fd5b6200020d82826401000000006200023d810204565b156200021857600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a03821615156200025557600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61127280620002856000396000f30060806040526004361061017f5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630c08bf888114610184578063162f986d1461019b5780631777fb4b146101b057806319a74ab3146101d957806321b79d98146101ee578063231d4e2a1461020357806329d10b6e146102245780632e6b684914610245578063302c11ca14610266578063329b1c921461029757806334cdcf26146102ac578063363aa6c7146102cd5780633e6968b6146102e2578063427534a41461030e5780634969ae7014610323578063608d3d3d1461034e57806374be75921461036f57806380258e471461039057806381a24459146103a55780638329138f146103c657806399f4b251146103ed5780639e614ca014610402578063b2a32cd514610417578063be9524941461042c578063c6846ef814610441578063cdfd0f6414610468578063ce41607a1461047d578063d43acc7914610492578063da408679146104a7578063e9d61859146104bc575b600080fd5b34801561019057600080fd5b506101996104d1565b005b3480156101a757600080fd5b506101996104ef565b3480156101bc57600080fd5b506101c561055e565b604080519115158252519081900360200190f35b3480156101e557600080fd5b506101c5610563565b3480156101fa57600080fd5b5061019961059a565b34801561020f57600080fd5b50610199600160a060020a0360043516610630565b34801561023057600080fd5b50610199600160a060020a036004351661071c565b34801561025157600080fd5b50610199600160a060020a0360043516610739565b34801561027257600080fd5b5061027b610756565b60408051600160a060020a039092168252519081900360200190f35b3480156102a357600080fd5b5061027b61076b565b3480156102b857600080fd5b506101c5600160a060020a036004351661077a565b3480156102d957600080fd5b50610199610795565b3480156102ee57600080fd5b506102f7610846565b6040805161ffff9092168252519081900360200190f35b34801561031a57600080fd5b50610199610857565b34801561032f57600080fd5b506103386108c3565b6040805160ff9092168252519081900360200190f35b34801561035a57600080fd5b506101c5600160a060020a03600435166108d7565b34801561037b57600080fd5b50610199600160a060020a03600435166108ea565b34801561039c57600080fd5b50610338610907565b3480156103b157600080fd5b506101c5600160a060020a0360043516610915565b3480156103d257600080fd5b50610199600160a060020a0360043581169060243516610928565b3480156103f957600080fd5b506101996109db565b34801561040e57600080fd5b50610199610c1c565b34801561042357600080fd5b50610199610c8d565b34801561043857600080fd5b50610199610deb565b34801561044d57600080fd5b50610456610df4565b60408051918252519081900360200190f35b34801561047457600080fd5b50610456610dfa565b34801561048957600080fd5b50610338610e00565b34801561049e57600080fd5b50610199610e23565b3480156104b357600080fd5b50610199610e2c565b3480156104c857600080fd5b50610199610ebd565b6104da336108d7565b15156104e557600080fd5b6104ed610ec6565b565b60005460a060020a900460ff161561050657600080fd5b61050f33610915565b151561051a57600080fd5b600160065460a060020a900460ff16600381111561053457fe5b1461053e57600080fd5b600680546002919060a060020a60ff02191660a060020a835b0217905550565b600190565b6000600160065460a060020a900460ff16600381111561057f57fe5b148015610595575060065460a860020a900460ff165b905090565b60005460a060020a900460ff16156105b157600080fd5b600554620100009004600160a060020a031633146105ce57600080fd5b600160065460a060020a900460ff1660038111156105e857fe5b146105f257600080fd5b60065460a860020a900460ff161561060957600080fd5b6006805475ff000000000000000000000000000000000000000000191660a860020a179055565b610639336108d7565b151561064457600080fd5b600060065460a060020a900460ff16600381111561065e57fe5b1461066857600080fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051610719928492600160a060020a03909116916370a08231916024808201926020929091908290030181600087803b1580156106d457600080fd5b505af11580156106e8573d6000803e3d6000fd5b505050506040513d60208110156106fe57600080fd5b5051600154600160a060020a0316919063ffffffff610f8d16565b50565b61072533610915565b151561073057600080fd5b61071981611045565b610742336108d7565b151561074d57600080fd5b61071981611056565b600554620100009004600160a060020a031690565b600654600160a060020a031690565b600061078d60028363ffffffff61106716565b90505b919050565b60005460a060020a900460ff16156107ac57600080fd5b6107b533610915565b15156107c057600080fd5b600360065460a060020a900460ff1660038111156107da57fe5b14156107e557600080fd5b600680546005805475ffffffffffffffffffffffffffffffffffffffff00001916905560a060020a60ff021916740300000000000000000000000000000000000000001775ff00ffffffffffffffffffffffffffffffffffffffff19169055565b60065460b860020a900461ffff1690565b60005460a060020a900460ff161561086e57600080fd5b61087733610915565b151561088257600080fd5b600260065460a060020a900460ff16600381111561089c57fe5b146108a657600080fd5b600680546001919060a060020a60ff02191660a060020a83610557565b60055460009060ff16600181111561059557fe5b600061078d60038363ffffffff61106716565b6108f33361077a565b15156108fe57600080fd5b6107198161109e565b600554610100900460ff1690565b600061078d60048363ffffffff61106716565b60005460a060020a900460ff161561093f57600080fd5b61094833610915565b151561095357600080fd5b600360065460a060020a900460ff16600381111561096d57fe5b1461097757600080fd5b600680546005805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a039687160217905560a060020a60ff02191660a060020a1773ffffffffffffffffffffffffffffffffffffffff191691909216179055565b60008054819060a060020a900460ff16156109f557600080fd5b6109fe3361077a565b1515610a0957600080fd5b600060055460ff166001811115610a1c57fe5b14610a2657600080fd5b600160065460a060020a900460ff166003811115610a4057fe5b14610a4a57600080fd5b60065460a860020a900460ff161515610a6257600080fd5b60065460b860020a900461ffff161515610ad8576006805478ffff00000000000000000000000000000000000000000000001976ff0000000000000000000000000000000000000000000019909116760100000000000000000000000000000000000000000000171660b860020a179055610ba0565b60068054600161ffff60b860020a8084048216929092018116820278ffff00000000000000000000000000000000000000000000001990931692909217928390559091041661016e1415610ba0576006805478ffff000000000000000000000000000000000000000000000019600160ff760100000000000000000000000000000000000000000000808504821692909201160276ff0000000000000000000000000000000000000000000019909216919091171660b860020a179055600754600290046007555b505060075461016d90046064600a82020460008211610bbe57600080fd5b60008111610bcb57600080fd5b600554600154610bf591600160a060020a039182169162010000909104168463ffffffff610f8d16565b600654600154610c1891600160a060020a0391821691168363ffffffff610f8d16565b5050565b60005460a060020a900460ff1615610c3357600080fd5b610c3c336108d7565b1515610c4757600080fd5b600060065460a060020a900460ff166003811115610c6157fe5b1415610c6c57600080fd5b6006805475ffff000000000000000000000000000000000000000019169055565b600080548190819060a060020a900460ff1615610ca957600080fd5b610cb2336108d7565b1515610cbd57600080fd5b600060065460a060020a900460ff166003811115610cd757fe5b14610ce157600080fd5b600060055460ff166001811115610cf457fe5b148015610d015750600754155b15610dd057600554610d1a90610100900460ff166110af565b92506064600a8402600154604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290519390920486019450600160a060020a0316916370a08231916024808201926020929091908290030181600087803b158015610d8e57600080fd5b505af1158015610da2573d6000803e3d6000fd5b505050506040513d6020811015610db857600080fd5b50519050818114610dc857600080fd5b600283046007555b50506006805460a060020a60ff02191660a060020a17905550565b6104ed33611161565b61016d81565b60075490565b600654760100000000000000000000000000000000000000000000900460ff1690565b6104ed33611172565b60005460a060020a900460ff1615610e4357600080fd5b600554620100009004600160a060020a03163314610e6057600080fd5b600160065460a060020a900460ff166003811115610e7a57fe5b14610e8457600080fd5b60065460a860020a900460ff161515610e9c57600080fd5b6006805475ff00000000000000000000000000000000000000000019169055565b6104ed33611183565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b158015610f2b57600080fd5b505af1158015610f3f573d6000803e3d6000fd5b505050506040513d6020811015610f5557600080fd5b505190506000811115610f8557600054600154610f8591600160a060020a0391821691168363ffffffff610f8d16565b610719611194565b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561100957600080fd5b505af115801561101d573d6000803e3d6000fd5b505050506040513d602081101561103357600080fd5b5051151561104057600080fd5b505050565b61071960048263ffffffff6111ac16565b61071960038263ffffffff6111ac16565b6000600160a060020a038216151561107e57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61071960028263ffffffff6111ac16565b600060ff821615156110cc575069152d02c7e14af6800000610790565b8160ff16600114156110e9575069d3c21bcecceda1000000610790565b8160ff166002141561110757506a01a784379d99db42000000610790565b8160ff166003141561112557506a027b46536c66c8e3000000610790565b8160ff166004141561114357506a034f086f3b33b684000000610790565b8160ff166005141561079057506a0422ca8b0a00a425000000610790565b61071960048263ffffffff6111fa16565b61071960038263ffffffff6111fa16565b61071960028263ffffffff6111fa16565b6000805460a060020a60ff02191660a060020a179055565b600160a060020a03811615156111c157600080fd5b6111cb8282611067565b156111d557600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038116151561120f57600080fd5b6112198282611067565b151561122457600080fd5b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a723058205f527260d789022d74031e68eb390ff4f3057e6fce4f2adde7c12af38948fde60029", + "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 0x14F7 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 0x18E DUP2 MUL DIV JUMP JUMPDEST PUSH3 0x9B CALLER PUSH5 0x100000000 PUSH3 0x1AC DUP2 MUL DIV JUMP JUMPDEST PUSH3 0xAF CALLER PUSH5 0x100000000 PUSH3 0x1C7 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 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP4 AND ISZERO ISZERO PUSH3 0xEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP6 PUSH1 0x1 DUP2 GT ISZERO PUSH3 0xF9 JUMPI INVALID JUMPDEST EQ ISZERO PUSH3 0x116 JUMPI PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND ISZERO ISZERO PUSH3 0x116 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 0x12F 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 0x275 JUMP JUMPDEST PUSH3 0x1A9 PUSH1 0x2 DUP3 PUSH5 0x100000000 PUSH3 0x11AC PUSH3 0x1E2 DUP3 MUL OR DIV JUMP JUMPDEST POP JUMP JUMPDEST PUSH3 0x1A9 PUSH1 0x3 DUP3 PUSH5 0x100000000 PUSH3 0x11AC PUSH3 0x1E2 DUP3 MUL OR DIV JUMP JUMPDEST PUSH3 0x1A9 PUSH1 0x4 DUP3 PUSH5 0x100000000 PUSH3 0x11AC PUSH3 0x1E2 DUP3 MUL OR DIV JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP2 AND ISZERO ISZERO PUSH3 0x1F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x20D DUP3 DUP3 PUSH5 0x100000000 PUSH3 0x23D DUP2 MUL DIV JUMP JUMPDEST ISZERO PUSH3 0x218 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 0x255 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 0x1272 DUP1 PUSH3 0x285 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 0xC1C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x423 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH2 0xC8D JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x438 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH2 0xDEB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x44D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x456 PUSH2 0xDF4 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 0xDFA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x489 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x338 PUSH2 0xE00 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x49E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH2 0xE23 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH2 0xE2C JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x199 PUSH2 0xEBD JUMP JUMPDEST PUSH2 0x4DA CALLER PUSH2 0x8D7 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x4E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4ED PUSH2 0xEC6 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 0xF8D 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 0x1045 JUMP JUMPDEST PUSH2 0x742 CALLER PUSH2 0x8D7 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x74D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x719 DUP2 PUSH2 0x1056 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 0x1067 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 0x1067 AND JUMP JUMPDEST PUSH2 0x8F3 CALLER PUSH2 0x77A JUMP JUMPDEST ISZERO ISZERO PUSH2 0x8FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x719 DUP2 PUSH2 0x109E 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 0x1067 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 POP POP PUSH1 0x7 SLOAD PUSH2 0x16D SWAP1 DIV PUSH1 0x64 PUSH1 0xA DUP3 MUL DIV PUSH1 0x0 DUP3 GT PUSH2 0xBBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0xBCB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 SLOAD PUSH2 0xBF5 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 DUP3 AND SWAP2 PUSH3 0x10000 SWAP1 SWAP2 DIV AND DUP5 PUSH4 0xFFFFFFFF PUSH2 0xF8D AND JUMP JUMPDEST PUSH1 0x6 SLOAD PUSH1 0x1 SLOAD PUSH2 0xC18 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 DUP3 AND SWAP2 AND DUP4 PUSH4 0xFFFFFFFF PUSH2 0xF8D AND JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xC33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC3C CALLER PUSH2 0x8D7 JUMP JUMPDEST ISZERO ISZERO PUSH2 0xC47 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 0xC61 JUMPI INVALID JUMPDEST EQ ISZERO PUSH2 0xC6C 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 0xCA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCB2 CALLER PUSH2 0x8D7 JUMP JUMPDEST ISZERO ISZERO PUSH2 0xCBD 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 0xCD7 JUMPI INVALID JUMPDEST EQ PUSH2 0xCE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x5 SLOAD PUSH1 0xFF AND PUSH1 0x1 DUP2 GT ISZERO PUSH2 0xCF4 JUMPI INVALID JUMPDEST EQ DUP1 ISZERO PUSH2 0xD01 JUMPI POP PUSH1 0x7 SLOAD ISZERO JUMPDEST ISZERO PUSH2 0xDD0 JUMPI PUSH1 0x5 SLOAD PUSH2 0xD1A SWAP1 PUSH2 0x100 SWAP1 DIV PUSH1 0xFF AND PUSH2 0x10AF 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 0xD8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xDA2 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 0xDB8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP DUP2 DUP2 EQ PUSH2 0xDC8 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 0x1161 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 0x1172 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0xA0 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH2 0xE43 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 0xE60 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 0xE7A JUMPI INVALID JUMPDEST EQ PUSH2 0xE84 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 SLOAD PUSH1 0xA8 PUSH1 0x2 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO PUSH2 0xE9C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x6 DUP1 SLOAD PUSH22 0xFF000000000000000000000000000000000000000000 NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x4ED CALLER PUSH2 0x1183 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 0xF2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF3F 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 0xF55 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP1 POP PUSH1 0x0 DUP2 GT ISZERO PUSH2 0xF85 JUMPI PUSH1 0x0 SLOAD PUSH1 0x1 SLOAD PUSH2 0xF85 SWAP2 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB SWAP2 DUP3 AND SWAP2 AND DUP4 PUSH4 0xFFFFFFFF PUSH2 0xF8D AND JUMP JUMPDEST PUSH2 0x719 PUSH2 0x1194 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 0x1009 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x101D 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 0x1033 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD ISZERO ISZERO PUSH2 0x1040 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x719 PUSH1 0x4 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x11AC AND JUMP JUMPDEST PUSH2 0x719 PUSH1 0x3 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x11AC AND JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0xA0 PUSH1 0x2 EXP SUB DUP3 AND ISZERO ISZERO PUSH2 0x107E 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 0x11AC AND JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND ISZERO ISZERO PUSH2 0x10CC JUMPI POP PUSH10 0x152D02C7E14AF6800000 PUSH2 0x790 JUMP JUMPDEST DUP2 PUSH1 0xFF AND PUSH1 0x1 EQ ISZERO PUSH2 0x10E9 JUMPI POP PUSH10 0xD3C21BCECCEDA1000000 PUSH2 0x790 JUMP JUMPDEST DUP2 PUSH1 0xFF AND PUSH1 0x2 EQ ISZERO PUSH2 0x1107 JUMPI POP PUSH11 0x1A784379D99DB42000000 PUSH2 0x790 JUMP JUMPDEST DUP2 PUSH1 0xFF AND PUSH1 0x3 EQ ISZERO PUSH2 0x1125 JUMPI POP PUSH11 0x27B46536C66C8E3000000 PUSH2 0x790 JUMP JUMPDEST DUP2 PUSH1 0xFF AND PUSH1 0x4 EQ ISZERO PUSH2 0x1143 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 0x11FA AND JUMP JUMPDEST PUSH2 0x719 PUSH1 0x3 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x11FA AND JUMP JUMPDEST PUSH2 0x719 PUSH1 0x2 DUP3 PUSH4 0xFFFFFFFF PUSH2 0x11FA 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 0x11C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x11CB DUP3 DUP3 PUSH2 0x1067 JUMP JUMPDEST ISZERO PUSH2 0x11D5 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 0x120F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1219 DUP3 DUP3 PUSH2 0x1067 JUMP JUMPDEST ISZERO ISZERO PUSH2 0x1224 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 0x5f MSTORE PUSH19 0x60D789022D74031E68EB390FF4F3057E6FCE4F 0x2a 0xdd 0xe7 0xc1 0x2a RETURN DUP10 0x48 REVERT 0xe6 STOP 0x29 ", + "sourceMap": "620:5566:2:-;;;1311:664;8:9:-1;5:2;;;30:1;27;20:12;5:2;1311:664: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:664: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;;;;;;;;-1:-1:-1;;;;;1662:33:2;;;;1654:42;;;;;;1725:19;1712:9;:32;;;;;;;;;1709:109;;;-1:-1:-1;;;;;1769:36:2;;;;1761:45;;;;;;1830:10;:22;;1843:9;;1830:10;-1:-1:-1;;1830:22:2;;1843:9;1830:22;;;;;;;;;;;;-1:-1:-1;;1863:9:2;:20;;-1:-1:-1;;1863:20:2;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1894:28:2;;-1:-1:-1;;;;;1894:28:2;;;;;;;;1933:9;:34;;-1:-1:-1;;;;;;1933:34:2;;;;;;;;;;;-1:-1:-1;620:5566: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:5566:2:-;;;;;;;" }, "gasEstimates": { "creation": { - "codeDepositCost": "948000", + "codeDepositCost": "944400", "executionCost": "infinite", "totalCost": "infinite" }, @@ -598,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\":\"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}", + "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\":\"0x6539396006d7e6026ab2400540be3063f410d784fb2da2cb173a19ffc582843d\",\"urls\":[\"bzzr://0a7fc440769cf939c984395489ca31b68e34822cabe58b6dd2e94466b5cf841c\"]},\"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": {} } @@ -2591,7 +2591,7 @@ "id": 100, "nodeType": "ImportDirective", "scope": 185, - "sourceUnit": 1162, + "sourceUnit": 1177, "src": "28:189:1", "symbolAliases": [], "unitAlias": "" @@ -2616,10 +2616,10 @@ "id": 101, "name": "Roles", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1161, + "referencedDeclaration": 1176, "src": "260:5:1", "typeDescriptions": { - "typeIdentifier": "t_contract$_Roles_$1161", + "typeIdentifier": "t_contract$_Roles_$1176", "typeString": "library Roles" } }, @@ -2630,10 +2630,10 @@ "id": 102, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1074, + "referencedDeclaration": 1089, "src": "270:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeIdentifier": "t_struct$_Role_$1089_storage_ptr", "typeString": "struct Roles.Role" } } @@ -2648,7 +2648,7 @@ "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage", + "typeIdentifier": "t_struct$_Role_$1089_storage", "typeString": "struct Roles.Role" }, "typeName": { @@ -2656,10 +2656,10 @@ "id": 104, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1074, + "referencedDeclaration": 1089, "src": "289:10:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeIdentifier": "t_struct$_Role_$1089_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -2684,7 +2684,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1517, + "referencedDeclaration": 1532, "src": "381:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -2792,7 +2792,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1517, + "referencedDeclaration": 1532, "src": "462:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -2858,10 +2858,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, + "referencedDeclaration": 1535, "src": "443:7:1", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", @@ -2946,7 +2946,7 @@ "referencedDeclaration": 105, "src": "584:16:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage", + "typeIdentifier": "t_struct$_Role_$1089_storage", "typeString": "struct Roles.Role storage ref" } }, @@ -2957,10 +2957,10 @@ "lValueRequested": false, "memberName": "has", "nodeType": "MemberAccess", - "referencedDeclaration": 1160, + "referencedDeclaration": 1175, "src": "584:20:1", "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_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$1089_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$1089_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, @@ -3220,7 +3220,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1517, + "referencedDeclaration": 1532, "src": "797:3:1", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -3347,7 +3347,7 @@ "referencedDeclaration": 105, "src": "883:16:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage", + "typeIdentifier": "t_struct$_Role_$1089_storage", "typeString": "struct Roles.Role storage ref" } }, @@ -3358,10 +3358,10 @@ "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1106, + "referencedDeclaration": 1121, "src": "883:20:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$1074_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$1074_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$1089_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$1089_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, @@ -3479,7 +3479,7 @@ "referencedDeclaration": 105, "src": "990:16:1", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage", + "typeIdentifier": "t_struct$_Role_$1089_storage", "typeString": "struct Roles.Role storage ref" } }, @@ -3490,10 +3490,10 @@ "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 1137, + "referencedDeclaration": 1152, "src": "990:23:1", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$1074_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$1074_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$1089_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$1089_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, @@ -3585,10 +3585,10 @@ "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoMiner.sol", "exportedSymbols": { "AlgoMiner": [ - 771 + 786 ] }, - "id": 772, + "id": 787, "nodeType": "SourceUnit", "nodes": [ { @@ -3606,8 +3606,8 @@ "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": 772, - "sourceUnit": 1359, + "scope": 787, + "sourceUnit": 1374, "src": "27:195:2", "symbolAliases": [], "unitAlias": "" @@ -3617,8 +3617,8 @@ "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": 772, - "sourceUnit": 1503, + "scope": 787, + "sourceUnit": 1518, "src": "224:198:2", "symbolAliases": [], "unitAlias": "" @@ -3628,8 +3628,8 @@ "file": "./IAlgoMiner.sol", "id": 189, "nodeType": "ImportDirective", - "scope": 772, - "sourceUnit": 1031, + "scope": 787, + "sourceUnit": 1046, "src": "426:26:2", "symbolAliases": [], "unitAlias": "" @@ -3639,7 +3639,7 @@ "file": "./AlgoCommon.sol", "id": 190, "nodeType": "ImportDirective", - "scope": 772, + "scope": 787, "sourceUnit": 98, "src": "454:26:2", "symbolAliases": [], @@ -3650,8 +3650,8 @@ "file": "./ERC20TokenHolder.sol", "id": 191, "nodeType": "ImportDirective", - "scope": 772, - "sourceUnit": 1003, + "scope": 787, + "sourceUnit": 1018, "src": "482:32:2", "symbolAliases": [], "unitAlias": "" @@ -3661,8 +3661,8 @@ "file": "./AlgoSystemRole.sol", "id": 192, "nodeType": "ImportDirective", - "scope": 772, - "sourceUnit": 946, + "scope": 787, + "sourceUnit": 961, "src": "516:30:2", "symbolAliases": [], "unitAlias": "" @@ -3672,7 +3672,7 @@ "file": "./AlgoCoreTeamRole.sol", "id": 193, "nodeType": "ImportDirective", - "scope": 772, + "scope": 787, "sourceUnit": 185, "src": "548:32:2", "symbolAliases": [], @@ -3683,8 +3683,8 @@ "file": "./AlgoSupervisorRole.sol", "id": 194, "nodeType": "ImportDirective", - "scope": 772, - "sourceUnit": 859, + "scope": 787, + "sourceUnit": 874, "src": "582:34:2", "symbolAliases": [], "unitAlias": "" @@ -3716,10 +3716,10 @@ "id": 197, "name": "ERC20TokenHolder", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1002, + "referencedDeclaration": 1017, "src": "654:16:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20TokenHolder_$1002", + "typeIdentifier": "t_contract$_ERC20TokenHolder_$1017", "typeString": "contract ERC20TokenHolder" } }, @@ -3734,10 +3734,10 @@ "id": 199, "name": "AlgoSystemRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 945, + "referencedDeclaration": 960, "src": "672:14:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_AlgoSystemRole_$945", + "typeIdentifier": "t_contract$_AlgoSystemRole_$960", "typeString": "contract AlgoSystemRole" } }, @@ -3770,10 +3770,10 @@ "id": 203, "name": "AlgoSupervisorRole", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 858, + "referencedDeclaration": 873, "src": "706:18:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_AlgoSupervisorRole_$858", + "typeIdentifier": "t_contract$_AlgoSupervisorRole_$873", "typeString": "contract AlgoSupervisorRole" } }, @@ -3788,10 +3788,10 @@ "id": 205, "name": "IAlgoMiner", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1030, + "referencedDeclaration": 1045, "src": "726:10:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IAlgoMiner_$1030", + "typeIdentifier": "t_contract$_IAlgoMiner_$1045", "typeString": "contract IAlgoMiner" } }, @@ -3801,26 +3801,26 @@ } ], "contractDependencies": [ - 1002, 97, - 1030, 184, - 945, - 858, - 1067 + 873, + 960, + 1017, + 1045, + 1082 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 771, + "id": 786, "linearizedBaseContracts": [ - 771, - 1030, - 858, + 786, + 1045, + 873, 184, - 945, - 1002, - 1067, + 960, + 1017, + 1082, 97 ], "name": "AlgoMiner", @@ -3833,10 +3833,10 @@ "id": 207, "name": "SafeERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1502, + "referencedDeclaration": 1517, "src": "750:9:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$1502", + "typeIdentifier": "t_contract$_SafeERC20_$1517", "typeString": "library SafeERC20" } }, @@ -3847,10 +3847,10 @@ "id": 208, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1358, + "referencedDeclaration": 1373, "src": "764:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } } @@ -3860,7 +3860,7 @@ "id": 212, "name": "DAYS_PER_YEAR", "nodeType": "VariableDeclaration", - "scope": 771, + "scope": 786, "src": "779:43:2", "stateVariable": true, "storageLocation": "default", @@ -3957,7 +3957,7 @@ "id": 222, "name": "_minerType", "nodeType": "VariableDeclaration", - "scope": 771, + "scope": 786, "src": "1015:28:2", "stateVariable": true, "storageLocation": "default", @@ -3985,7 +3985,7 @@ "id": 224, "name": "_category", "nodeType": "VariableDeclaration", - "scope": 771, + "scope": 786, "src": "1050:23:2", "stateVariable": true, "storageLocation": "default", @@ -4011,7 +4011,7 @@ "id": 226, "name": "_miner", "nodeType": "VariableDeclaration", - "scope": 771, + "scope": 786, "src": "1080:22:2", "stateVariable": true, "storageLocation": "default", @@ -4037,7 +4037,7 @@ "id": 228, "name": "_referral", "nodeType": "VariableDeclaration", - "scope": 771, + "scope": 786, "src": "1109:25:2", "stateVariable": true, "storageLocation": "default", @@ -4063,7 +4063,7 @@ "id": 230, "name": "_state", "nodeType": "VariableDeclaration", - "scope": 771, + "scope": 786, "src": "1143:25:2", "stateVariable": true, "storageLocation": "default", @@ -4091,7 +4091,7 @@ "id": 232, "name": "_mining", "nodeType": "VariableDeclaration", - "scope": 771, + "scope": 786, "src": "1175:20:2", "stateVariable": true, "storageLocation": "default", @@ -4117,7 +4117,7 @@ "id": 234, "name": "_currentYear", "nodeType": "VariableDeclaration", - "scope": 771, + "scope": 786, "src": "1202:26:2", "stateVariable": true, "storageLocation": "default", @@ -4143,7 +4143,7 @@ "id": 236, "name": "_currentDay", "nodeType": "VariableDeclaration", - "scope": 771, + "scope": 786, "src": "1235:26:2", "stateVariable": true, "storageLocation": "default", @@ -4169,7 +4169,7 @@ "id": 238, "name": "_currentYearSupply", "nodeType": "VariableDeclaration", - "scope": 771, + "scope": 786, "src": "1268:34:2", "stateVariable": true, "storageLocation": "default", @@ -4192,9 +4192,9 @@ }, { "body": { - "id": 286, + "id": 308, "nodeType": "Block", - "src": "1583:218:2", + "src": "1583:392:2", "statements": [ { "expression": { @@ -4331,10 +4331,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, + "referencedDeclaration": 1535, "src": "1604:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", @@ -4362,19 +4362,357 @@ { "expression": { "argumentTypes": null, - "id": 272, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 271, + "name": "minerAccountAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 244, + "src": "1662:19:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 273, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1693: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": 272, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1685:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1685:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1662:33:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 270, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1535, + 1536 + ], + "referencedDeclaration": 1535, + "src": "1654:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1654:42:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 277, + "nodeType": "ExpressionStatement", + "src": "1654:42:2" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_MinerType_$215", + "typeString": "enum AlgoMiner.MinerType" + }, + "id": 281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 278, + "name": "minerType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 240, + "src": "1712:9:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerType_$215", + "typeString": "enum AlgoMiner.MinerType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 279, + "name": "MinerType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "1725:9:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_MinerType_$215_$", + "typeString": "type(enum AlgoMiner.MinerType)" + } + }, + "id": 280, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "PoolBased", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1725:19:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_MinerType_$215", + "typeString": "enum AlgoMiner.MinerType" + } + }, + "src": "1712:32:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 291, + "nodeType": "IfStatement", + "src": "1709:109:2", + "trueBody": { + "id": 290, + "nodeType": "Block", + "src": "1746:72:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 283, + "name": "referralAccountAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "1769:22:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 285, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1803: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": 284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1795:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 286, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1795:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1769:36:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 282, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1535, + 1536 + ], + "referencedDeclaration": 1535, + "src": "1761:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1761:45:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 289, + "nodeType": "ExpressionStatement", + "src": "1761:45:2" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 294, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 270, + "id": 292, "name": "_minerType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 222, - "src": "1656:10:2", + "src": "1830:10:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerType_$215", "typeString": "enum AlgoMiner.MinerType" @@ -4384,43 +4722,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 271, + "id": 293, "name": "minerType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 240, - "src": "1669:9:2", + "src": "1843:9:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerType_$215", "typeString": "enum AlgoMiner.MinerType" } }, - "src": "1656:22:2", + "src": "1830:22:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerType_$215", "typeString": "enum AlgoMiner.MinerType" } }, - "id": 273, + "id": 295, "nodeType": "ExpressionStatement", - "src": "1656:22:2" + "src": "1830:22:2" }, { "expression": { "argumentTypes": null, - "id": 276, + "id": 298, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 274, + "id": 296, "name": "_category", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 224, - "src": "1689:9:2", + "src": "1863:9:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4430,43 +4768,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 275, + "id": 297, "name": "category", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 242, - "src": "1701:8:2", + "src": "1875:8:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "1689:20:2", + "src": "1863:20:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 277, + "id": 299, "nodeType": "ExpressionStatement", - "src": "1689:20:2" + "src": "1863:20:2" }, { "expression": { "argumentTypes": null, - "id": 280, + "id": 302, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 278, + "id": 300, "name": "_miner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 226, - "src": "1720:6:2", + "src": "1894:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4476,43 +4814,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 279, + "id": 301, "name": "minerAccountAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 244, - "src": "1729:19:2", + "src": "1903:19:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1720:28:2", + "src": "1894:28:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 281, + "id": 303, "nodeType": "ExpressionStatement", - "src": "1720:28:2" + "src": "1894:28:2" }, { "expression": { "argumentTypes": null, - "id": 284, + "id": 306, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 282, + "id": 304, "name": "_referral", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 228, - "src": "1759:9:2", + "src": "1933:9:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4522,31 +4860,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 283, + "id": 305, "name": "referralAccountAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 246, - "src": "1771:22:2", + "src": "1945:22:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1759:34:2", + "src": "1933:34:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 285, + "id": 307, "nodeType": "ExpressionStatement", - "src": "1759:34:2" + "src": "1933:34:2" } ] }, "documentation": null, - "id": 287, + "id": 309, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -4574,10 +4912,10 @@ "name": "ERC20TokenHolder", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1002, + "referencedDeclaration": 1017, "src": "1452:16:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20TokenHolder_$1002_$", + "typeIdentifier": "t_type$_t_contract$_ERC20TokenHolder_$1017_$", "typeString": "type(contract ERC20TokenHolder)" } }, @@ -4593,10 +4931,10 @@ "name": "AlgoSystemRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 945, + "referencedDeclaration": 960, "src": "1492:14:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_AlgoSystemRole_$945_$", + "typeIdentifier": "t_type$_t_contract$_AlgoSystemRole_$960_$", "typeString": "type(contract AlgoSystemRole)" } }, @@ -4631,10 +4969,10 @@ "name": "AlgoSupervisorRole", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 858, + "referencedDeclaration": 873, "src": "1546:18:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_AlgoSupervisorRole_$858_$", + "typeIdentifier": "t_type$_t_contract$_AlgoSupervisorRole_$873_$", "typeString": "type(contract AlgoSupervisorRole)" } }, @@ -4653,7 +4991,7 @@ "id": 240, "name": "minerType", "nodeType": "VariableDeclaration", - "scope": 287, + "scope": 309, "src": "1323:19:2", "stateVariable": false, "storageLocation": "default", @@ -4681,7 +5019,7 @@ "id": 242, "name": "category", "nodeType": "VariableDeclaration", - "scope": 287, + "scope": 309, "src": "1344:14:2", "stateVariable": false, "storageLocation": "default", @@ -4707,7 +5045,7 @@ "id": 244, "name": "minerAccountAddress", "nodeType": "VariableDeclaration", - "scope": 287, + "scope": 309, "src": "1360:27:2", "stateVariable": false, "storageLocation": "default", @@ -4733,7 +5071,7 @@ "id": 246, "name": "referralAccountAddress", "nodeType": "VariableDeclaration", - "scope": 287, + "scope": 309, "src": "1389:30:2", "stateVariable": false, "storageLocation": "default", @@ -4759,7 +5097,7 @@ "id": 248, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 287, + "scope": 309, "src": "1421:20:2", "stateVariable": false, "storageLocation": "default", @@ -4790,17 +5128,17 @@ "parameters": [], "src": "1583:0:2" }, - "scope": 771, - "src": "1311:490:2", + "scope": 786, + "src": "1311:664:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 297, + "id": 319, "nodeType": "Block", - "src": "1830:60:2", + "src": "2004:60:2", "statements": [ { "expression": { @@ -4812,7 +5150,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 293, + "id": 315, "isConstant": false, "isLValue": false, "isPure": false, @@ -4821,18 +5159,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 290, + "id": 312, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1517, - "src": "1849:3:2", + "referencedDeclaration": 1532, + "src": "2023:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 291, + "id": 313, "isConstant": false, "isLValue": false, "isPure": false, @@ -4840,7 +5178,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1849:10:2", + "src": "2023:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4850,18 +5188,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 292, + "id": 314, "name": "_miner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 226, - "src": "1863:6:2", + "src": "2037:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1849:20:2", + "src": "2023:20:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4875,21 +5213,21 @@ "typeString": "bool" } ], - "id": 289, + "id": 311, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, - "src": "1841:7:2", + "referencedDeclaration": 1535, + "src": "2015:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 294, + "id": 316, "isConstant": false, "isLValue": false, "isPure": false, @@ -4897,41 +5235,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1841:29:2", + "src": "2015:29:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 295, + "id": 317, "nodeType": "ExpressionStatement", - "src": "1841:29:2" + "src": "2015:29:2" }, { - "id": 296, + "id": 318, "nodeType": "PlaceholderStatement", - "src": "1881:1:2" + "src": "2055:1:2" } ] }, "documentation": null, - "id": 298, + "id": 320, "name": "onlyMiner", "nodeType": "ModifierDefinition", "parameters": { - "id": 288, + "id": 310, "nodeType": "ParameterList", "parameters": [], - "src": "1827:2:2" + "src": "2001:2:2" }, - "src": "1809:81:2", + "src": "1983:81:2", "visibility": "internal" }, { "body": { - "id": 364, + "id": 386, "nodeType": "Block", - "src": "1961:512:2", + "src": "2135:512:2", "statements": [ { "expression": { @@ -4943,19 +5281,19 @@ "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" }, - "id": 309, + "id": 331, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 306, + "id": 328, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 230, - "src": "1980:6:2", + "src": "2154:6:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" @@ -4967,18 +5305,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 307, + "id": 329, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 220, - "src": "1990:10:2", + "src": "2164:10:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 308, + "id": 330, "isConstant": false, "isLValue": false, "isPure": true, @@ -4986,13 +5324,13 @@ "memberName": "Deactivated", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1990:22:2", + "src": "2164:22:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "1980:32:2", + "src": "2154:32:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5006,21 +5344,21 @@ "typeString": "bool" } ], - "id": 305, + "id": 327, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, - "src": "1972:7:2", + "referencedDeclaration": 1535, + "src": "2146:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 310, + "id": 332, "isConstant": false, "isLValue": false, "isPure": false, @@ -5028,15 +5366,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1972:41:2", + "src": "2146:41:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 311, + "id": 333, "nodeType": "ExpressionStatement", - "src": "1972:41:2" + "src": "2146:41:2" }, { "condition": { @@ -5045,7 +5383,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 319, + "id": 341, "isConstant": false, "isLValue": false, "isPure": false, @@ -5056,19 +5394,19 @@ "typeIdentifier": "t_enum$_MinerType_$215", "typeString": "enum AlgoMiner.MinerType" }, - "id": 315, + "id": 337, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 312, + "id": 334, "name": "_minerType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 222, - "src": "2029:10:2", + "src": "2203:10:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerType_$215", "typeString": "enum AlgoMiner.MinerType" @@ -5080,18 +5418,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 313, + "id": 335, "name": "MinerType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 215, - "src": "2043:9:2", + "src": "2217:9:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MinerType_$215_$", "typeString": "type(enum AlgoMiner.MinerType)" } }, - "id": 314, + "id": 336, "isConstant": false, "isLValue": false, "isPure": true, @@ -5099,13 +5437,13 @@ "memberName": "PoolBased", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2043:19:2", + "src": "2217:19:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerType_$215", "typeString": "enum AlgoMiner.MinerType" } }, - "src": "2029:33:2", + "src": "2203:33:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5119,19 +5457,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 318, + "id": 340, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 316, + "id": 338, "name": "_currentYearSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 238, - "src": "2066:18:2", + "src": "2240:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5142,14 +5480,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 317, + "id": 339, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2088:1:2", + "src": "2262:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5157,39 +5495,39 @@ }, "value": "0" }, - "src": "2066:23:2", + "src": "2240:23:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2029:60:2", + "src": "2203:60:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 358, + "id": 380, "nodeType": "IfStatement", - "src": "2026:398:2", + "src": "2200:398:2", "trueBody": { - "id": 357, + "id": 379, "nodeType": "Block", - "src": "2091:333:2", + "src": "2265:333:2", "statements": [ { "assignments": [ - 321 + 343 ], "declarations": [ { "constant": false, - "id": 321, + "id": 343, "name": "capacity", "nodeType": "VariableDeclaration", - "scope": 365, - "src": "2108:16:2", + "scope": 387, + "src": "2282:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5197,10 +5535,10 @@ "typeString": "uint256" }, "typeName": { - "id": 320, + "id": 342, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2108:7:2", + "src": "2282:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5210,18 +5548,18 @@ "visibility": "internal" } ], - "id": 325, + "id": 347, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 323, + "id": 345, "name": "_category", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 224, - "src": "2149:9:2", + "src": "2323:9:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5235,18 +5573,18 @@ "typeString": "uint8" } ], - "id": 322, + "id": 344, "name": "getCapacityByCategory", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 96, - "src": "2127:21:2", + "src": "2301:21:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint8_$returns$_t_uint256_$", "typeString": "function (uint8) pure returns (uint256)" } }, - "id": 324, + "id": 346, "isConstant": false, "isLValue": false, "isPure": false, @@ -5254,27 +5592,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2127:32:2", + "src": "2301:32:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2108:51:2" + "src": "2282:51:2" }, { "assignments": [ - 327 + 349 ], "declarations": [ { "constant": false, - "id": 327, + "id": 349, "name": "expectedBalance", "nodeType": "VariableDeclaration", - "scope": 365, - "src": "2174:23:2", + "scope": 387, + "src": "2348:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5282,10 +5620,10 @@ "typeString": "uint256" }, "typeName": { - "id": 326, + "id": 348, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2174:7:2", + "src": "2348:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5295,26 +5633,26 @@ "visibility": "internal" } ], - "id": 335, + "id": 357, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 334, + "id": 356, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 328, + "id": 350, "name": "capacity", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "2200:8:2", + "referencedDeclaration": 343, + "src": "2374:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5328,7 +5666,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 333, + "id": 355, "isConstant": false, "isLValue": false, "isPure": false, @@ -5339,19 +5677,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 331, + "id": 353, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 329, + "id": 351, "name": "capacity", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "2211:8:2", + "referencedDeclaration": 343, + "src": "2385:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5362,14 +5700,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "3130", - "id": 330, + "id": 352, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2222:2:2", + "src": "2396:2:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", @@ -5377,7 +5715,7 @@ }, "value": "10" }, - "src": "2211:13:2", + "src": "2385:13:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5388,14 +5726,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "313030", - "id": 332, + "id": 354, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2227:3:2", + "src": "2401:3:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", @@ -5403,33 +5741,33 @@ }, "value": "100" }, - "src": "2211:19:2", + "src": "2385:19:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2200:30:2", + "src": "2374:30:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2174:56:2" + "src": "2348:56:2" }, { "assignments": [ - 337 + 359 ], "declarations": [ { "constant": false, - "id": 337, + "id": 359, "name": "currentBalance", "nodeType": "VariableDeclaration", - "scope": 365, - "src": "2247:22:2", + "scope": 387, + "src": "2421:22:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5437,10 +5775,10 @@ "typeString": "uint256" }, "typeName": { - "id": 336, + "id": 358, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2247:7:2", + "src": "2421:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5450,7 +5788,7 @@ "visibility": "internal" } ], - "id": 344, + "id": 366, "initialValue": { "argumentTypes": null, "arguments": [ @@ -5459,14 +5797,14 @@ "arguments": [ { "argumentTypes": null, - "id": 341, + "id": 363, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1552, - "src": "2297:4:2", + "referencedDeclaration": 1567, + "src": "2471:4:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_AlgoMiner_$771", + "typeIdentifier": "t_contract$_AlgoMiner_$786", "typeString": "contract AlgoMiner" } } @@ -5474,24 +5812,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_AlgoMiner_$771", + "typeIdentifier": "t_contract$_AlgoMiner_$786", "typeString": "contract AlgoMiner" } ], - "id": 340, + "id": 362, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2289:7:2", + "src": "2463:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 342, + "id": 364, "isConstant": false, "isLValue": false, "isPure": false, @@ -5499,7 +5837,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2289:13:2", + "src": "2463:13:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5515,32 +5853,32 @@ ], "expression": { "argumentTypes": null, - "id": 338, + "id": 360, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 957, - "src": "2272:6:2", + "referencedDeclaration": 972, + "src": "2446:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } }, - "id": 339, + "id": 361, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 1303, - "src": "2272:16:2", + "referencedDeclaration": 1318, + "src": "2446:16:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 343, + "id": 365, "isConstant": false, "isLValue": false, "isPure": false, @@ -5548,14 +5886,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2272:31:2", + "src": "2446:31:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2247:56:2" + "src": "2421:56:2" }, { "expression": { @@ -5567,19 +5905,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 348, + "id": 370, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 346, + "id": 368, "name": "currentBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 337, - "src": "2328:14:2", + "referencedDeclaration": 359, + "src": "2502:14:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5589,18 +5927,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 347, + "id": 369, "name": "expectedBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 327, - "src": "2346:15:2", + "referencedDeclaration": 349, + "src": "2520:15:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2328:33:2", + "src": "2502:33:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5614,21 +5952,21 @@ "typeString": "bool" } ], - "id": 345, + "id": 367, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, - "src": "2320:7:2", + "referencedDeclaration": 1535, + "src": "2494:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 349, + "id": 371, "isConstant": false, "isLValue": false, "isPure": false, @@ -5636,32 +5974,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2320:42:2", + "src": "2494:42:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 350, + "id": 372, "nodeType": "ExpressionStatement", - "src": "2320:42:2" + "src": "2494:42:2" }, { "expression": { "argumentTypes": null, - "id": 355, + "id": 377, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 351, + "id": 373, "name": "_currentYearSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 238, - "src": "2379:18:2", + "src": "2553:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5675,19 +6013,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 354, + "id": 376, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 352, + "id": 374, "name": "capacity", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 321, - "src": "2400:8:2", + "referencedDeclaration": 343, + "src": "2574:8:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5698,14 +6036,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 353, + "id": 375, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2411:1:2", + "src": "2585:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -5713,21 +6051,21 @@ }, "value": "2" }, - "src": "2400:12:2", + "src": "2574:12:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2379:33:2", + "src": "2553:33:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 356, + "id": 378, "nodeType": "ExpressionStatement", - "src": "2379:33:2" + "src": "2553:33:2" } ] } @@ -5735,19 +6073,19 @@ { "expression": { "argumentTypes": null, - "id": 362, + "id": 384, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 359, + "id": 381, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 230, - "src": "2436:6:2", + "src": "2610:6:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" @@ -5759,18 +6097,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 360, + "id": 382, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 220, - "src": "2445:10:2", + "src": "2619:10:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 361, + "id": 383, "isConstant": false, "isLValue": false, "isPure": true, @@ -5778,95 +6116,95 @@ "memberName": "Activated", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2445:20:2", + "src": "2619:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "2436:29:2", + "src": "2610:29:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "id": 363, + "id": 385, "nodeType": "ExpressionStatement", - "src": "2436:29:2" + "src": "2610:29:2" } ] }, "documentation": null, - "id": 365, + "id": 387, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 301, + "id": 323, "modifierName": { "argumentTypes": null, - "id": 300, + "id": 322, "name": "notTerminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1058, - "src": "1934:13:2", + "referencedDeclaration": 1073, + "src": "2108:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1934:13:2" + "src": "2108:13:2" }, { "arguments": null, - "id": 303, + "id": 325, "modifierName": { "argumentTypes": null, - "id": 302, + "id": 324, "name": "onlyCoreTeam", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 125, - "src": "1948:12:2", + "src": "2122:12:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1948:12:2" + "src": "2122:12:2" } ], "name": "activateMiner", "nodeType": "FunctionDefinition", "parameters": { - "id": 299, + "id": 321, "nodeType": "ParameterList", "parameters": [], - "src": "1924:2:2" + "src": "2098:2:2" }, "payable": false, "returnParameters": { - "id": 304, + "id": 326, "nodeType": "ParameterList", "parameters": [], - "src": "1961:0:2" + "src": "2135:0:2" }, - "scope": 771, - "src": "1902:571:2", + "scope": 786, + "src": "2076:571:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 388, + "id": 410, "nodeType": "Block", - "src": "2542:138:2", + "src": "2716:138:2", "statements": [ { "expression": { @@ -5878,19 +6216,19 @@ "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" }, - "id": 376, + "id": 398, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 373, + "id": 395, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 230, - "src": "2561:6:2", + "src": "2735:6:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" @@ -5902,18 +6240,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 374, + "id": 396, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 220, - "src": "2571:10:2", + "src": "2745:10:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 375, + "id": 397, "isConstant": false, "isLValue": false, "isPure": true, @@ -5921,13 +6259,13 @@ "memberName": "Deactivated", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2571:22:2", + "src": "2745:22:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "2561:32:2", + "src": "2735:32:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5941,21 +6279,21 @@ "typeString": "bool" } ], - "id": 372, + "id": 394, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, - "src": "2553:7:2", + "referencedDeclaration": 1535, + "src": "2727:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 377, + "id": 399, "isConstant": false, "isLValue": false, "isPure": false, @@ -5963,32 +6301,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2553:41:2", + "src": "2727:41:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 378, + "id": 400, "nodeType": "ExpressionStatement", - "src": "2553:41:2" + "src": "2727:41:2" }, { "expression": { "argumentTypes": null, - "id": 382, + "id": 404, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 379, + "id": 401, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 230, - "src": "2615:6:2", + "src": "2789:6:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" @@ -6000,18 +6338,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 380, + "id": 402, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 220, - "src": "2624:10:2", + "src": "2798:10:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 381, + "id": 403, "isConstant": false, "isLValue": false, "isPure": true, @@ -6019,38 +6357,38 @@ "memberName": "Deactivated", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2624:22:2", + "src": "2798:22:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "2615:31:2", + "src": "2789:31:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "id": 383, + "id": 405, "nodeType": "ExpressionStatement", - "src": "2615:31:2" + "src": "2789:31:2" }, { "expression": { "argumentTypes": null, - "id": 386, + "id": 408, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 384, + "id": 406, "name": "_mining", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 232, - "src": "2657:7:2", + "src": "2831:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6061,14 +6399,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 385, + "id": 407, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2667:5:2", + "src": "2841:5:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6076,89 +6414,89 @@ }, "value": "false" }, - "src": "2657:15:2", + "src": "2831:15:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 387, + "id": 409, "nodeType": "ExpressionStatement", - "src": "2657:15:2" + "src": "2831:15:2" } ] }, "documentation": null, - "id": 389, + "id": 411, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 368, + "id": 390, "modifierName": { "argumentTypes": null, - "id": 367, + "id": 389, "name": "notTerminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1058, - "src": "2515:13:2", + "referencedDeclaration": 1073, + "src": "2689:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2515:13:2" + "src": "2689:13:2" }, { "arguments": null, - "id": 370, + "id": 392, "modifierName": { "argumentTypes": null, - "id": 369, + "id": 391, "name": "onlyCoreTeam", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 125, - "src": "2529:12:2", + "src": "2703:12:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2529:12:2" + "src": "2703:12:2" } ], "name": "deactivateMiner", "nodeType": "FunctionDefinition", "parameters": { - "id": 366, + "id": 388, "nodeType": "ParameterList", "parameters": [], - "src": "2505:2:2" + "src": "2679:2:2" }, "payable": false, "returnParameters": { - "id": 371, + "id": 393, "nodeType": "ParameterList", "parameters": [], - "src": "2542:0:2" + "src": "2716:0:2" }, - "scope": 771, - "src": "2481:199:2", + "scope": 786, + "src": "2655:199:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 415, + "id": 437, "nodeType": "Block", - "src": "2755:142:2", + "src": "2929:142:2", "statements": [ { "expression": { @@ -6170,19 +6508,19 @@ "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" }, - "id": 400, + "id": 422, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 397, + "id": 419, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 230, - "src": "2774:6:2", + "src": "2948:6:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" @@ -6194,18 +6532,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 398, + "id": 420, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 220, - "src": "2784:10:2", + "src": "2958:10:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 399, + "id": 421, "isConstant": false, "isLValue": false, "isPure": true, @@ -6213,13 +6551,13 @@ "memberName": "Deactivated", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2784:22:2", + "src": "2958:22:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "2774:32:2", + "src": "2948:32:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6233,21 +6571,21 @@ "typeString": "bool" } ], - "id": 396, + "id": 418, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, - "src": "2766:7:2", + "referencedDeclaration": 1535, + "src": "2940:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 401, + "id": 423, "isConstant": false, "isLValue": false, "isPure": false, @@ -6255,15 +6593,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2766:41:2", + "src": "2940:41:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 402, + "id": 424, "nodeType": "ExpressionStatement", - "src": "2766:41:2" + "src": "2940:41:2" }, { "expression": { @@ -6271,12 +6609,12 @@ "arguments": [ { "argumentTypes": null, - "id": 406, + "id": 428, "name": "newMinerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 391, - "src": "2840:15:2", + "referencedDeclaration": 413, + "src": "3014:15:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6290,14 +6628,14 @@ "arguments": [ { "argumentTypes": null, - "id": 410, + "id": 432, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1552, - "src": "2882:4:2", + "referencedDeclaration": 1567, + "src": "3056:4:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_AlgoMiner_$771", + "typeIdentifier": "t_contract$_AlgoMiner_$786", "typeString": "contract AlgoMiner" } } @@ -6305,24 +6643,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_AlgoMiner_$771", + "typeIdentifier": "t_contract$_AlgoMiner_$786", "typeString": "contract AlgoMiner" } ], - "id": 409, + "id": 431, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2874:7:2", + "src": "3048:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 411, + "id": 433, "isConstant": false, "isLValue": false, "isPure": false, @@ -6330,7 +6668,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2874:13:2", + "src": "3048:13:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6346,32 +6684,32 @@ ], "expression": { "argumentTypes": null, - "id": 407, + "id": 429, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 957, - "src": "2857:6:2", + "referencedDeclaration": 972, + "src": "3031:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } }, - "id": 408, + "id": 430, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 1303, - "src": "2857:16:2", + "referencedDeclaration": 1318, + "src": "3031:16:2", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 412, + "id": 434, "isConstant": false, "isLValue": false, "isPure": false, @@ -6379,7 +6717,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2857:31:2", + "src": "3031:31:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6399,32 +6737,32 @@ ], "expression": { "argumentTypes": null, - "id": 403, + "id": 425, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 957, - "src": "2820:6:2", + "referencedDeclaration": 972, + "src": "2994:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } }, - "id": 405, + "id": 427, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 1383, - "src": "2820:19:2", + "referencedDeclaration": 1398, + "src": "2994:19:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1358_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$1358_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1373_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$1373_$", "typeString": "function (contract IERC20,address,uint256)" } }, - "id": 413, + "id": 435, "isConstant": false, "isLValue": false, "isPure": false, @@ -6432,57 +6770,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2820:69:2", + "src": "2994:69:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 414, + "id": 436, "nodeType": "ExpressionStatement", - "src": "2820:69:2" + "src": "2994:69:2" } ] }, "documentation": null, - "id": 416, + "id": 438, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 394, + "id": 416, "modifierName": { "argumentTypes": null, - "id": 393, + "id": 415, "name": "onlyCoreTeam", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 125, - "src": "2742:12:2", + "src": "2916:12:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2742:12:2" + "src": "2916:12:2" } ], "name": "migrateMiner", "nodeType": "FunctionDefinition", "parameters": { - "id": 392, + "id": 414, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 391, + "id": 413, "name": "newMinerAddress", "nodeType": "VariableDeclaration", - "scope": 416, - "src": "2710:23:2", + "scope": 438, + "src": "2884:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6490,10 +6828,10 @@ "typeString": "address" }, "typeName": { - "id": 390, + "id": 412, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2710:7:2", + "src": "2884:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6503,26 +6841,26 @@ "visibility": "internal" } ], - "src": "2709:25:2" + "src": "2883:25:2" }, "payable": false, "returnParameters": { - "id": 395, + "id": 417, "nodeType": "ParameterList", "parameters": [], - "src": "2755:0:2" + "src": "2929:0:2" }, - "scope": 771, - "src": "2688:209:2", + "scope": 786, + "src": "2862:209:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 435, + "id": 457, "nodeType": "Block", - "src": "2964:108:2", + "src": "3138:108:2", "statements": [ { "expression": { @@ -6534,19 +6872,19 @@ "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" }, - "id": 427, + "id": 449, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 424, + "id": 446, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 230, - "src": "2983:6:2", + "src": "3157:6:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" @@ -6558,18 +6896,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 425, + "id": 447, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 220, - "src": "2993:10:2", + "src": "3167:10:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 426, + "id": 448, "isConstant": false, "isLValue": false, "isPure": true, @@ -6577,13 +6915,13 @@ "memberName": "Activated", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2993:20:2", + "src": "3167:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "2983:30:2", + "src": "3157:30:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6597,21 +6935,21 @@ "typeString": "bool" } ], - "id": 423, + "id": 445, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, - "src": "2975:7:2", + "referencedDeclaration": 1535, + "src": "3149:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 428, + "id": 450, "isConstant": false, "isLValue": false, "isPure": false, @@ -6619,32 +6957,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2975:39:2", + "src": "3149:39:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 429, + "id": 451, "nodeType": "ExpressionStatement", - "src": "2975:39:2" + "src": "3149:39:2" }, { "expression": { "argumentTypes": null, - "id": 433, + "id": 455, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 430, + "id": 452, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 230, - "src": "3035:6:2", + "src": "3209:6:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" @@ -6656,18 +6994,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 431, + "id": 453, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 220, - "src": "3044:10:2", + "src": "3218:10:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 432, + "id": 454, "isConstant": false, "isLValue": false, "isPure": true, @@ -6675,95 +7013,95 @@ "memberName": "Suspended", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3044:20:2", + "src": "3218:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "3035:29:2", + "src": "3209:29:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "id": 434, + "id": 456, "nodeType": "ExpressionStatement", - "src": "3035:29:2" + "src": "3209:29:2" } ] }, "documentation": null, - "id": 436, + "id": 458, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 419, + "id": 441, "modifierName": { "argumentTypes": null, - "id": 418, + "id": 440, "name": "notTerminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1058, - "src": "2935:13:2", + "referencedDeclaration": 1073, + "src": "3109:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2935:13:2" + "src": "3109:13:2" }, { "arguments": null, - "id": 421, + "id": 443, "modifierName": { "argumentTypes": null, - "id": 420, + "id": 442, "name": "onlySupervisor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "2949:14:2", + "referencedDeclaration": 814, + "src": "3123:14:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2949:14:2" + "src": "3123:14:2" } ], "name": "pauseMining", "nodeType": "FunctionDefinition", "parameters": { - "id": 417, + "id": 439, "nodeType": "ParameterList", "parameters": [], - "src": "2925:2:2" + "src": "3099:2:2" }, "payable": false, "returnParameters": { - "id": 422, + "id": 444, "nodeType": "ParameterList", "parameters": [], - "src": "2964:0:2" + "src": "3138:0:2" }, - "scope": 771, - "src": "2905:167:2", + "scope": 786, + "src": "3079:167:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 455, + "id": 477, "nodeType": "Block", - "src": "3140:100:2", + "src": "3314:100:2", "statements": [ { "expression": { @@ -6775,19 +7113,19 @@ "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" }, - "id": 447, + "id": 469, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 444, + "id": 466, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 230, - "src": "3159:6:2", + "src": "3333:6:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" @@ -6799,18 +7137,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 445, + "id": 467, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 220, - "src": "3169:10:2", + "src": "3343:10:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 446, + "id": 468, "isConstant": false, "isLValue": false, "isPure": true, @@ -6818,13 +7156,13 @@ "memberName": "Suspended", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3169:20:2", + "src": "3343:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "3159:30:2", + "src": "3333:30:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6838,21 +7176,21 @@ "typeString": "bool" } ], - "id": 443, + "id": 465, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, - "src": "3151:7:2", + "referencedDeclaration": 1535, + "src": "3325:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 448, + "id": 470, "isConstant": false, "isLValue": false, "isPure": false, @@ -6860,32 +7198,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3151:39:2", + "src": "3325:39:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 449, + "id": 471, "nodeType": "ExpressionStatement", - "src": "3151:39:2" + "src": "3325:39:2" }, { "expression": { "argumentTypes": null, - "id": 453, + "id": 475, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 450, + "id": 472, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 230, - "src": "3203:6:2", + "src": "3377:6:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" @@ -6897,18 +7235,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 451, + "id": 473, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 220, - "src": "3212:10:2", + "src": "3386:10:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 452, + "id": 474, "isConstant": false, "isLValue": false, "isPure": true, @@ -6916,95 +7254,95 @@ "memberName": "Activated", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3212:20:2", + "src": "3386:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "3203:29:2", + "src": "3377:29:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "id": 454, + "id": 476, "nodeType": "ExpressionStatement", - "src": "3203:29:2" + "src": "3377:29:2" } ] }, "documentation": null, - "id": 456, + "id": 478, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 439, + "id": 461, "modifierName": { "argumentTypes": null, - "id": 438, + "id": 460, "name": "notTerminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1058, - "src": "3111:13:2", + "referencedDeclaration": 1073, + "src": "3285:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3111:13:2" + "src": "3285:13:2" }, { "arguments": null, - "id": 441, + "id": 463, "modifierName": { "argumentTypes": null, - "id": 440, + "id": 462, "name": "onlySupervisor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "3125:14:2", + "referencedDeclaration": 814, + "src": "3299:14:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3125:14:2" + "src": "3299:14:2" } ], "name": "resumeMining", "nodeType": "FunctionDefinition", "parameters": { - "id": 437, + "id": 459, "nodeType": "ParameterList", "parameters": [], - "src": "3101:2:2" + "src": "3275:2:2" }, "payable": false, "returnParameters": { - "id": 442, + "id": 464, "nodeType": "ParameterList", "parameters": [], - "src": "3140:0:2" + "src": "3314:0:2" }, - "scope": 771, - "src": "3080:160:2", + "scope": 786, + "src": "3254:160:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 491, + "id": 513, "nodeType": "Block", - "src": "3318:193:2", + "src": "3492:193:2", "statements": [ { "expression": { @@ -7016,19 +7354,19 @@ "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" }, - "id": 467, + "id": 489, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 464, + "id": 486, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 230, - "src": "3337:6:2", + "src": "3511:6:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" @@ -7040,18 +7378,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 465, + "id": 487, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 220, - "src": "3347:10:2", + "src": "3521:10:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 466, + "id": 488, "isConstant": false, "isLValue": false, "isPure": true, @@ -7059,13 +7397,13 @@ "memberName": "Stopped", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3347:18:2", + "src": "3521:18:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "3337:28:2", + "src": "3511:28:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7079,21 +7417,21 @@ "typeString": "bool" } ], - "id": 463, + "id": 485, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, - "src": "3329:7:2", + "referencedDeclaration": 1535, + "src": "3503:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 468, + "id": 490, "isConstant": false, "isLValue": false, "isPure": false, @@ -7101,32 +7439,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3329:37:2", + "src": "3503:37:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 469, + "id": 491, "nodeType": "ExpressionStatement", - "src": "3329:37:2" + "src": "3503:37:2" }, { "expression": { "argumentTypes": null, - "id": 473, + "id": 495, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 470, + "id": 492, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 230, - "src": "3387:6:2", + "src": "3561:6:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" @@ -7138,18 +7476,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 471, + "id": 493, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 220, - "src": "3396:10:2", + "src": "3570:10:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 472, + "id": 494, "isConstant": false, "isLValue": false, "isPure": true, @@ -7157,38 +7495,38 @@ "memberName": "Stopped", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3396:18:2", + "src": "3570:18:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "3387:27:2", + "src": "3561:27:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "id": 474, + "id": 496, "nodeType": "ExpressionStatement", - "src": "3387:27:2" + "src": "3561:27:2" }, { "expression": { "argumentTypes": null, - "id": 477, + "id": 499, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 475, + "id": 497, "name": "_mining", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 232, - "src": "3425:7:2", + "src": "3599:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7199,14 +7537,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 476, + "id": 498, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3435:5:2", + "src": "3609:5:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7214,32 +7552,32 @@ }, "value": "false" }, - "src": "3425:15:2", + "src": "3599:15:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 478, + "id": 500, "nodeType": "ExpressionStatement", - "src": "3425:15:2" + "src": "3599:15:2" }, { "expression": { "argumentTypes": null, - "id": 483, + "id": 505, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 479, + "id": 501, "name": "_miner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 226, - "src": "3451:6:2", + "src": "3625:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7253,14 +7591,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 481, + "id": 503, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3468:1:2", + "src": "3642:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7276,20 +7614,20 @@ "typeString": "int_const 0" } ], - "id": 480, + "id": 502, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3460:7:2", + "src": "3634:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 482, + "id": 504, "isConstant": false, "isLValue": false, "isPure": true, @@ -7297,38 +7635,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3460:10:2", + "src": "3634:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3451:19:2", + "src": "3625:19:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 484, + "id": 506, "nodeType": "ExpressionStatement", - "src": "3451:19:2" + "src": "3625:19:2" }, { "expression": { "argumentTypes": null, - "id": 489, + "id": 511, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 485, + "id": 507, "name": "_referral", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 228, - "src": "3481:9:2", + "src": "3655:9:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7342,14 +7680,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 487, + "id": 509, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3501:1:2", + "src": "3675:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7365,20 +7703,20 @@ "typeString": "int_const 0" } ], - "id": 486, + "id": 508, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3493:7:2", + "src": "3667:7:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 488, + "id": 510, "isConstant": false, "isLValue": false, "isPure": true, @@ -7386,95 +7724,95 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3493:10:2", + "src": "3667:10:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3481:22:2", + "src": "3655:22:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 490, + "id": 512, "nodeType": "ExpressionStatement", - "src": "3481:22:2" + "src": "3655:22:2" } ] }, "documentation": null, - "id": 492, + "id": 514, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 459, + "id": 481, "modifierName": { "argumentTypes": null, - "id": 458, + "id": 480, "name": "notTerminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1058, - "src": "3289:13:2", + "referencedDeclaration": 1073, + "src": "3463:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3289:13:2" + "src": "3463:13:2" }, { "arguments": null, - "id": 461, + "id": 483, "modifierName": { "argumentTypes": null, - "id": 460, + "id": 482, "name": "onlySupervisor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "3303:14:2", + "referencedDeclaration": 814, + "src": "3477:14:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3303:14:2" + "src": "3477:14:2" } ], "name": "stopAndRemoveOwnership", "nodeType": "FunctionDefinition", "parameters": { - "id": 457, + "id": 479, "nodeType": "ParameterList", "parameters": [], - "src": "3279:2:2" + "src": "3453:2:2" }, "payable": false, "returnParameters": { - "id": 462, + "id": 484, "nodeType": "ParameterList", "parameters": [], - "src": "3318:0:2" + "src": "3492:0:2" }, - "scope": 771, - "src": "3248:263:2", + "scope": 786, + "src": "3422:263:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 523, + "id": 545, "nodeType": "Block", - "src": "3628:174:2", + "src": "3802:174:2", "statements": [ { "expression": { @@ -7486,19 +7824,19 @@ "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" }, - "id": 507, + "id": 529, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 504, + "id": 526, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 230, - "src": "3647:6:2", + "src": "3821:6:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" @@ -7510,18 +7848,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 505, + "id": 527, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 220, - "src": "3657:10:2", + "src": "3831:10:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 506, + "id": 528, "isConstant": false, "isLValue": false, "isPure": true, @@ -7529,13 +7867,13 @@ "memberName": "Stopped", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3657:18:2", + "src": "3831:18:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "3647:28:2", + "src": "3821:28:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7549,21 +7887,21 @@ "typeString": "bool" } ], - "id": 503, + "id": 525, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, - "src": "3639:7:2", + "referencedDeclaration": 1535, + "src": "3813:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 508, + "id": 530, "isConstant": false, "isLValue": false, "isPure": false, @@ -7571,32 +7909,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3639:37:2", + "src": "3813:37:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 509, + "id": 531, "nodeType": "ExpressionStatement", - "src": "3639:37:2" + "src": "3813:37:2" }, { "expression": { "argumentTypes": null, - "id": 513, + "id": 535, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 510, + "id": 532, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 230, - "src": "3689:6:2", + "src": "3863:6:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" @@ -7608,18 +7946,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 511, + "id": 533, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 220, - "src": "3698:10:2", + "src": "3872:10:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 512, + "id": 534, "isConstant": false, "isLValue": false, "isPure": true, @@ -7627,38 +7965,38 @@ "memberName": "Activated", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3698:20:2", + "src": "3872:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "3689:29:2", + "src": "3863:29:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "id": 514, + "id": 536, "nodeType": "ExpressionStatement", - "src": "3689:29:2" + "src": "3863:29:2" }, { "expression": { "argumentTypes": null, - "id": 517, + "id": 539, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 515, + "id": 537, "name": "_miner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 226, - "src": "3729:6:2", + "src": "3903:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7668,43 +8006,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 516, + "id": 538, "name": "newOwnerAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 494, - "src": "3738:15:2", + "referencedDeclaration": 516, + "src": "3912:15:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3729:24:2", + "src": "3903:24:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 518, + "id": 540, "nodeType": "ExpressionStatement", - "src": "3729:24:2" + "src": "3903:24:2" }, { "expression": { "argumentTypes": null, - "id": 521, + "id": 543, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 519, + "id": 541, "name": "_referral", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 228, - "src": "3764:9:2", + "src": "3938:9:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7714,87 +8052,87 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 520, + "id": 542, "name": "newReferralAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 496, - "src": "3776:18:2", + "referencedDeclaration": 518, + "src": "3950:18:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3764:30:2", + "src": "3938:30:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 522, + "id": 544, "nodeType": "ExpressionStatement", - "src": "3764:30:2" + "src": "3938:30:2" } ] }, "documentation": null, - "id": 524, + "id": 546, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 499, + "id": 521, "modifierName": { "argumentTypes": null, - "id": 498, + "id": 520, "name": "notTerminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1058, - "src": "3599:13:2", + "referencedDeclaration": 1073, + "src": "3773:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3599:13:2" + "src": "3773:13:2" }, { "arguments": null, - "id": 501, + "id": 523, "modifierName": { "argumentTypes": null, - "id": 500, + "id": 522, "name": "onlySupervisor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 799, - "src": "3613:14:2", + "referencedDeclaration": 814, + "src": "3787:14:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3613:14:2" + "src": "3787:14:2" } ], "name": "resetMiner", "nodeType": "FunctionDefinition", "parameters": { - "id": 497, + "id": 519, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 494, + "id": 516, "name": "newOwnerAddress", "nodeType": "VariableDeclaration", - "scope": 524, - "src": "3539:23:2", + "scope": 546, + "src": "3713:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7802,10 +8140,10 @@ "typeString": "address" }, "typeName": { - "id": 493, + "id": 515, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3539:7:2", + "src": "3713:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7816,11 +8154,11 @@ }, { "constant": false, - "id": 496, + "id": 518, "name": "newReferralAddress", "nodeType": "VariableDeclaration", - "scope": 524, - "src": "3564:26:2", + "scope": 546, + "src": "3738:26:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7828,10 +8166,10 @@ "typeString": "address" }, "typeName": { - "id": 495, + "id": 517, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3564:7:2", + "src": "3738:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7841,26 +8179,26 @@ "visibility": "internal" } ], - "src": "3538:53:2" + "src": "3712:53:2" }, "payable": false, "returnParameters": { - "id": 502, + "id": 524, "nodeType": "ParameterList", "parameters": [], - "src": "3628:0:2" + "src": "3802:0:2" }, - "scope": 771, - "src": "3519:283:2", + "scope": 786, + "src": "3693:283:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 547, + "id": 569, "nodeType": "Block", - "src": "3864:121:2", + "src": "4038:121:2", "statements": [ { "expression": { @@ -7872,19 +8210,19 @@ "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" }, - "id": 535, + "id": 557, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 532, + "id": 554, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 230, - "src": "3883:6:2", + "src": "4057:6:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" @@ -7896,18 +8234,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 533, + "id": 555, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 220, - "src": "3893:10:2", + "src": "4067:10:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 534, + "id": 556, "isConstant": false, "isLValue": false, "isPure": true, @@ -7915,13 +8253,13 @@ "memberName": "Activated", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3893:20:2", + "src": "4067:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "3883:30:2", + "src": "4057:30:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7935,21 +8273,21 @@ "typeString": "bool" } ], - "id": 531, + "id": 553, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, - "src": "3875:7:2", + "referencedDeclaration": 1535, + "src": "4049:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 536, + "id": 558, "isConstant": false, "isLValue": false, "isPure": false, @@ -7957,15 +8295,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3875:39:2", + "src": "4049:39:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 537, + "id": 559, "nodeType": "ExpressionStatement", - "src": "3875:39:2" + "src": "4049:39:2" }, { "expression": { @@ -7973,7 +8311,7 @@ "arguments": [ { "argumentTypes": null, - "id": 540, + "id": 562, "isConstant": false, "isLValue": false, "isPure": false, @@ -7981,15 +8319,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "3933:8:2", + "src": "4107:8:2", "subExpression": { "argumentTypes": null, - "id": 539, + "id": 561, "name": "_mining", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 232, - "src": "3934:7:2", + "src": "4108:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8008,21 +8346,21 @@ "typeString": "bool" } ], - "id": 538, + "id": 560, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, - "src": "3925:7:2", + "referencedDeclaration": 1535, + "src": "4099:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 541, + "id": 563, "isConstant": false, "isLValue": false, "isPure": false, @@ -8030,32 +8368,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3925:17:2", + "src": "4099:17:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 542, + "id": 564, "nodeType": "ExpressionStatement", - "src": "3925:17:2" + "src": "4099:17:2" }, { "expression": { "argumentTypes": null, - "id": 545, + "id": 567, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 543, + "id": 565, "name": "_mining", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 232, - "src": "3963:7:2", + "src": "4137:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8066,14 +8404,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 544, + "id": 566, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3973:4:2", + "src": "4147:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -8081,89 +8419,89 @@ }, "value": "true" }, - "src": "3963:14:2", + "src": "4137:14:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 546, + "id": 568, "nodeType": "ExpressionStatement", - "src": "3963:14:2" + "src": "4137:14:2" } ] }, "documentation": null, - "id": 548, + "id": 570, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 527, + "id": 549, "modifierName": { "argumentTypes": null, - "id": 526, + "id": 548, "name": "notTerminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1058, - "src": "3840:13:2", + "referencedDeclaration": 1073, + "src": "4014:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3840:13:2" + "src": "4014:13:2" }, { "arguments": null, - "id": 529, + "id": 551, "modifierName": { "argumentTypes": null, - "id": 528, + "id": 550, "name": "onlyMiner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "3854:9:2", + "referencedDeclaration": 320, + "src": "4028:9:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3854:9:2" + "src": "4028:9:2" } ], "name": "startMining", "nodeType": "FunctionDefinition", "parameters": { - "id": 525, + "id": 547, "nodeType": "ParameterList", "parameters": [], - "src": "3830:2:2" + "src": "4004:2:2" }, "payable": false, "returnParameters": { - "id": 530, + "id": 552, "nodeType": "ParameterList", "parameters": [], - "src": "3864:0:2" + "src": "4038:0:2" }, - "scope": 771, - "src": "3810:175:2", + "scope": 786, + "src": "3984:175:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 570, + "id": 592, "nodeType": "Block", - "src": "4046:121:2", + "src": "4220:121:2", "statements": [ { "expression": { @@ -8175,19 +8513,19 @@ "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" }, - "id": 559, + "id": 581, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 556, + "id": 578, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 230, - "src": "4065:6:2", + "src": "4239:6:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" @@ -8199,18 +8537,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 557, + "id": 579, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 220, - "src": "4075:10:2", + "src": "4249:10:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 558, + "id": 580, "isConstant": false, "isLValue": false, "isPure": true, @@ -8218,13 +8556,13 @@ "memberName": "Activated", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4075:20:2", + "src": "4249:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "4065:30:2", + "src": "4239:30:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8238,21 +8576,21 @@ "typeString": "bool" } ], - "id": 555, + "id": 577, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, - "src": "4057:7:2", + "referencedDeclaration": 1535, + "src": "4231:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 560, + "id": 582, "isConstant": false, "isLValue": false, "isPure": false, @@ -8260,15 +8598,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4057:39:2", + "src": "4231:39:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 561, + "id": 583, "nodeType": "ExpressionStatement", - "src": "4057:39:2" + "src": "4231:39:2" }, { "expression": { @@ -8276,12 +8614,12 @@ "arguments": [ { "argumentTypes": null, - "id": 563, + "id": 585, "name": "_mining", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 232, - "src": "4115:7:2", + "src": "4289:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8295,21 +8633,21 @@ "typeString": "bool" } ], - "id": 562, + "id": 584, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, - "src": "4107:7:2", + "referencedDeclaration": 1535, + "src": "4281:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 564, + "id": 586, "isConstant": false, "isLValue": false, "isPure": false, @@ -8317,32 +8655,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4107:16:2", + "src": "4281:16:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 565, + "id": 587, "nodeType": "ExpressionStatement", - "src": "4107:16:2" + "src": "4281:16:2" }, { "expression": { "argumentTypes": null, - "id": 568, + "id": 590, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 566, + "id": 588, "name": "_mining", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 232, - "src": "4144:7:2", + "src": "4318:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8353,14 +8691,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 567, + "id": 589, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4154:5:2", + "src": "4328:5:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -8368,89 +8706,89 @@ }, "value": "false" }, - "src": "4144:15:2", + "src": "4318:15:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 569, + "id": 591, "nodeType": "ExpressionStatement", - "src": "4144:15:2" + "src": "4318:15:2" } ] }, "documentation": null, - "id": 571, + "id": 593, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 551, + "id": 573, "modifierName": { "argumentTypes": null, - "id": 550, + "id": 572, "name": "notTerminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1058, - "src": "4022:13:2", + "referencedDeclaration": 1073, + "src": "4196:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4022:13:2" + "src": "4196:13:2" }, { "arguments": null, - "id": 553, + "id": 575, "modifierName": { "argumentTypes": null, - "id": 552, + "id": 574, "name": "onlyMiner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "4036:9:2", + "referencedDeclaration": 320, + "src": "4210:9:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4036:9:2" + "src": "4210:9:2" } ], "name": "stopMining", "nodeType": "FunctionDefinition", "parameters": { - "id": 549, + "id": 571, "nodeType": "ParameterList", "parameters": [], - "src": "4012:2:2" + "src": "4186:2:2" }, "payable": false, "returnParameters": { - "id": 554, + "id": 576, "nodeType": "ParameterList", "parameters": [], - "src": "4046:0:2" + "src": "4220:0:2" }, - "scope": 771, - "src": "3993:174:2", + "scope": 786, + "src": "4167:174:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 681, + "id": 696, "nodeType": "Block", - "src": "4223:876:2", + "src": "4397:800:2", "statements": [ { "expression": { @@ -8462,19 +8800,19 @@ "typeIdentifier": "t_enum$_MinerType_$215", "typeString": "enum AlgoMiner.MinerType" }, - "id": 582, + "id": 604, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 579, + "id": 601, "name": "_minerType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 222, - "src": "4242:10:2", + "src": "4416:10:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerType_$215", "typeString": "enum AlgoMiner.MinerType" @@ -8486,18 +8824,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 580, + "id": 602, "name": "MinerType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 215, - "src": "4256:9:2", + "src": "4430:9:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MinerType_$215_$", "typeString": "type(enum AlgoMiner.MinerType)" } }, - "id": 581, + "id": 603, "isConstant": false, "isLValue": false, "isPure": true, @@ -8505,13 +8843,13 @@ "memberName": "PoolBased", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4256:19:2", + "src": "4430:19:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerType_$215", "typeString": "enum AlgoMiner.MinerType" } }, - "src": "4242:33:2", + "src": "4416:33:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8525,21 +8863,21 @@ "typeString": "bool" } ], - "id": 578, + "id": 600, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, - "src": "4234:7:2", + "referencedDeclaration": 1535, + "src": "4408:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 583, + "id": 605, "isConstant": false, "isLValue": false, "isPure": false, @@ -8547,15 +8885,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4234:42:2", + "src": "4408:42:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 584, + "id": 606, "nodeType": "ExpressionStatement", - "src": "4234:42:2" + "src": "4408:42:2" }, { "expression": { @@ -8567,19 +8905,19 @@ "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" }, - "id": 589, + "id": 611, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 586, + "id": 608, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 230, - "src": "4295:6:2", + "src": "4469:6:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" @@ -8591,18 +8929,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 587, + "id": 609, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 220, - "src": "4305:10:2", + "src": "4479:10:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 588, + "id": 610, "isConstant": false, "isLValue": false, "isPure": true, @@ -8610,13 +8948,13 @@ "memberName": "Activated", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4305:20:2", + "src": "4479:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "4295:30:2", + "src": "4469:30:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8630,21 +8968,21 @@ "typeString": "bool" } ], - "id": 585, + "id": 607, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, - "src": "4287:7:2", + "referencedDeclaration": 1535, + "src": "4461:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 590, + "id": 612, "isConstant": false, "isLValue": false, "isPure": false, @@ -8652,15 +8990,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4287:39:2", + "src": "4461:39:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 591, + "id": 613, "nodeType": "ExpressionStatement", - "src": "4287:39:2" + "src": "4461:39:2" }, { "expression": { @@ -8668,12 +9006,12 @@ "arguments": [ { "argumentTypes": null, - "id": 593, + "id": 615, "name": "_mining", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 232, - "src": "4345:7:2", + "src": "4519:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8687,21 +9025,21 @@ "typeString": "bool" } ], - "id": 592, + "id": 614, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, - "src": "4337:7:2", + "referencedDeclaration": 1535, + "src": "4511:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 594, + "id": 616, "isConstant": false, "isLValue": false, "isPure": false, @@ -8709,15 +9047,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4337:16:2", + "src": "4511:16:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 595, + "id": 617, "nodeType": "ExpressionStatement", - "src": "4337:16:2" + "src": "4511:16:2" }, { "condition": { @@ -8726,19 +9064,19 @@ "typeIdentifier": "t_uint16", "typeString": "uint16" }, - "id": 598, + "id": 620, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 596, + "id": 618, "name": "_currentDay", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 236, - "src": "4369:11:2", + "src": "4543:11:2", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -8749,14 +9087,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 597, + "id": 619, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4384:1:2", + "src": "4558:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8764,21 +9102,21 @@ }, "value": "0" }, - "src": "4369:16:2", + "src": "4543:16:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 632, + "id": 654, "nodeType": "Block", - "src": "4466:238:2", + "src": "4640:238:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 609, + "id": 631, "isConstant": false, "isLValue": false, "isPure": false, @@ -8786,15 +9124,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4481:13:2", + "src": "4655:13:2", "subExpression": { "argumentTypes": null, - "id": 608, + "id": 630, "name": "_currentDay", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 236, - "src": "4481:11:2", + "src": "4655:11:2", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -8805,9 +9143,9 @@ "typeString": "uint16" } }, - "id": 610, + "id": 632, "nodeType": "ExpressionStatement", - "src": "4481:13:2" + "src": "4655:13:2" }, { "condition": { @@ -8816,19 +9154,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 616, + "id": 638, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 611, + "id": 633, "name": "_currentDay", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 236, - "src": "4512:11:2", + "src": "4686:11:2", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -8845,19 +9183,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 614, + "id": 636, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 612, + "id": 634, "name": "DAYS_PER_YEAR", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 212, - "src": "4528:13:2", + "src": "4702:13:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8868,14 +9206,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 613, + "id": 635, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4544:1:2", + "src": "4718:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -8883,45 +9221,45 @@ }, "value": "1" }, - "src": "4528:17:2", + "src": "4702:17:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 615, + "id": 637, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4527:19:2", + "src": "4701:19:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4512:34:2", + "src": "4686:34:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 631, + "id": 653, "nodeType": "IfStatement", - "src": "4509:184:2", + "src": "4683:184:2", "trueBody": { - "id": 630, + "id": 652, "nodeType": "Block", - "src": "4548:145:2", + "src": "4722:145:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 618, + "id": 640, "isConstant": false, "isLValue": false, "isPure": false, @@ -8929,15 +9267,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4567:14:2", + "src": "4741:14:2", "subExpression": { "argumentTypes": null, - "id": 617, + "id": 639, "name": "_currentYear", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 234, - "src": "4567:12:2", + "src": "4741:12:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -8948,26 +9286,26 @@ "typeString": "uint8" } }, - "id": 619, + "id": 641, "nodeType": "ExpressionStatement", - "src": "4567:14:2" + "src": "4741:14:2" }, { "expression": { "argumentTypes": null, - "id": 622, + "id": 644, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 620, + "id": 642, "name": "_currentDay", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 236, - "src": "4600:11:2", + "src": "4774:11:2", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -8978,14 +9316,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 621, + "id": 643, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4614:1:2", + "src": "4788:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -8993,32 +9331,32 @@ }, "value": "1" }, - "src": "4600:15:2", + "src": "4774:15:2", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, - "id": 623, + "id": 645, "nodeType": "ExpressionStatement", - "src": "4600:15:2" + "src": "4774:15:2" }, { "expression": { "argumentTypes": null, - "id": 628, + "id": 650, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 624, + "id": 646, "name": "_currentYearSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 238, - "src": "4634:18:2", + "src": "4808:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9032,19 +9370,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 627, + "id": 649, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 625, + "id": 647, "name": "_currentYearSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 238, - "src": "4655:18:2", + "src": "4829:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9055,14 +9393,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 626, + "id": 648, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4676:1:2", + "src": "4850:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -9070,51 +9408,51 @@ }, "value": "2" }, - "src": "4655:22:2", + "src": "4829:22:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4634:43:2", + "src": "4808:43:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 629, + "id": 651, "nodeType": "ExpressionStatement", - "src": "4634:43:2" + "src": "4808:43:2" } ] } } ] }, - "id": 633, + "id": 655, "nodeType": "IfStatement", - "src": "4366:338:2", + "src": "4540:338:2", "trueBody": { - "id": 607, + "id": 629, "nodeType": "Block", - "src": "4387:73:2", + "src": "4561:73:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 601, + "id": 623, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 599, + "id": 621, "name": "_currentYear", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 234, - "src": "4402:12:2", + "src": "4576:12:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9125,14 +9463,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 600, + "id": 622, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4417:1:2", + "src": "4591:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -9140,32 +9478,32 @@ }, "value": "1" }, - "src": "4402:16:2", + "src": "4576:16:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 602, + "id": 624, "nodeType": "ExpressionStatement", - "src": "4402:16:2" + "src": "4576:16:2" }, { "expression": { "argumentTypes": null, - "id": 605, + "id": 627, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 603, + "id": 625, "name": "_currentDay", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 236, - "src": "4433:11:2", + "src": "4607:11:2", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -9176,14 +9514,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 604, + "id": 626, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4447:1:2", + "src": "4621:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -9191,31 +9529,31 @@ }, "value": "1" }, - "src": "4433:15:2", + "src": "4607:15:2", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, - "id": 606, + "id": 628, "nodeType": "ExpressionStatement", - "src": "4433:15:2" + "src": "4607:15:2" } ] } }, { "assignments": [ - 635 + 657 ], "declarations": [ { "constant": false, - "id": 635, + "id": 657, "name": "minerTokens", "nodeType": "VariableDeclaration", - "scope": 682, - "src": "4716:19:2", + "scope": 697, + "src": "4890:19:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9223,10 +9561,10 @@ "typeString": "uint256" }, "typeName": { - "id": 634, + "id": 656, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4716:7:2", + "src": "4890:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9236,26 +9574,26 @@ "visibility": "internal" } ], - "id": 639, + "id": 661, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 638, + "id": 660, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 636, + "id": 658, "name": "_currentYearSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 238, - "src": "4738:18:2", + "src": "4912:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9265,25 +9603,148 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 637, + "id": 659, "name": "DAYS_PER_YEAR", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 212, - "src": "4759:13:2", + "src": "4933:13:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4738:34:2", + "src": "4912:34:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4716:56:2" + "src": "4890:56:2" + }, + { + "assignments": [ + 663 + ], + "declarations": [ + { + "constant": false, + "id": 663, + "name": "referralTokens", + "nodeType": "VariableDeclaration", + "scope": 697, + "src": "4957:22:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 662, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4957:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 669, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 664, + "name": "minerTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 657, + "src": "4982:11:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 665, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4996:2:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "4982:16:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5001:3:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "4982:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4957:47:2" }, { "expression": { @@ -9295,19 +9756,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 643, + "id": 673, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 641, + "id": 671, "name": "minerTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 635, - "src": "4793:11:2", + "referencedDeclaration": 657, + "src": "5025:11:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9318,14 +9779,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 642, + "id": 672, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4807:1:2", + "src": "5039:1:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9333,7 +9794,7 @@ }, "value": "0" }, - "src": "4793:15:2", + "src": "5025:15:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9347,21 +9808,21 @@ "typeString": "bool" } ], - "id": 640, + "id": 670, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, - "src": "4785:7:2", + "referencedDeclaration": 1535, + "src": "5017:7:2", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 644, + "id": 674, "isConstant": false, "isLValue": false, "isPure": false, @@ -9369,15 +9830,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4785:24:2", + "src": "5017:24:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 645, + "id": 675, "nodeType": "ExpressionStatement", - "src": "4785:24:2" + "src": "5017:24:2" }, { "expression": { @@ -9385,12 +9846,106 @@ "arguments": [ { "argumentTypes": null, - "id": 649, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 677, + "name": "referralTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 663, + "src": "5060:14:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 678, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5077:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5060:18:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 676, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1535, + 1536 + ], + "referencedDeclaration": 1535, + "src": "5052:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5052:27:2", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 681, + "nodeType": "ExpressionStatement", + "src": "5052:27:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 685, "name": "_miner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 226, - "src": "4842:6:2", + "src": "5112:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9398,12 +9953,12 @@ }, { "argumentTypes": null, - "id": 650, + "id": 686, "name": "minerTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 635, - "src": "4850:11:2", + "referencedDeclaration": 657, + "src": "5120:11:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9423,32 +9978,32 @@ ], "expression": { "argumentTypes": null, - "id": 646, + "id": 682, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 957, - "src": "4822:6:2", + "referencedDeclaration": 972, + "src": "5092:6:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } }, - "id": 648, + "id": 684, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 1383, - "src": "4822:19:2", + "referencedDeclaration": 1398, + "src": "5092:19:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1358_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$1358_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1373_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$1373_$", "typeString": "function (contract IERC20,address,uint256)" } }, - "id": 651, + "id": 687, "isConstant": false, "isLValue": false, "isPure": false, @@ -9456,494 +10011,176 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4822:40:2", + "src": "5092:40:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 652, + "id": 688, "nodeType": "ExpressionStatement", - "src": "4822:40:2" + "src": "5092:40:2" }, { - "condition": { + "expression": { "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" + "arguments": [ + { + "argumentTypes": null, + "id": 692, + "name": "_referral", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 228, + "src": "5163:9:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 693, + "name": "referralTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 663, + "src": "5174:14:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ + ], + "expression": { + "argumentTypes": [ { - "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" + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], "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", + "argumentTypes": null, + "id": 689, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 972, + "src": "5143:6:2", "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" + "typeIdentifier": "t_contract$_IERC20_$1373", + "typeString": "contract IERC20" + } }, - "id": 656, + "id": 691, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "typeConversion", + "isPure": false, "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4891:10:2", + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1398, + "src": "5143:19:2", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1373_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$1373_$", + "typeString": "function (contract IERC20,address,uint256)" } }, - "src": "4878:23:2", + "id": 694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5143:46:2", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "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" - } - ] - } + "id": 695, + "nodeType": "ExpressionStatement", + "src": "5143:46:2" } ] }, "documentation": null, - "id": 682, + "id": 697, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 574, + "id": 596, "modifierName": { "argumentTypes": null, - "id": 573, + "id": 595, "name": "notTerminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1058, - "src": "4198:13:2", + "referencedDeclaration": 1073, + "src": "4372:13:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4198:13:2" + "src": "4372:13:2" }, { "arguments": null, - "id": 576, + "id": 598, "modifierName": { "argumentTypes": null, - "id": 575, + "id": 597, "name": "onlySystem", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 886, - "src": "4212:10:2", + "referencedDeclaration": 901, + "src": "4386:10:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4212:10:2" + "src": "4386:10:2" } ], "name": "mine", "nodeType": "FunctionDefinition", "parameters": { - "id": 572, + "id": 594, "nodeType": "ParameterList", "parameters": [], - "src": "4188:2:2" + "src": "4362:2:2" }, "payable": false, "returnParameters": { - "id": 577, + "id": 599, "nodeType": "ParameterList", "parameters": [], - "src": "4223:0:2" + "src": "4397:0:2" }, - "scope": 771, - "src": "4175:924:2", + "scope": 786, + "src": "4349:848:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 690, + "id": 705, "nodeType": "Block", - "src": "5148:31:2", + "src": "5246:31:2", "statements": [ { "expression": { @@ -9951,20 +10188,20 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 687, + "id": 702, "name": "_terminate", "nodeType": "Identifier", "overloadedDeclarations": [ - 1001 + 1016 ], - "referencedDeclaration": 1001, - "src": "5159:10:2", + "referencedDeclaration": 1016, + "src": "5257:10:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 688, + "id": 703, "isConstant": false, "isLValue": false, "isPure": false, @@ -9972,83 +10209,83 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5159:12:2", + "src": "5257:12:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 689, + "id": 704, "nodeType": "ExpressionStatement", - "src": "5159:12:2" + "src": "5257:12:2" } ] }, "documentation": null, - "id": 691, + "id": 706, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 685, + "id": 700, "modifierName": { "argumentTypes": null, - "id": 684, + "id": 699, "name": "onlyCoreTeam", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 125, - "src": "5135:12:2", + "src": "5233:12:2", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5135:12:2" + "src": "5233:12:2" } ], "name": "terminate", "nodeType": "FunctionDefinition", "parameters": { - "id": 683, + "id": 698, "nodeType": "ParameterList", "parameters": [], - "src": "5125:2:2" + "src": "5223:2:2" }, "payable": false, "returnParameters": { - "id": 686, + "id": 701, "nodeType": "ParameterList", "parameters": [], - "src": "5148:0:2" + "src": "5246:0:2" }, - "scope": 771, - "src": "5107:72:2", + "scope": 786, + "src": "5205:72:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 698, + "id": 713, "nodeType": "Block", - "src": "5237:30:2", + "src": "5335:30:2", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 696, + "id": 711, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5255:4:2", + "src": "5353:4:2", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -10056,15 +10293,15 @@ }, "value": "true" }, - "functionReturnParameters": 695, - "id": 697, + "functionReturnParameters": 710, + "id": 712, "nodeType": "Return", - "src": "5248:11:2" + "src": "5346:11:2" } ] }, "documentation": null, - "id": 699, + "id": 714, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -10072,23 +10309,23 @@ "name": "isAlgoMiner", "nodeType": "FunctionDefinition", "parameters": { - "id": 692, + "id": 707, "nodeType": "ParameterList", "parameters": [], - "src": "5207:2:2" + "src": "5305:2:2" }, "payable": false, "returnParameters": { - "id": 695, + "id": 710, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 694, + "id": 709, "name": "", "nodeType": "VariableDeclaration", - "scope": 699, - "src": "5231:4:2", + "scope": 714, + "src": "5329:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10096,10 +10333,10 @@ "typeString": "bool" }, "typeName": { - "id": 693, + "id": 708, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5231:4:2", + "src": "5329:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10109,19 +10346,19 @@ "visibility": "internal" } ], - "src": "5230:6:2" + "src": "5328:6:2" }, - "scope": 771, - "src": "5187:80:2", + "scope": 786, + "src": "5285:80:2", "stateMutability": "pure", - "superFunction": 1009, + "superFunction": 1024, "visibility": "public" }, { "body": { - "id": 708, + "id": 723, "nodeType": "Block", - "src": "5327:43:2", + "src": "5425:43:2", "statements": [ { "expression": { @@ -10129,12 +10366,12 @@ "arguments": [ { "argumentTypes": null, - "id": 705, + "id": 720, "name": "_minerType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 222, - "src": "5351:10:2", + "src": "5449:10:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerType_$215", "typeString": "enum AlgoMiner.MinerType" @@ -10148,20 +10385,20 @@ "typeString": "enum AlgoMiner.MinerType" } ], - "id": 704, + "id": 719, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5345:5:2", + "src": "5443:5:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": "uint8" }, - "id": 706, + "id": 721, "isConstant": false, "isLValue": false, "isPure": false, @@ -10169,21 +10406,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5345:17:2", + "src": "5443:17:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "functionReturnParameters": 703, - "id": 707, + "functionReturnParameters": 718, + "id": 722, "nodeType": "Return", - "src": "5338:24:2" + "src": "5436:24:2" } ] }, "documentation": null, - "id": 709, + "id": 724, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -10191,23 +10428,23 @@ "name": "getMinerType", "nodeType": "FunctionDefinition", "parameters": { - "id": 700, + "id": 715, "nodeType": "ParameterList", "parameters": [], - "src": "5296:2:2" + "src": "5394:2:2" }, "payable": false, "returnParameters": { - "id": 703, + "id": 718, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 702, + "id": 717, "name": "", "nodeType": "VariableDeclaration", - "scope": 709, - "src": "5320:5:2", + "scope": 724, + "src": "5418:5:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10215,10 +10452,10 @@ "typeString": "uint8" }, "typeName": { - "id": 701, + "id": 716, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "5320:5:2", + "src": "5418:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10228,43 +10465,43 @@ "visibility": "internal" } ], - "src": "5319:7:2" + "src": "5417:7:2" }, - "scope": 771, - "src": "5275:95:2", + "scope": 786, + "src": "5373:95:2", "stateMutability": "view", - "superFunction": 1014, + "superFunction": 1029, "visibility": "public" }, { "body": { - "id": 716, + "id": 731, "nodeType": "Block", - "src": "5429:35:2", + "src": "5527:35:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 714, + "id": 729, "name": "_category", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 224, - "src": "5447:9:2", + "src": "5545:9:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "functionReturnParameters": 713, - "id": 715, + "functionReturnParameters": 728, + "id": 730, "nodeType": "Return", - "src": "5440:16:2" + "src": "5538:16:2" } ] }, "documentation": null, - "id": 717, + "id": 732, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -10272,23 +10509,23 @@ "name": "getCategory", "nodeType": "FunctionDefinition", "parameters": { - "id": 710, + "id": 725, "nodeType": "ParameterList", "parameters": [], - "src": "5398:2:2" + "src": "5496:2:2" }, "payable": false, "returnParameters": { - "id": 713, + "id": 728, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 712, + "id": 727, "name": "", "nodeType": "VariableDeclaration", - "scope": 717, - "src": "5422:5:2", + "scope": 732, + "src": "5520:5:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10296,10 +10533,10 @@ "typeString": "uint8" }, "typeName": { - "id": 711, + "id": 726, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "5422:5:2", + "src": "5520:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10309,43 +10546,43 @@ "visibility": "internal" } ], - "src": "5421:7:2" + "src": "5519:7:2" }, - "scope": 771, - "src": "5378:86:2", + "scope": 786, + "src": "5476:86:2", "stateMutability": "view", - "superFunction": 1019, + "superFunction": 1034, "visibility": "public" }, { "body": { - "id": 724, + "id": 739, "nodeType": "Block", - "src": "5522:32:2", + "src": "5620:32:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 722, + "id": 737, "name": "_miner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 226, - "src": "5540:6:2", + "src": "5638:6:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 721, - "id": 723, + "functionReturnParameters": 736, + "id": 738, "nodeType": "Return", - "src": "5533:13:2" + "src": "5631:13:2" } ] }, "documentation": null, - "id": 725, + "id": 740, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -10353,23 +10590,23 @@ "name": "getMiner", "nodeType": "FunctionDefinition", "parameters": { - "id": 718, + "id": 733, "nodeType": "ParameterList", "parameters": [], - "src": "5489:2:2" + "src": "5587:2:2" }, "payable": false, "returnParameters": { - "id": 721, + "id": 736, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 720, + "id": 735, "name": "", "nodeType": "VariableDeclaration", - "scope": 725, - "src": "5513:7:2", + "scope": 740, + "src": "5611:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10377,10 +10614,10 @@ "typeString": "address" }, "typeName": { - "id": 719, + "id": 734, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5513:7:2", + "src": "5611:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10390,43 +10627,43 @@ "visibility": "internal" } ], - "src": "5512:9:2" + "src": "5610:9:2" }, - "scope": 771, - "src": "5472:82:2", + "scope": 786, + "src": "5570:82:2", "stateMutability": "view", - "superFunction": 1029, + "superFunction": 1044, "visibility": "public" }, { "body": { - "id": 732, + "id": 747, "nodeType": "Block", - "src": "5615:35:2", + "src": "5713:35:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 730, + "id": 745, "name": "_referral", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 228, - "src": "5633:9:2", + "src": "5731:9:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 729, - "id": 731, + "functionReturnParameters": 744, + "id": 746, "nodeType": "Return", - "src": "5626:16:2" + "src": "5724:16:2" } ] }, "documentation": null, - "id": 733, + "id": 748, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -10434,23 +10671,23 @@ "name": "getReferral", "nodeType": "FunctionDefinition", "parameters": { - "id": 726, + "id": 741, "nodeType": "ParameterList", "parameters": [], - "src": "5582:2:2" + "src": "5680:2:2" }, "payable": false, "returnParameters": { - "id": 729, + "id": 744, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 728, + "id": 743, "name": "", "nodeType": "VariableDeclaration", - "scope": 733, - "src": "5606:7:2", + "scope": 748, + "src": "5704:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10458,10 +10695,10 @@ "typeString": "address" }, "typeName": { - "id": 727, + "id": 742, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5606:7:2", + "src": "5704:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10471,19 +10708,19 @@ "visibility": "internal" } ], - "src": "5605:9:2" + "src": "5703:9:2" }, - "scope": 771, - "src": "5562:88:2", + "scope": 786, + "src": "5660:88:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 745, + "id": 760, "nodeType": "Block", - "src": "5705:67:2", + "src": "5803:67:2", "statements": [ { "expression": { @@ -10492,7 +10729,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 743, + "id": 758, "isConstant": false, "isLValue": false, "isPure": false, @@ -10503,19 +10740,19 @@ "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" }, - "id": 741, + "id": 756, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 738, + "id": 753, "name": "_state", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 230, - "src": "5723:6:2", + "src": "5821:6:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" @@ -10527,18 +10764,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 739, + "id": 754, "name": "MinerState", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 220, - "src": "5733:10:2", + "src": "5831:10:2", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_MinerState_$220_$", "typeString": "type(enum AlgoMiner.MinerState)" } }, - "id": 740, + "id": 755, "isConstant": false, "isLValue": false, "isPure": true, @@ -10546,13 +10783,13 @@ "memberName": "Activated", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "5733:20:2", + "src": "5831:20:2", "typeDescriptions": { "typeIdentifier": "t_enum$_MinerState_$220", "typeString": "enum AlgoMiner.MinerState" } }, - "src": "5723:30:2", + "src": "5821:30:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10562,32 +10799,32 @@ "operator": "&&", "rightExpression": { "argumentTypes": null, - "id": 742, + "id": 757, "name": "_mining", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 232, - "src": "5757:7:2", + "src": "5855:7:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "5723:41:2", + "src": "5821:41:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 737, - "id": 744, + "functionReturnParameters": 752, + "id": 759, "nodeType": "Return", - "src": "5716:48:2" + "src": "5814:48:2" } ] }, "documentation": null, - "id": 746, + "id": 761, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -10595,23 +10832,23 @@ "name": "isMining", "nodeType": "FunctionDefinition", "parameters": { - "id": 734, + "id": 749, "nodeType": "ParameterList", "parameters": [], - "src": "5675:2:2" + "src": "5773:2:2" }, "payable": false, "returnParameters": { - "id": 737, + "id": 752, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 736, + "id": 751, "name": "", "nodeType": "VariableDeclaration", - "scope": 746, - "src": "5699:4:2", + "scope": 761, + "src": "5797:4:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10619,10 +10856,10 @@ "typeString": "bool" }, "typeName": { - "id": 735, + "id": 750, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5699:4:2", + "src": "5797:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10632,43 +10869,43 @@ "visibility": "internal" } ], - "src": "5698:6:2" + "src": "5796:6:2" }, - "scope": 771, - "src": "5658:114:2", + "scope": 786, + "src": "5756:114:2", "stateMutability": "view", - "superFunction": 1024, + "superFunction": 1039, "visibility": "public" }, { "body": { - "id": 753, + "id": 768, "nodeType": "Block", - "src": "5834:38:2", + "src": "5932:38:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 751, + "id": 766, "name": "_currentYear", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 234, - "src": "5852:12:2", + "src": "5950:12:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "functionReturnParameters": 750, - "id": 752, + "functionReturnParameters": 765, + "id": 767, "nodeType": "Return", - "src": "5845:19:2" + "src": "5943:19:2" } ] }, "documentation": null, - "id": 754, + "id": 769, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -10676,23 +10913,23 @@ "name": "getCurrentYear", "nodeType": "FunctionDefinition", "parameters": { - "id": 747, + "id": 762, "nodeType": "ParameterList", "parameters": [], - "src": "5803:2:2" + "src": "5901:2:2" }, "payable": false, "returnParameters": { - "id": 750, + "id": 765, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 749, + "id": 764, "name": "", "nodeType": "VariableDeclaration", - "scope": 754, - "src": "5827:5:2", + "scope": 769, + "src": "5925:5:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10700,10 +10937,10 @@ "typeString": "uint8" }, "typeName": { - "id": 748, + "id": 763, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "5827:5:2", + "src": "5925:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -10713,43 +10950,43 @@ "visibility": "internal" } ], - "src": "5826:7:2" + "src": "5924:7:2" }, - "scope": 771, - "src": "5780:92:2", + "scope": 786, + "src": "5878:92:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 761, + "id": 776, "nodeType": "Block", - "src": "5934:37:2", + "src": "6032:37:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 759, + "id": 774, "name": "_currentDay", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 236, - "src": "5952:11:2", + "src": "6050:11:2", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, - "functionReturnParameters": 758, - "id": 760, + "functionReturnParameters": 773, + "id": 775, "nodeType": "Return", - "src": "5945:18:2" + "src": "6043:18:2" } ] }, "documentation": null, - "id": 762, + "id": 777, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -10757,23 +10994,23 @@ "name": "getCurrentDay", "nodeType": "FunctionDefinition", "parameters": { - "id": 755, + "id": 770, "nodeType": "ParameterList", "parameters": [], - "src": "5902:2:2" + "src": "6000:2:2" }, "payable": false, "returnParameters": { - "id": 758, + "id": 773, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 757, + "id": 772, "name": "", "nodeType": "VariableDeclaration", - "scope": 762, - "src": "5926:6:2", + "scope": 777, + "src": "6024:6:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10781,10 +11018,10 @@ "typeString": "uint16" }, "typeName": { - "id": 756, + "id": 771, "name": "uint16", "nodeType": "ElementaryTypeName", - "src": "5926:6:2", + "src": "6024:6:2", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" @@ -10794,43 +11031,43 @@ "visibility": "internal" } ], - "src": "5925:8:2" + "src": "6023:8:2" }, - "scope": 771, - "src": "5880:91:2", + "scope": 786, + "src": "5978:91:2", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 769, + "id": 784, "nodeType": "Block", - "src": "6041:44:2", + "src": "6139:44:2", "statements": [ { "expression": { "argumentTypes": null, - "id": 767, + "id": 782, "name": "_currentYearSupply", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 238, - "src": "6059:18:2", + "src": "6157:18:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 766, - "id": 768, + "functionReturnParameters": 781, + "id": 783, "nodeType": "Return", - "src": "6052:25:2" + "src": "6150:25:2" } ] }, "documentation": null, - "id": 770, + "id": 785, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -10838,23 +11075,23 @@ "name": "getCurrentYearSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 763, + "id": 778, "nodeType": "ParameterList", "parameters": [], - "src": "6008:2:2" + "src": "6106:2:2" }, "payable": false, "returnParameters": { - "id": 766, + "id": 781, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 765, + "id": 780, "name": "", "nodeType": "VariableDeclaration", - "scope": 770, - "src": "6032:7:2", + "scope": 785, + "src": "6130:7:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10862,10 +11099,10 @@ "typeString": "uint256" }, "typeName": { - "id": 764, + "id": 779, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6032:7:2", + "src": "6130:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10875,20 +11112,20 @@ "visibility": "internal" } ], - "src": "6031:9:2" + "src": "6129:9:2" }, - "scope": 771, - "src": "5979:106:2", + "scope": 786, + "src": "6077:106:2", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 772, - "src": "620:5468:2" + "scope": 787, + "src": "620:5566:2" } ], - "src": "0:6090:2" + "src": "0:6188:2" }, "id": 2 }, @@ -10897,14 +11134,14 @@ "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoSupervisorRole.sol", "exportedSymbols": { "AlgoSupervisorRole": [ - 858 + 873 ] }, - "id": 859, + "id": 874, "nodeType": "SourceUnit", "nodes": [ { - "id": 773, + "id": 788, "literals": [ "solidity", "^", @@ -10917,10 +11154,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": 774, + "id": 789, "nodeType": "ImportDirective", - "scope": 859, - "sourceUnit": 1162, + "scope": 874, + "sourceUnit": 1177, "src": "28:189:3", "symbolAliases": [], "unitAlias": "" @@ -10931,24 +11168,24 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 858, + "id": 873, "linearizedBaseContracts": [ - 858 + 873 ], "name": "AlgoSupervisorRole", "nodeType": "ContractDefinition", "nodes": [ { - "id": 777, + "id": 792, "libraryName": { "contractScope": null, - "id": 775, + "id": 790, "name": "Roles", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1161, + "referencedDeclaration": 1176, "src": "262:5:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_Roles_$1161", + "typeIdentifier": "t_contract$_Roles_$1176", "typeString": "library Roles" } }, @@ -10956,39 +11193,39 @@ "src": "256:27:3", "typeName": { "contractScope": null, - "id": 776, + "id": 791, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1074, + "referencedDeclaration": 1089, "src": "272:10:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeIdentifier": "t_struct$_Role_$1089_storage_ptr", "typeString": "struct Roles.Role" } } }, { "constant": false, - "id": 779, + "id": 794, "name": "_supervisors", "nodeType": "VariableDeclaration", - "scope": 858, + "scope": 873, "src": "291:31:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage", + "typeIdentifier": "t_struct$_Role_$1089_storage", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 778, + "id": 793, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1074, + "referencedDeclaration": 1089, "src": "291:10:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeIdentifier": "t_struct$_Role_$1089_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -10997,7 +11234,7 @@ }, { "body": { - "id": 787, + "id": 802, "nodeType": "Block", "src": "355:45:3", "statements": [ @@ -11009,18 +11246,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 783, + "id": 798, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1517, + "referencedDeclaration": 1532, "src": "381:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 784, + "id": 799, "isConstant": false, "isLValue": false, "isPure": false, @@ -11042,18 +11279,18 @@ "typeString": "address" } ], - "id": 782, + "id": 797, "name": "_addSupervisor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 845, + "referencedDeclaration": 860, "src": "366:14:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 785, + "id": 800, "isConstant": false, "isLValue": false, "isPure": false, @@ -11067,14 +11304,14 @@ "typeString": "tuple()" } }, - "id": 786, + "id": 801, "nodeType": "ExpressionStatement", "src": "366:26:3" } ] }, "documentation": null, - "id": 788, + "id": 803, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -11082,19 +11319,19 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 780, + "id": 795, "nodeType": "ParameterList", "parameters": [], "src": "343:2:3" }, "payable": false, "returnParameters": { - "id": 781, + "id": 796, "nodeType": "ParameterList", "parameters": [], "src": "355:0:3" }, - "scope": 858, + "scope": 873, "src": "331:69:3", "stateMutability": "nonpayable", "superFunction": null, @@ -11102,7 +11339,7 @@ }, { "body": { - "id": 798, + "id": 813, "nodeType": "Block", "src": "434:64:3", "statements": [ @@ -11117,18 +11354,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 792, + "id": 807, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1517, + "referencedDeclaration": 1532, "src": "466:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 793, + "id": 808, "isConstant": false, "isLValue": false, "isPure": false, @@ -11150,18 +11387,18 @@ "typeString": "address" } ], - "id": 791, + "id": 806, "name": "isSupervisor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 812, + "referencedDeclaration": 827, "src": "453:12:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 794, + "id": 809, "isConstant": false, "isLValue": false, "isPure": false, @@ -11183,21 +11420,21 @@ "typeString": "bool" } ], - "id": 790, + "id": 805, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, + "referencedDeclaration": 1535, "src": "445:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 795, + "id": 810, "isConstant": false, "isLValue": false, "isPure": false, @@ -11211,23 +11448,23 @@ "typeString": "tuple()" } }, - "id": 796, + "id": 811, "nodeType": "ExpressionStatement", "src": "445:33:3" }, { - "id": 797, + "id": 812, "nodeType": "PlaceholderStatement", "src": "489:1:3" } ] }, "documentation": null, - "id": 799, + "id": 814, "name": "onlySupervisor", "nodeType": "ModifierDefinition", "parameters": { - "id": 789, + "id": 804, "nodeType": "ParameterList", "parameters": [], "src": "431:2:3" @@ -11237,7 +11474,7 @@ }, { "body": { - "id": 811, + "id": 826, "nodeType": "Block", "src": "572:51:3", "statements": [ @@ -11247,11 +11484,11 @@ "arguments": [ { "argumentTypes": null, - "id": 808, + "id": 823, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 801, + "referencedDeclaration": 816, "src": "607:7:3", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11268,32 +11505,32 @@ ], "expression": { "argumentTypes": null, - "id": 806, + "id": 821, "name": "_supervisors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 779, + "referencedDeclaration": 794, "src": "590:12:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage", + "typeIdentifier": "t_struct$_Role_$1089_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 807, + "id": 822, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "has", "nodeType": "MemberAccess", - "referencedDeclaration": 1160, + "referencedDeclaration": 1175, "src": "590:16:3", "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_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$1089_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$1089_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 809, + "id": 824, "isConstant": false, "isLValue": false, "isPure": false, @@ -11307,15 +11544,15 @@ "typeString": "bool" } }, - "functionReturnParameters": 805, - "id": 810, + "functionReturnParameters": 820, + "id": 825, "nodeType": "Return", "src": "583:32:3" } ] }, "documentation": null, - "id": 812, + "id": 827, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -11323,15 +11560,15 @@ "name": "isSupervisor", "nodeType": "FunctionDefinition", "parameters": { - "id": 802, + "id": 817, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 801, + "id": 816, "name": "account", "nodeType": "VariableDeclaration", - "scope": 812, + "scope": 827, "src": "528:15:3", "stateVariable": false, "storageLocation": "default", @@ -11340,7 +11577,7 @@ "typeString": "address" }, "typeName": { - "id": 800, + "id": 815, "name": "address", "nodeType": "ElementaryTypeName", "src": "528:7:3", @@ -11357,15 +11594,15 @@ }, "payable": false, "returnParameters": { - "id": 805, + "id": 820, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 804, + "id": 819, "name": "", "nodeType": "VariableDeclaration", - "scope": 812, + "scope": 827, "src": "566:4:3", "stateVariable": false, "storageLocation": "default", @@ -11374,7 +11611,7 @@ "typeString": "bool" }, "typeName": { - "id": 803, + "id": 818, "name": "bool", "nodeType": "ElementaryTypeName", "src": "566:4:3", @@ -11389,7 +11626,7 @@ ], "src": "565:6:3" }, - "scope": 858, + "scope": 873, "src": "506:117:3", "stateMutability": "view", "superFunction": null, @@ -11397,7 +11634,7 @@ }, { "body": { - "id": 823, + "id": 838, "nodeType": "Block", "src": "693:42:3", "statements": [ @@ -11407,11 +11644,11 @@ "arguments": [ { "argumentTypes": null, - "id": 820, + "id": 835, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 814, + "referencedDeclaration": 829, "src": "719:7:3", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11426,18 +11663,18 @@ "typeString": "address" } ], - "id": 819, + "id": 834, "name": "_addSupervisor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 845, + "referencedDeclaration": 860, "src": "704:14:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 821, + "id": 836, "isConstant": false, "isLValue": false, "isPure": false, @@ -11451,28 +11688,28 @@ "typeString": "tuple()" } }, - "id": 822, + "id": 837, "nodeType": "ExpressionStatement", "src": "704:23:3" } ] }, "documentation": null, - "id": 824, + "id": 839, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 817, + "id": 832, "modifierName": { "argumentTypes": null, - "id": 816, + "id": 831, "name": "onlySupervisor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 799, + "referencedDeclaration": 814, "src": "678:14:3", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -11486,15 +11723,15 @@ "name": "addSupervisor", "nodeType": "FunctionDefinition", "parameters": { - "id": 815, + "id": 830, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 814, + "id": 829, "name": "account", "nodeType": "VariableDeclaration", - "scope": 824, + "scope": 839, "src": "654:15:3", "stateVariable": false, "storageLocation": "default", @@ -11503,7 +11740,7 @@ "typeString": "address" }, "typeName": { - "id": 813, + "id": 828, "name": "address", "nodeType": "ElementaryTypeName", "src": "654:7:3", @@ -11520,12 +11757,12 @@ }, "payable": false, "returnParameters": { - "id": 818, + "id": 833, "nodeType": "ParameterList", "parameters": [], "src": "693:0:3" }, - "scope": 858, + "scope": 873, "src": "631:104:3", "stateMutability": "nonpayable", "superFunction": null, @@ -11533,7 +11770,7 @@ }, { "body": { - "id": 832, + "id": 847, "nodeType": "Block", "src": "780:48:3", "statements": [ @@ -11545,18 +11782,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 828, + "id": 843, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1517, + "referencedDeclaration": 1532, "src": "809:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 829, + "id": 844, "isConstant": false, "isLValue": false, "isPure": false, @@ -11578,18 +11815,18 @@ "typeString": "address" } ], - "id": 827, + "id": 842, "name": "_removeSupervisor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 857, + "referencedDeclaration": 872, "src": "791:17:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 830, + "id": 845, "isConstant": false, "isLValue": false, "isPure": false, @@ -11603,14 +11840,14 @@ "typeString": "tuple()" } }, - "id": 831, + "id": 846, "nodeType": "ExpressionStatement", "src": "791:29:3" } ] }, "documentation": null, - "id": 833, + "id": 848, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -11618,19 +11855,19 @@ "name": "renounceSupervisor", "nodeType": "FunctionDefinition", "parameters": { - "id": 825, + "id": 840, "nodeType": "ParameterList", "parameters": [], "src": "770:2:3" }, "payable": false, "returnParameters": { - "id": 826, + "id": 841, "nodeType": "ParameterList", "parameters": [], "src": "780:0:3" }, - "scope": 858, + "scope": 873, "src": "743:85:3", "stateMutability": "nonpayable", "superFunction": null, @@ -11638,7 +11875,7 @@ }, { "body": { - "id": 844, + "id": 859, "nodeType": "Block", "src": "886:44:3", "statements": [ @@ -11648,11 +11885,11 @@ "arguments": [ { "argumentTypes": null, - "id": 841, + "id": 856, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 835, + "referencedDeclaration": 850, "src": "914:7:3", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11669,32 +11906,32 @@ ], "expression": { "argumentTypes": null, - "id": 838, + "id": 853, "name": "_supervisors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 779, + "referencedDeclaration": 794, "src": "897:12:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage", + "typeIdentifier": "t_struct$_Role_$1089_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 840, + "id": 855, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1106, + "referencedDeclaration": 1121, "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_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$1089_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$1089_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 842, + "id": 857, "isConstant": false, "isLValue": false, "isPure": false, @@ -11708,14 +11945,14 @@ "typeString": "tuple()" } }, - "id": 843, + "id": 858, "nodeType": "ExpressionStatement", "src": "897:25:3" } ] }, "documentation": null, - "id": 845, + "id": 860, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -11723,15 +11960,15 @@ "name": "_addSupervisor", "nodeType": "FunctionDefinition", "parameters": { - "id": 836, + "id": 851, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 835, + "id": 850, "name": "account", "nodeType": "VariableDeclaration", - "scope": 845, + "scope": 860, "src": "860:15:3", "stateVariable": false, "storageLocation": "default", @@ -11740,7 +11977,7 @@ "typeString": "address" }, "typeName": { - "id": 834, + "id": 849, "name": "address", "nodeType": "ElementaryTypeName", "src": "860:7:3", @@ -11757,12 +11994,12 @@ }, "payable": false, "returnParameters": { - "id": 837, + "id": 852, "nodeType": "ParameterList", "parameters": [], "src": "886:0:3" }, - "scope": 858, + "scope": 873, "src": "836:94:3", "stateMutability": "nonpayable", "superFunction": null, @@ -11770,7 +12007,7 @@ }, { "body": { - "id": 856, + "id": 871, "nodeType": "Block", "src": "991:47:3", "statements": [ @@ -11780,11 +12017,11 @@ "arguments": [ { "argumentTypes": null, - "id": 853, + "id": 868, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 847, + "referencedDeclaration": 862, "src": "1022:7:3", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11801,32 +12038,32 @@ ], "expression": { "argumentTypes": null, - "id": 850, + "id": 865, "name": "_supervisors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 779, + "referencedDeclaration": 794, "src": "1002:12:3", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage", + "typeIdentifier": "t_struct$_Role_$1089_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 852, + "id": 867, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 1137, + "referencedDeclaration": 1152, "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_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$1089_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$1089_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 854, + "id": 869, "isConstant": false, "isLValue": false, "isPure": false, @@ -11840,14 +12077,14 @@ "typeString": "tuple()" } }, - "id": 855, + "id": 870, "nodeType": "ExpressionStatement", "src": "1002:28:3" } ] }, "documentation": null, - "id": 857, + "id": 872, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -11855,15 +12092,15 @@ "name": "_removeSupervisor", "nodeType": "FunctionDefinition", "parameters": { - "id": 848, + "id": 863, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 847, + "id": 862, "name": "account", "nodeType": "VariableDeclaration", - "scope": 857, + "scope": 872, "src": "965:15:3", "stateVariable": false, "storageLocation": "default", @@ -11872,7 +12109,7 @@ "typeString": "address" }, "typeName": { - "id": 846, + "id": 861, "name": "address", "nodeType": "ElementaryTypeName", "src": "965:7:3", @@ -11889,19 +12126,19 @@ }, "payable": false, "returnParameters": { - "id": 849, + "id": 864, "nodeType": "ParameterList", "parameters": [], "src": "991:0:3" }, - "scope": 858, + "scope": 873, "src": "938:100:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 859, + "scope": 874, "src": "221:820:3" } ], @@ -11914,14 +12151,14 @@ "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/AlgoSystemRole.sol", "exportedSymbols": { "AlgoSystemRole": [ - 945 + 960 ] }, - "id": 946, + "id": 961, "nodeType": "SourceUnit", "nodes": [ { - "id": 860, + "id": 875, "literals": [ "solidity", "^", @@ -11934,10 +12171,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": 861, + "id": 876, "nodeType": "ImportDirective", - "scope": 946, - "sourceUnit": 1162, + "scope": 961, + "sourceUnit": 1177, "src": "28:189:4", "symbolAliases": [], "unitAlias": "" @@ -11948,24 +12185,24 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 945, + "id": 960, "linearizedBaseContracts": [ - 945 + 960 ], "name": "AlgoSystemRole", "nodeType": "ContractDefinition", "nodes": [ { - "id": 864, + "id": 879, "libraryName": { "contractScope": null, - "id": 862, + "id": 877, "name": "Roles", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1161, + "referencedDeclaration": 1176, "src": "258:5:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_Roles_$1161", + "typeIdentifier": "t_contract$_Roles_$1176", "typeString": "library Roles" } }, @@ -11973,39 +12210,39 @@ "src": "252:27:4", "typeName": { "contractScope": null, - "id": 863, + "id": 878, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1074, + "referencedDeclaration": 1089, "src": "268:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeIdentifier": "t_struct$_Role_$1089_storage_ptr", "typeString": "struct Roles.Role" } } }, { "constant": false, - "id": 866, + "id": 881, "name": "_systemMembers", "nodeType": "VariableDeclaration", - "scope": 945, + "scope": 960, "src": "287:33:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage", + "typeIdentifier": "t_struct$_Role_$1089_storage", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 865, + "id": 880, "name": "Roles.Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1074, + "referencedDeclaration": 1089, "src": "287:10:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeIdentifier": "t_struct$_Role_$1089_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -12014,7 +12251,7 @@ }, { "body": { - "id": 874, + "id": 889, "nodeType": "Block", "src": "353:41:4", "statements": [ @@ -12026,18 +12263,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 870, + "id": 885, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1517, + "referencedDeclaration": 1532, "src": "375:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 871, + "id": 886, "isConstant": false, "isLValue": false, "isPure": false, @@ -12059,18 +12296,18 @@ "typeString": "address" } ], - "id": 869, + "id": 884, "name": "_addSystem", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 932, + "referencedDeclaration": 947, "src": "364:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 872, + "id": 887, "isConstant": false, "isLValue": false, "isPure": false, @@ -12084,14 +12321,14 @@ "typeString": "tuple()" } }, - "id": 873, + "id": 888, "nodeType": "ExpressionStatement", "src": "364:22:4" } ] }, "documentation": null, - "id": 875, + "id": 890, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -12099,19 +12336,19 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 867, + "id": 882, "nodeType": "ParameterList", "parameters": [], "src": "341:2:4" }, "payable": false, "returnParameters": { - "id": 868, + "id": 883, "nodeType": "ParameterList", "parameters": [], "src": "353:0:4" }, - "scope": 945, + "scope": 960, "src": "329:65:4", "stateMutability": "nonpayable", "superFunction": null, @@ -12119,7 +12356,7 @@ }, { "body": { - "id": 885, + "id": 900, "nodeType": "Block", "src": "424:60:4", "statements": [ @@ -12134,18 +12371,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 879, + "id": 894, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1517, + "referencedDeclaration": 1532, "src": "452:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 880, + "id": 895, "isConstant": false, "isLValue": false, "isPure": false, @@ -12167,18 +12404,18 @@ "typeString": "address" } ], - "id": 878, + "id": 893, "name": "isSystem", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 899, + "referencedDeclaration": 914, "src": "443:8:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view returns (bool)" } }, - "id": 881, + "id": 896, "isConstant": false, "isLValue": false, "isPure": false, @@ -12200,21 +12437,21 @@ "typeString": "bool" } ], - "id": 877, + "id": 892, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, + "referencedDeclaration": 1535, "src": "435:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 882, + "id": 897, "isConstant": false, "isLValue": false, "isPure": false, @@ -12228,23 +12465,23 @@ "typeString": "tuple()" } }, - "id": 883, + "id": 898, "nodeType": "ExpressionStatement", "src": "435:29:4" }, { - "id": 884, + "id": 899, "nodeType": "PlaceholderStatement", "src": "475:1:4" } ] }, "documentation": null, - "id": 886, + "id": 901, "name": "onlySystem", "nodeType": "ModifierDefinition", "parameters": { - "id": 876, + "id": 891, "nodeType": "ParameterList", "parameters": [], "src": "421:2:4" @@ -12254,7 +12491,7 @@ }, { "body": { - "id": 898, + "id": 913, "nodeType": "Block", "src": "554:53:4", "statements": [ @@ -12264,11 +12501,11 @@ "arguments": [ { "argumentTypes": null, - "id": 895, + "id": 910, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 888, + "referencedDeclaration": 903, "src": "591:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12285,32 +12522,32 @@ ], "expression": { "argumentTypes": null, - "id": 893, + "id": 908, "name": "_systemMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, + "referencedDeclaration": 881, "src": "572:14:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage", + "typeIdentifier": "t_struct$_Role_$1089_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 894, + "id": 909, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "has", "nodeType": "MemberAccess", - "referencedDeclaration": 1160, + "referencedDeclaration": 1175, "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_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$1089_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$1089_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 896, + "id": 911, "isConstant": false, "isLValue": false, "isPure": false, @@ -12324,15 +12561,15 @@ "typeString": "bool" } }, - "functionReturnParameters": 892, - "id": 897, + "functionReturnParameters": 907, + "id": 912, "nodeType": "Return", "src": "565:34:4" } ] }, "documentation": null, - "id": 899, + "id": 914, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -12340,15 +12577,15 @@ "name": "isSystem", "nodeType": "FunctionDefinition", "parameters": { - "id": 889, + "id": 904, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 888, + "id": 903, "name": "account", "nodeType": "VariableDeclaration", - "scope": 899, + "scope": 914, "src": "510:15:4", "stateVariable": false, "storageLocation": "default", @@ -12357,7 +12594,7 @@ "typeString": "address" }, "typeName": { - "id": 887, + "id": 902, "name": "address", "nodeType": "ElementaryTypeName", "src": "510:7:4", @@ -12374,15 +12611,15 @@ }, "payable": false, "returnParameters": { - "id": 892, + "id": 907, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 891, + "id": 906, "name": "", "nodeType": "VariableDeclaration", - "scope": 899, + "scope": 914, "src": "548:4:4", "stateVariable": false, "storageLocation": "default", @@ -12391,7 +12628,7 @@ "typeString": "bool" }, "typeName": { - "id": 890, + "id": 905, "name": "bool", "nodeType": "ElementaryTypeName", "src": "548:4:4", @@ -12406,7 +12643,7 @@ ], "src": "547:6:4" }, - "scope": 945, + "scope": 960, "src": "492:115:4", "stateMutability": "view", "superFunction": null, @@ -12414,7 +12651,7 @@ }, { "body": { - "id": 910, + "id": 925, "nodeType": "Block", "src": "669:38:4", "statements": [ @@ -12424,11 +12661,11 @@ "arguments": [ { "argumentTypes": null, - "id": 907, + "id": 922, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 901, + "referencedDeclaration": 916, "src": "691:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12443,18 +12680,18 @@ "typeString": "address" } ], - "id": 906, + "id": 921, "name": "_addSystem", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 932, + "referencedDeclaration": 947, "src": "680:10:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 908, + "id": 923, "isConstant": false, "isLValue": false, "isPure": false, @@ -12468,28 +12705,28 @@ "typeString": "tuple()" } }, - "id": 909, + "id": 924, "nodeType": "ExpressionStatement", "src": "680:19:4" } ] }, "documentation": null, - "id": 911, + "id": 926, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 904, + "id": 919, "modifierName": { "argumentTypes": null, - "id": 903, + "id": 918, "name": "onlySystem", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 886, + "referencedDeclaration": 901, "src": "658:10:4", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", @@ -12503,15 +12740,15 @@ "name": "addSystem", "nodeType": "FunctionDefinition", "parameters": { - "id": 902, + "id": 917, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 901, + "id": 916, "name": "account", "nodeType": "VariableDeclaration", - "scope": 911, + "scope": 926, "src": "634:15:4", "stateVariable": false, "storageLocation": "default", @@ -12520,7 +12757,7 @@ "typeString": "address" }, "typeName": { - "id": 900, + "id": 915, "name": "address", "nodeType": "ElementaryTypeName", "src": "634:7:4", @@ -12537,12 +12774,12 @@ }, "payable": false, "returnParameters": { - "id": 905, + "id": 920, "nodeType": "ParameterList", "parameters": [], "src": "669:0:4" }, - "scope": 945, + "scope": 960, "src": "615:92:4", "stateMutability": "nonpayable", "superFunction": null, @@ -12550,7 +12787,7 @@ }, { "body": { - "id": 919, + "id": 934, "nodeType": "Block", "src": "748:44:4", "statements": [ @@ -12562,18 +12799,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 915, + "id": 930, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1517, + "referencedDeclaration": 1532, "src": "773:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 916, + "id": 931, "isConstant": false, "isLValue": false, "isPure": false, @@ -12595,18 +12832,18 @@ "typeString": "address" } ], - "id": 914, + "id": 929, "name": "_removeSystem", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 944, + "referencedDeclaration": 959, "src": "759:13:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 917, + "id": 932, "isConstant": false, "isLValue": false, "isPure": false, @@ -12620,14 +12857,14 @@ "typeString": "tuple()" } }, - "id": 918, + "id": 933, "nodeType": "ExpressionStatement", "src": "759:25:4" } ] }, "documentation": null, - "id": 920, + "id": 935, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -12635,19 +12872,19 @@ "name": "renounceSystem", "nodeType": "FunctionDefinition", "parameters": { - "id": 912, + "id": 927, "nodeType": "ParameterList", "parameters": [], "src": "738:2:4" }, "payable": false, "returnParameters": { - "id": 913, + "id": 928, "nodeType": "ParameterList", "parameters": [], "src": "748:0:4" }, - "scope": 945, + "scope": 960, "src": "715:77:4", "stateMutability": "nonpayable", "superFunction": null, @@ -12655,7 +12892,7 @@ }, { "body": { - "id": 931, + "id": 946, "nodeType": "Block", "src": "846:46:4", "statements": [ @@ -12665,11 +12902,11 @@ "arguments": [ { "argumentTypes": null, - "id": 928, + "id": 943, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 922, + "referencedDeclaration": 937, "src": "876:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12686,32 +12923,32 @@ ], "expression": { "argumentTypes": null, - "id": 925, + "id": 940, "name": "_systemMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, + "referencedDeclaration": 881, "src": "857:14:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage", + "typeIdentifier": "t_struct$_Role_$1089_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 927, + "id": 942, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1106, + "referencedDeclaration": 1121, "src": "857:18:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$1074_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$1074_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$1089_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$1089_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 929, + "id": 944, "isConstant": false, "isLValue": false, "isPure": false, @@ -12725,14 +12962,14 @@ "typeString": "tuple()" } }, - "id": 930, + "id": 945, "nodeType": "ExpressionStatement", "src": "857:27:4" } ] }, "documentation": null, - "id": 932, + "id": 947, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -12740,15 +12977,15 @@ "name": "_addSystem", "nodeType": "FunctionDefinition", "parameters": { - "id": 923, + "id": 938, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 922, + "id": 937, "name": "account", "nodeType": "VariableDeclaration", - "scope": 932, + "scope": 947, "src": "820:15:4", "stateVariable": false, "storageLocation": "default", @@ -12757,7 +12994,7 @@ "typeString": "address" }, "typeName": { - "id": 921, + "id": 936, "name": "address", "nodeType": "ElementaryTypeName", "src": "820:7:4", @@ -12774,12 +13011,12 @@ }, "payable": false, "returnParameters": { - "id": 924, + "id": 939, "nodeType": "ParameterList", "parameters": [], "src": "846:0:4" }, - "scope": 945, + "scope": 960, "src": "800:92:4", "stateMutability": "nonpayable", "superFunction": null, @@ -12787,7 +13024,7 @@ }, { "body": { - "id": 943, + "id": 958, "nodeType": "Block", "src": "949:49:4", "statements": [ @@ -12797,11 +13034,11 @@ "arguments": [ { "argumentTypes": null, - "id": 940, + "id": 955, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 934, + "referencedDeclaration": 949, "src": "982:7:4", "typeDescriptions": { "typeIdentifier": "t_address", @@ -12818,32 +13055,32 @@ ], "expression": { "argumentTypes": null, - "id": 937, + "id": 952, "name": "_systemMembers", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 866, + "referencedDeclaration": 881, "src": "960:14:4", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage", + "typeIdentifier": "t_struct$_Role_$1089_storage", "typeString": "struct Roles.Role storage ref" } }, - "id": 939, + "id": 954, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "remove", "nodeType": "MemberAccess", - "referencedDeclaration": 1137, + "referencedDeclaration": 1152, "src": "960:21:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$1074_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$1074_storage_ptr_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$1089_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$1089_storage_ptr_$", "typeString": "function (struct Roles.Role storage pointer,address)" } }, - "id": 941, + "id": 956, "isConstant": false, "isLValue": false, "isPure": false, @@ -12857,14 +13094,14 @@ "typeString": "tuple()" } }, - "id": 942, + "id": 957, "nodeType": "ExpressionStatement", "src": "960:30:4" } ] }, "documentation": null, - "id": 944, + "id": 959, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -12872,15 +13109,15 @@ "name": "_removeSystem", "nodeType": "FunctionDefinition", "parameters": { - "id": 935, + "id": 950, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 934, + "id": 949, "name": "account", "nodeType": "VariableDeclaration", - "scope": 944, + "scope": 959, "src": "923:15:4", "stateVariable": false, "storageLocation": "default", @@ -12889,7 +13126,7 @@ "typeString": "address" }, "typeName": { - "id": 933, + "id": 948, "name": "address", "nodeType": "ElementaryTypeName", "src": "923:7:4", @@ -12906,19 +13143,19 @@ }, "payable": false, "returnParameters": { - "id": 936, + "id": 951, "nodeType": "ParameterList", "parameters": [], "src": "949:0:4" }, - "scope": 945, + "scope": 960, "src": "900:98:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 946, + "scope": 961, "src": "221:780:4" } ], @@ -12931,14 +13168,14 @@ "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/ERC20TokenHolder.sol", "exportedSymbols": { "ERC20TokenHolder": [ - 1002 + 1017 ] }, - "id": 1003, + "id": 1018, "nodeType": "SourceUnit", "nodes": [ { - "id": 947, + "id": 962, "literals": [ "solidity", "0.4", @@ -12950,10 +13187,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": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/node_modules/openzeppelin-solidity/contracts/token/ERC20/IERC20.sol", - "id": 948, + "id": 963, "nodeType": "ImportDirective", - "scope": 1003, - "sourceUnit": 1359, + "scope": 1018, + "sourceUnit": 1374, "src": "27:195:5", "symbolAliases": [], "unitAlias": "" @@ -12961,10 +13198,10 @@ { "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": 949, + "id": 964, "nodeType": "ImportDirective", - "scope": 1003, - "sourceUnit": 1503, + "scope": 1018, + "sourceUnit": 1518, "src": "224:198:5", "symbolAliases": [], "unitAlias": "" @@ -12972,10 +13209,10 @@ { "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/Terminable.sol", "file": "./Terminable.sol", - "id": 950, + "id": 965, "nodeType": "ImportDirective", - "scope": 1003, - "sourceUnit": 1068, + "scope": 1018, + "sourceUnit": 1083, "src": "426:26:5", "symbolAliases": [], "unitAlias": "" @@ -12986,46 +13223,46 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 951, + "id": 966, "name": "Terminable", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1067, + "referencedDeclaration": 1082, "src": "485:10:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_Terminable_$1067", + "typeIdentifier": "t_contract$_Terminable_$1082", "typeString": "contract Terminable" } }, - "id": 952, + "id": 967, "nodeType": "InheritanceSpecifier", "src": "485:10:5" } ], "contractDependencies": [ - 1067 + 1082 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1002, + "id": 1017, "linearizedBaseContracts": [ - 1002, - 1067 + 1017, + 1082 ], "name": "ERC20TokenHolder", "nodeType": "ContractDefinition", "nodes": [ { - "id": 955, + "id": 970, "libraryName": { "contractScope": null, - "id": 953, + "id": 968, "name": "SafeERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1502, + "referencedDeclaration": 1517, "src": "509:9:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$1502", + "typeIdentifier": "t_contract$_SafeERC20_$1517", "typeString": "library SafeERC20" } }, @@ -13033,39 +13270,39 @@ "src": "503:27:5", "typeName": { "contractScope": null, - "id": 954, + "id": 969, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1358, + "referencedDeclaration": 1373, "src": "523:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } } }, { "constant": false, - "id": 957, + "id": 972, "name": "_token", "nodeType": "VariableDeclaration", - "scope": 1002, + "scope": 1017, "src": "538:22:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 956, + "id": 971, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1358, + "referencedDeclaration": 1373, "src": "538:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } }, @@ -13074,28 +13311,28 @@ }, { "body": { - "id": 970, + "id": 985, "nodeType": "Block", "src": "625:48:5", "statements": [ { "expression": { "argumentTypes": null, - "id": 968, + "id": 983, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 964, + "id": 979, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 957, + "referencedDeclaration": 972, "src": "636:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } }, @@ -13106,11 +13343,11 @@ "arguments": [ { "argumentTypes": null, - "id": 966, + "id": 981, "name": "tokenAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, + "referencedDeclaration": 974, "src": "652:12:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -13125,18 +13362,18 @@ "typeString": "address" } ], - "id": 965, + "id": 980, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, + "referencedDeclaration": 1373, "src": "645:6:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$1358_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$1373_$", "typeString": "type(contract IERC20)" } }, - "id": 967, + "id": 982, "isConstant": false, "isLValue": false, "isPure": false, @@ -13146,41 +13383,41 @@ "nodeType": "FunctionCall", "src": "645:20:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } }, "src": "636:29:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } }, - "id": 969, + "id": 984, "nodeType": "ExpressionStatement", "src": "636:29:5" } ] }, "documentation": null, - "id": 971, + "id": 986, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [ { "arguments": [], - "id": 962, + "id": 977, "modifierName": { "argumentTypes": null, - "id": 961, + "id": 976, "name": "Terminable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1067, + "referencedDeclaration": 1082, "src": "603:10:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Terminable_$1067_$", + "typeIdentifier": "t_type$_t_contract$_Terminable_$1082_$", "typeString": "type(contract Terminable)" } }, @@ -13191,15 +13428,15 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 960, + "id": 975, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 959, + "id": 974, "name": "tokenAddress", "nodeType": "VariableDeclaration", - "scope": 971, + "scope": 986, "src": "581:20:5", "stateVariable": false, "storageLocation": "default", @@ -13208,7 +13445,7 @@ "typeString": "address" }, "typeName": { - "id": 958, + "id": 973, "name": "address", "nodeType": "ElementaryTypeName", "src": "581:7:5", @@ -13225,12 +13462,12 @@ }, "payable": false, "returnParameters": { - "id": 963, + "id": 978, "nodeType": "ParameterList", "parameters": [], "src": "625:0:5" }, - "scope": 1002, + "scope": 1017, "src": "569:104:5", "stateMutability": "nonpayable", "superFunction": null, @@ -13238,21 +13475,21 @@ }, { "body": { - "id": 1000, + "id": 1015, "nodeType": "Block", "src": "712:214:5", "statements": [ { "assignments": [ - 975 + 990 ], "declarations": [ { "constant": false, - "id": 975, + "id": 990, "name": "currentBalance", "nodeType": "VariableDeclaration", - "scope": 1001, + "scope": 1016, "src": "723:22:5", "stateVariable": false, "storageLocation": "default", @@ -13261,7 +13498,7 @@ "typeString": "uint256" }, "typeName": { - "id": 974, + "id": 989, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "723:7:5", @@ -13274,7 +13511,7 @@ "visibility": "internal" } ], - "id": 982, + "id": 997, "initialValue": { "argumentTypes": null, "arguments": [ @@ -13283,14 +13520,14 @@ "arguments": [ { "argumentTypes": null, - "id": 979, + "id": 994, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1546, + "referencedDeclaration": 1561, "src": "773:4:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20TokenHolder_$1002", + "typeIdentifier": "t_contract$_ERC20TokenHolder_$1017", "typeString": "contract ERC20TokenHolder" } } @@ -13298,11 +13535,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ERC20TokenHolder_$1002", + "typeIdentifier": "t_contract$_ERC20TokenHolder_$1017", "typeString": "contract ERC20TokenHolder" } ], - "id": 978, + "id": 993, "isConstant": false, "isLValue": false, "isPure": true, @@ -13315,7 +13552,7 @@ }, "typeName": "address" }, - "id": 980, + "id": 995, "isConstant": false, "isLValue": false, "isPure": false, @@ -13339,32 +13576,32 @@ ], "expression": { "argumentTypes": null, - "id": 976, + "id": 991, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 957, + "referencedDeclaration": 972, "src": "748:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } }, - "id": 977, + "id": 992, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balanceOf", "nodeType": "MemberAccess", - "referencedDeclaration": 1303, + "referencedDeclaration": 1318, "src": "748:16:5", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", "typeString": "function (address) view external returns (uint256)" } }, - "id": 981, + "id": 996, "isConstant": false, "isLValue": false, "isPure": false, @@ -13388,18 +13625,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 985, + "id": 1000, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 983, + "id": 998, "name": "currentBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, + "referencedDeclaration": 990, "src": "793:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13411,7 +13648,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 984, + "id": 999, "isConstant": false, "isLValue": false, "isPure": true, @@ -13433,11 +13670,11 @@ } }, "falseBody": null, - "id": 994, + "id": 1009, "nodeType": "IfStatement", "src": "790:95:5", "trueBody": { - "id": 993, + "id": 1008, "nodeType": "Block", "src": "813:72:5", "statements": [ @@ -13447,11 +13684,11 @@ "arguments": [ { "argumentTypes": null, - "id": 989, + "id": 1004, "name": "_creator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1034, + "referencedDeclaration": 1049, "src": "848:8:5", "typeDescriptions": { "typeIdentifier": "t_address", @@ -13460,11 +13697,11 @@ }, { "argumentTypes": null, - "id": 990, + "id": 1005, "name": "currentBalance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 975, + "referencedDeclaration": 990, "src": "858:14:5", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13485,32 +13722,32 @@ ], "expression": { "argumentTypes": null, - "id": 986, + "id": 1001, "name": "_token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 957, + "referencedDeclaration": 972, "src": "828:6:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } }, - "id": 988, + "id": 1003, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransfer", "nodeType": "MemberAccess", - "referencedDeclaration": 1383, + "referencedDeclaration": 1398, "src": "828:19:5", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1358_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$1358_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$1373_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$1373_$", "typeString": "function (contract IERC20,address,uint256)" } }, - "id": 991, + "id": 1006, "isConstant": false, "isLValue": false, "isPure": false, @@ -13524,7 +13761,7 @@ "typeString": "tuple()" } }, - "id": 992, + "id": 1007, "nodeType": "ExpressionStatement", "src": "828:45:5" } @@ -13539,32 +13776,32 @@ "argumentTypes": [], "expression": { "argumentTypes": null, - "id": 995, + "id": 1010, "name": "Terminable", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1067, + "referencedDeclaration": 1082, "src": "895:10:5", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Terminable_$1067_$", + "typeIdentifier": "t_type$_t_contract$_Terminable_$1082_$", "typeString": "type(contract Terminable)" } }, - "id": 997, + "id": 1012, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "_terminate", "nodeType": "MemberAccess", - "referencedDeclaration": 1066, + "referencedDeclaration": 1081, "src": "895:21:5", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 998, + "id": 1013, "isConstant": false, "isLValue": false, "isPure": false, @@ -13578,14 +13815,14 @@ "typeString": "tuple()" } }, - "id": 999, + "id": 1014, "nodeType": "ExpressionStatement", "src": "895:23:5" } ] }, "documentation": null, - "id": 1001, + "id": 1016, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -13593,26 +13830,26 @@ "name": "_terminate", "nodeType": "FunctionDefinition", "parameters": { - "id": 972, + "id": 987, "nodeType": "ParameterList", "parameters": [], "src": "700:2:5" }, "payable": false, "returnParameters": { - "id": 973, + "id": 988, "nodeType": "ParameterList", "parameters": [], "src": "712:0:5" }, - "scope": 1002, + "scope": 1017, "src": "681:245:5", "stateMutability": "nonpayable", - "superFunction": 1066, + "superFunction": 1081, "visibility": "internal" } ], - "scope": 1003, + "scope": 1018, "src": "456:473:5" } ], @@ -13625,14 +13862,14 @@ "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/IAlgoMiner.sol", "exportedSymbols": { "IAlgoMiner": [ - 1030 + 1045 ] }, - "id": 1031, + "id": 1046, "nodeType": "SourceUnit", "nodes": [ { - "id": 1004, + "id": 1019, "literals": [ "solidity", "0.4", @@ -13647,9 +13884,9 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": false, - "id": 1030, + "id": 1045, "linearizedBaseContracts": [ - 1030 + 1045 ], "name": "IAlgoMiner", "nodeType": "ContractDefinition", @@ -13657,7 +13894,7 @@ { "body": null, "documentation": null, - "id": 1009, + "id": 1024, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -13665,22 +13902,22 @@ "name": "isAlgoMiner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1005, + "id": 1020, "nodeType": "ParameterList", "parameters": [], "src": "74:2:6" }, "payable": false, "returnParameters": { - "id": 1008, + "id": 1023, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1007, + "id": 1022, "name": "", "nodeType": "VariableDeclaration", - "scope": 1009, + "scope": 1024, "src": "98:4:6", "stateVariable": false, "storageLocation": "default", @@ -13689,7 +13926,7 @@ "typeString": "bool" }, "typeName": { - "id": 1006, + "id": 1021, "name": "bool", "nodeType": "ElementaryTypeName", "src": "98:4:6", @@ -13704,7 +13941,7 @@ ], "src": "97:6:6" }, - "scope": 1030, + "scope": 1045, "src": "54:50:6", "stateMutability": "pure", "superFunction": null, @@ -13713,7 +13950,7 @@ { "body": null, "documentation": null, - "id": 1014, + "id": 1029, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -13721,22 +13958,22 @@ "name": "getMinerType", "nodeType": "FunctionDefinition", "parameters": { - "id": 1010, + "id": 1025, "nodeType": "ParameterList", "parameters": [], "src": "131:2:6" }, "payable": false, "returnParameters": { - "id": 1013, + "id": 1028, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1012, + "id": 1027, "name": "", "nodeType": "VariableDeclaration", - "scope": 1014, + "scope": 1029, "src": "155:5:6", "stateVariable": false, "storageLocation": "default", @@ -13745,7 +13982,7 @@ "typeString": "uint8" }, "typeName": { - "id": 1011, + "id": 1026, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "155:5:6", @@ -13760,7 +13997,7 @@ ], "src": "154:7:6" }, - "scope": 1030, + "scope": 1045, "src": "110:52:6", "stateMutability": "view", "superFunction": null, @@ -13769,7 +14006,7 @@ { "body": null, "documentation": null, - "id": 1019, + "id": 1034, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -13777,22 +14014,22 @@ "name": "getCategory", "nodeType": "FunctionDefinition", "parameters": { - "id": 1015, + "id": 1030, "nodeType": "ParameterList", "parameters": [], "src": "188:2:6" }, "payable": false, "returnParameters": { - "id": 1018, + "id": 1033, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1017, + "id": 1032, "name": "", "nodeType": "VariableDeclaration", - "scope": 1019, + "scope": 1034, "src": "212:5:6", "stateVariable": false, "storageLocation": "default", @@ -13801,7 +14038,7 @@ "typeString": "uint8" }, "typeName": { - "id": 1016, + "id": 1031, "name": "uint8", "nodeType": "ElementaryTypeName", "src": "212:5:6", @@ -13816,7 +14053,7 @@ ], "src": "211:7:6" }, - "scope": 1030, + "scope": 1045, "src": "168:51:6", "stateMutability": "view", "superFunction": null, @@ -13825,7 +14062,7 @@ { "body": null, "documentation": null, - "id": 1024, + "id": 1039, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -13833,22 +14070,22 @@ "name": "isMining", "nodeType": "FunctionDefinition", "parameters": { - "id": 1020, + "id": 1035, "nodeType": "ParameterList", "parameters": [], "src": "242:2:6" }, "payable": false, "returnParameters": { - "id": 1023, + "id": 1038, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1022, + "id": 1037, "name": "", "nodeType": "VariableDeclaration", - "scope": 1024, + "scope": 1039, "src": "266:4:6", "stateVariable": false, "storageLocation": "default", @@ -13857,7 +14094,7 @@ "typeString": "bool" }, "typeName": { - "id": 1021, + "id": 1036, "name": "bool", "nodeType": "ElementaryTypeName", "src": "266:4:6", @@ -13872,7 +14109,7 @@ ], "src": "265:6:6" }, - "scope": 1030, + "scope": 1045, "src": "225:47:6", "stateMutability": "view", "superFunction": null, @@ -13881,7 +14118,7 @@ { "body": null, "documentation": null, - "id": 1029, + "id": 1044, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -13889,22 +14126,22 @@ "name": "getMiner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1025, + "id": 1040, "nodeType": "ParameterList", "parameters": [], "src": "295:2:6" }, "payable": false, "returnParameters": { - "id": 1028, + "id": 1043, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1027, + "id": 1042, "name": "", "nodeType": "VariableDeclaration", - "scope": 1029, + "scope": 1044, "src": "319:7:6", "stateVariable": false, "storageLocation": "default", @@ -13913,7 +14150,7 @@ "typeString": "address" }, "typeName": { - "id": 1026, + "id": 1041, "name": "address", "nodeType": "ElementaryTypeName", "src": "319:7:6", @@ -13928,14 +14165,14 @@ ], "src": "318:9:6" }, - "scope": 1030, + "scope": 1045, "src": "278:50:6", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 1031, + "scope": 1046, "src": "27:304:6" } ], @@ -13948,14 +14185,14 @@ "absolutePath": "d:/GitHub/ALGOToken/labs/algo-token-distribution/src/AdvancedAlgos.AlgoToken.AlgoTokenDistribution/SmartContracts/src/Terminable.sol", "exportedSymbols": { "Terminable": [ - 1067 + 1082 ] }, - "id": 1068, + "id": 1083, "nodeType": "SourceUnit", "nodes": [ { - "id": 1032, + "id": 1047, "literals": [ "solidity", "0.4", @@ -13970,19 +14207,19 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 1067, + "id": 1082, "linearizedBaseContracts": [ - 1067 + 1082 ], "name": "Terminable", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1034, + "id": 1049, "name": "_creator", "nodeType": "VariableDeclaration", - "scope": 1067, + "scope": 1082, "src": "56:25:7", "stateVariable": true, "storageLocation": "default", @@ -13991,7 +14228,7 @@ "typeString": "address" }, "typeName": { - "id": 1033, + "id": 1048, "name": "address", "nodeType": "ElementaryTypeName", "src": "56:7:7", @@ -14005,10 +14242,10 @@ }, { "constant": false, - "id": 1036, + "id": 1051, "name": "_terminated", "nodeType": "VariableDeclaration", - "scope": 1067, + "scope": 1082, "src": "88:25:7", "stateVariable": true, "storageLocation": "default", @@ -14017,7 +14254,7 @@ "typeString": "bool" }, "typeName": { - "id": 1035, + "id": 1050, "name": "bool", "nodeType": "ElementaryTypeName", "src": "88:4:7", @@ -14031,25 +14268,25 @@ }, { "body": { - "id": 1048, + "id": 1063, "nodeType": "Block", "src": "145:70:7", "statements": [ { "expression": { "argumentTypes": null, - "id": 1042, + "id": 1057, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1039, + "id": 1054, "name": "_creator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1034, + "referencedDeclaration": 1049, "src": "156:8:7", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14062,18 +14299,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1040, + "id": 1055, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1517, + "referencedDeclaration": 1532, "src": "167:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1041, + "id": 1056, "isConstant": false, "isLValue": false, "isPure": false, @@ -14093,25 +14330,25 @@ "typeString": "address" } }, - "id": 1043, + "id": 1058, "nodeType": "ExpressionStatement", "src": "156:21:7" }, { "expression": { "argumentTypes": null, - "id": 1046, + "id": 1061, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1044, + "id": 1059, "name": "_terminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, + "referencedDeclaration": 1051, "src": "188:11:7", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -14123,7 +14360,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 1045, + "id": 1060, "isConstant": false, "isLValue": false, "isPure": true, @@ -14144,14 +14381,14 @@ "typeString": "bool" } }, - "id": 1047, + "id": 1062, "nodeType": "ExpressionStatement", "src": "188:19:7" } ] }, "documentation": null, - "id": 1049, + "id": 1064, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -14159,19 +14396,19 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1037, + "id": 1052, "nodeType": "ParameterList", "parameters": [], "src": "133:2:7" }, "payable": false, "returnParameters": { - "id": 1038, + "id": 1053, "nodeType": "ParameterList", "parameters": [], "src": "145:0:7" }, - "scope": 1067, + "scope": 1082, "src": "122:93:7", "stateMutability": "nonpayable", "superFunction": null, @@ -14179,7 +14416,7 @@ }, { "body": { - "id": 1057, + "id": 1072, "nodeType": "Block", "src": "248:52:7", "statements": [ @@ -14189,7 +14426,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1053, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, @@ -14200,11 +14437,11 @@ "src": "267:12:7", "subExpression": { "argumentTypes": null, - "id": 1052, + "id": 1067, "name": "_terminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, + "referencedDeclaration": 1051, "src": "268:11:7", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -14224,21 +14461,21 @@ "typeString": "bool" } ], - "id": 1051, + "id": 1066, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, + "referencedDeclaration": 1535, "src": "259:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1054, + "id": 1069, "isConstant": false, "isLValue": false, "isPure": false, @@ -14252,23 +14489,23 @@ "typeString": "tuple()" } }, - "id": 1055, + "id": 1070, "nodeType": "ExpressionStatement", "src": "259:21:7" }, { - "id": 1056, + "id": 1071, "nodeType": "PlaceholderStatement", "src": "291:1:7" } ] }, "documentation": null, - "id": 1058, + "id": 1073, "name": "notTerminated", "nodeType": "ModifierDefinition", "parameters": { - "id": 1050, + "id": 1065, "nodeType": "ParameterList", "parameters": [], "src": "245:2:7" @@ -14278,25 +14515,25 @@ }, { "body": { - "id": 1065, + "id": 1080, "nodeType": "Block", "src": "339:37:7", "statements": [ { "expression": { "argumentTypes": null, - "id": 1063, + "id": 1078, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1061, + "id": 1076, "name": "_terminated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, + "referencedDeclaration": 1051, "src": "350:11:7", "typeDescriptions": { "typeIdentifier": "t_bool", @@ -14308,7 +14545,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 1062, + "id": 1077, "isConstant": false, "isLValue": false, "isPure": true, @@ -14329,14 +14566,14 @@ "typeString": "bool" } }, - "id": 1064, + "id": 1079, "nodeType": "ExpressionStatement", "src": "350:18:7" } ] }, "documentation": null, - "id": 1066, + "id": 1081, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -14344,26 +14581,26 @@ "name": "_terminate", "nodeType": "FunctionDefinition", "parameters": { - "id": 1059, + "id": 1074, "nodeType": "ParameterList", "parameters": [], "src": "327:2:7" }, "payable": false, "returnParameters": { - "id": 1060, + "id": 1075, "nodeType": "ParameterList", "parameters": [], "src": "339:0:7" }, - "scope": 1067, + "scope": 1082, "src": "308:68:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 1068, + "scope": 1083, "src": "27:352:7" } ], @@ -14376,14 +14613,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": [ - 1161 + 1176 ] }, - "id": 1162, + "id": 1177, "nodeType": "SourceUnit", "nodes": [ { - "id": 1069, + "id": 1084, "literals": [ "solidity", "^", @@ -14399,23 +14636,23 @@ "contractKind": "library", "documentation": "@title Roles\n@dev Library for managing addresses assigned to a Role.", "fullyImplemented": true, - "id": 1161, + "id": 1176, "linearizedBaseContracts": [ - 1161 + 1176 ], "name": "Roles", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "Roles.Role", - "id": 1074, + "id": 1089, "members": [ { "constant": false, - "id": 1073, + "id": 1088, "name": "bearer", "nodeType": "VariableDeclaration", - "scope": 1074, + "scope": 1089, "src": "145:32:8", "stateVariable": false, "storageLocation": "default", @@ -14424,9 +14661,9 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 1072, + "id": 1087, "keyType": { - "id": 1070, + "id": 1085, "name": "address", "nodeType": "ElementaryTypeName", "src": "154:7:8", @@ -14442,7 +14679,7 @@ "typeString": "mapping(address => bool)" }, "valueType": { - "id": 1071, + "id": 1086, "name": "bool", "nodeType": "ElementaryTypeName", "src": "165:4:8", @@ -14458,13 +14695,13 @@ ], "name": "Role", "nodeType": "StructDefinition", - "scope": 1161, + "scope": 1176, "src": "127:55:8", "visibility": "public" }, { "body": { - "id": 1105, + "id": 1120, "nodeType": "Block", "src": "302:109:8", "statements": [ @@ -14478,18 +14715,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1086, + "id": 1101, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1082, + "id": 1097, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1078, + "referencedDeclaration": 1093, "src": "316:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14504,7 +14741,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1084, + "id": 1099, "isConstant": false, "isLValue": false, "isPure": true, @@ -14527,7 +14764,7 @@ "typeString": "int_const 0" } ], - "id": 1083, + "id": 1098, "isConstant": false, "isLValue": false, "isPure": true, @@ -14540,7 +14777,7 @@ }, "typeName": "address" }, - "id": 1085, + "id": 1100, "isConstant": false, "isLValue": false, "isPure": true, @@ -14568,21 +14805,21 @@ "typeString": "bool" } ], - "id": 1081, + "id": 1096, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, + "referencedDeclaration": 1535, "src": "308:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1087, + "id": 1102, "isConstant": false, "isLValue": false, "isPure": false, @@ -14596,7 +14833,7 @@ "typeString": "tuple()" } }, - "id": 1088, + "id": 1103, "nodeType": "ExpressionStatement", "src": "308:30:8" }, @@ -14606,7 +14843,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1094, + "id": 1109, "isConstant": false, "isLValue": false, "isPure": false, @@ -14620,24 +14857,24 @@ "arguments": [ { "argumentTypes": null, - "id": 1091, + "id": 1106, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1076, + "referencedDeclaration": 1091, "src": "357:4:8", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeIdentifier": "t_struct$_Role_$1089_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, { "argumentTypes": null, - "id": 1092, + "id": 1107, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1078, + "referencedDeclaration": 1093, "src": "363:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14648,7 +14885,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeIdentifier": "t_struct$_Role_$1089_storage_ptr", "typeString": "struct Roles.Role storage pointer" }, { @@ -14656,18 +14893,18 @@ "typeString": "address" } ], - "id": 1090, + "id": 1105, "name": "has", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1160, + "referencedDeclaration": 1175, "src": "353:3:8", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$1074_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$1089_storage_ptr_$_t_address_$returns$_t_bool_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 1093, + "id": 1108, "isConstant": false, "isLValue": false, "isPure": false, @@ -14694,21 +14931,21 @@ "typeString": "bool" } ], - "id": 1089, + "id": 1104, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, + "referencedDeclaration": 1535, "src": "344:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1095, + "id": 1110, "isConstant": false, "isLValue": false, "isPure": false, @@ -14722,14 +14959,14 @@ "typeString": "tuple()" } }, - "id": 1096, + "id": 1111, "nodeType": "ExpressionStatement", "src": "344:28:8" }, { "expression": { "argumentTypes": null, - "id": 1103, + "id": 1118, "isConstant": false, "isLValue": false, "isPure": false, @@ -14740,39 +14977,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1097, + "id": 1112, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1076, + "referencedDeclaration": 1091, "src": "379:4:8", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeIdentifier": "t_struct$_Role_$1089_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, - "id": 1100, + "id": 1115, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "bearer", "nodeType": "MemberAccess", - "referencedDeclaration": 1073, + "referencedDeclaration": 1088, "src": "379:11:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1101, + "id": 1116, "indexExpression": { "argumentTypes": null, - "id": 1099, + "id": 1114, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1078, + "referencedDeclaration": 1093, "src": "391:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14795,7 +15032,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 1102, + "id": 1117, "isConstant": false, "isLValue": false, "isPure": true, @@ -14816,14 +15053,14 @@ "typeString": "bool" } }, - "id": 1104, + "id": 1119, "nodeType": "ExpressionStatement", "src": "379:27:8" } ] }, "documentation": "@dev give an account access to this role", - "id": 1106, + "id": 1121, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -14831,31 +15068,31 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 1079, + "id": 1094, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1076, + "id": 1091, "name": "role", "nodeType": "VariableDeclaration", - "scope": 1106, + "scope": 1121, "src": "257:17:8", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeIdentifier": "t_struct$_Role_$1089_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 1075, + "id": 1090, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1074, + "referencedDeclaration": 1089, "src": "257:4:8", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeIdentifier": "t_struct$_Role_$1089_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -14864,10 +15101,10 @@ }, { "constant": false, - "id": 1078, + "id": 1093, "name": "account", "nodeType": "VariableDeclaration", - "scope": 1106, + "scope": 1121, "src": "276:15:8", "stateVariable": false, "storageLocation": "default", @@ -14876,7 +15113,7 @@ "typeString": "address" }, "typeName": { - "id": 1077, + "id": 1092, "name": "address", "nodeType": "ElementaryTypeName", "src": "276:7:8", @@ -14893,12 +15130,12 @@ }, "payable": false, "returnParameters": { - "id": 1080, + "id": 1095, "nodeType": "ParameterList", "parameters": [], "src": "302:0:8" }, - "scope": 1161, + "scope": 1176, "src": "244:167:8", "stateMutability": "nonpayable", "superFunction": null, @@ -14906,7 +15143,7 @@ }, { "body": { - "id": 1136, + "id": 1151, "nodeType": "Block", "src": "538:109:8", "statements": [ @@ -14920,18 +15157,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1118, + "id": 1133, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1114, + "id": 1129, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1110, + "referencedDeclaration": 1125, "src": "552:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -14946,7 +15183,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1116, + "id": 1131, "isConstant": false, "isLValue": false, "isPure": true, @@ -14969,7 +15206,7 @@ "typeString": "int_const 0" } ], - "id": 1115, + "id": 1130, "isConstant": false, "isLValue": false, "isPure": true, @@ -14982,7 +15219,7 @@ }, "typeName": "address" }, - "id": 1117, + "id": 1132, "isConstant": false, "isLValue": false, "isPure": true, @@ -15010,21 +15247,21 @@ "typeString": "bool" } ], - "id": 1113, + "id": 1128, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, + "referencedDeclaration": 1535, "src": "544:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1119, + "id": 1134, "isConstant": false, "isLValue": false, "isPure": false, @@ -15038,7 +15275,7 @@ "typeString": "tuple()" } }, - "id": 1120, + "id": 1135, "nodeType": "ExpressionStatement", "src": "544:30:8" }, @@ -15051,24 +15288,24 @@ "arguments": [ { "argumentTypes": null, - "id": 1123, + "id": 1138, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1108, + "referencedDeclaration": 1123, "src": "592:4:8", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeIdentifier": "t_struct$_Role_$1089_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, { "argumentTypes": null, - "id": 1124, + "id": 1139, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1110, + "referencedDeclaration": 1125, "src": "598:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -15079,7 +15316,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeIdentifier": "t_struct$_Role_$1089_storage_ptr", "typeString": "struct Roles.Role storage pointer" }, { @@ -15087,18 +15324,18 @@ "typeString": "address" } ], - "id": 1122, + "id": 1137, "name": "has", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1160, + "referencedDeclaration": 1175, "src": "588:3:8", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$1074_storage_ptr_$_t_address_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$1089_storage_ptr_$_t_address_$returns$_t_bool_$", "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)" } }, - "id": 1125, + "id": 1140, "isConstant": false, "isLValue": false, "isPure": false, @@ -15120,21 +15357,21 @@ "typeString": "bool" } ], - "id": 1121, + "id": 1136, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, + "referencedDeclaration": 1535, "src": "580:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1126, + "id": 1141, "isConstant": false, "isLValue": false, "isPure": false, @@ -15148,14 +15385,14 @@ "typeString": "tuple()" } }, - "id": 1127, + "id": 1142, "nodeType": "ExpressionStatement", "src": "580:27:8" }, { "expression": { "argumentTypes": null, - "id": 1134, + "id": 1149, "isConstant": false, "isLValue": false, "isPure": false, @@ -15166,39 +15403,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1128, + "id": 1143, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1108, + "referencedDeclaration": 1123, "src": "614:4:8", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeIdentifier": "t_struct$_Role_$1089_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, - "id": 1131, + "id": 1146, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "bearer", "nodeType": "MemberAccess", - "referencedDeclaration": 1073, + "referencedDeclaration": 1088, "src": "614:11:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1132, + "id": 1147, "indexExpression": { "argumentTypes": null, - "id": 1130, + "id": 1145, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1110, + "referencedDeclaration": 1125, "src": "626:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -15221,7 +15458,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 1133, + "id": 1148, "isConstant": false, "isLValue": false, "isPure": true, @@ -15242,14 +15479,14 @@ "typeString": "bool" } }, - "id": 1135, + "id": 1150, "nodeType": "ExpressionStatement", "src": "614:28:8" } ] }, "documentation": "@dev remove an account's access to this role", - "id": 1137, + "id": 1152, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -15257,31 +15494,31 @@ "name": "remove", "nodeType": "FunctionDefinition", "parameters": { - "id": 1111, + "id": 1126, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1108, + "id": 1123, "name": "role", "nodeType": "VariableDeclaration", - "scope": 1137, + "scope": 1152, "src": "493:17:8", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeIdentifier": "t_struct$_Role_$1089_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 1107, + "id": 1122, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1074, + "referencedDeclaration": 1089, "src": "493:4:8", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeIdentifier": "t_struct$_Role_$1089_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -15290,10 +15527,10 @@ }, { "constant": false, - "id": 1110, + "id": 1125, "name": "account", "nodeType": "VariableDeclaration", - "scope": 1137, + "scope": 1152, "src": "512:15:8", "stateVariable": false, "storageLocation": "default", @@ -15302,7 +15539,7 @@ "typeString": "address" }, "typeName": { - "id": 1109, + "id": 1124, "name": "address", "nodeType": "ElementaryTypeName", "src": "512:7:8", @@ -15319,12 +15556,12 @@ }, "payable": false, "returnParameters": { - "id": 1112, + "id": 1127, "nodeType": "ParameterList", "parameters": [], "src": "538:0:8" }, - "scope": 1161, + "scope": 1176, "src": "477:170:8", "stateMutability": "nonpayable", "superFunction": null, @@ -15332,7 +15569,7 @@ }, { "body": { - "id": 1159, + "id": 1174, "nodeType": "Block", "src": "817:74:8", "statements": [ @@ -15346,18 +15583,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1151, + "id": 1166, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1147, + "id": 1162, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, + "referencedDeclaration": 1156, "src": "831:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -15372,7 +15609,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1149, + "id": 1164, "isConstant": false, "isLValue": false, "isPure": true, @@ -15395,7 +15632,7 @@ "typeString": "int_const 0" } ], - "id": 1148, + "id": 1163, "isConstant": false, "isLValue": false, "isPure": true, @@ -15408,7 +15645,7 @@ }, "typeName": "address" }, - "id": 1150, + "id": 1165, "isConstant": false, "isLValue": false, "isPure": true, @@ -15436,21 +15673,21 @@ "typeString": "bool" } ], - "id": 1146, + "id": 1161, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, + "referencedDeclaration": 1535, "src": "823:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1152, + "id": 1167, "isConstant": false, "isLValue": false, "isPure": false, @@ -15464,7 +15701,7 @@ "typeString": "tuple()" } }, - "id": 1153, + "id": 1168, "nodeType": "ExpressionStatement", "src": "823:30:8" }, @@ -15475,39 +15712,39 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1154, + "id": 1169, "name": "role", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1139, + "referencedDeclaration": 1154, "src": "866:4:8", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeIdentifier": "t_struct$_Role_$1089_storage_ptr", "typeString": "struct Roles.Role storage pointer" } }, - "id": 1155, + "id": 1170, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "bearer", "nodeType": "MemberAccess", - "referencedDeclaration": 1073, + "referencedDeclaration": 1088, "src": "866:11:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1157, + "id": 1172, "indexExpression": { "argumentTypes": null, - "id": 1156, + "id": 1171, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, + "referencedDeclaration": 1156, "src": "878:7:8", "typeDescriptions": { "typeIdentifier": "t_address", @@ -15525,15 +15762,15 @@ "typeString": "bool" } }, - "functionReturnParameters": 1145, - "id": 1158, + "functionReturnParameters": 1160, + "id": 1173, "nodeType": "Return", "src": "859:27:8" } ] }, "documentation": "@dev check if an account has this role\n@return bool", - "id": 1160, + "id": 1175, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -15541,31 +15778,31 @@ "name": "has", "nodeType": "FunctionDefinition", "parameters": { - "id": 1142, + "id": 1157, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1139, + "id": 1154, "name": "role", "nodeType": "VariableDeclaration", - "scope": 1160, + "scope": 1175, "src": "738:17:8", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeIdentifier": "t_struct$_Role_$1089_storage_ptr", "typeString": "struct Roles.Role" }, "typeName": { "contractScope": null, - "id": 1138, + "id": 1153, "name": "Role", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1074, + "referencedDeclaration": 1089, "src": "738:4:8", "typeDescriptions": { - "typeIdentifier": "t_struct$_Role_$1074_storage_ptr", + "typeIdentifier": "t_struct$_Role_$1089_storage_ptr", "typeString": "struct Roles.Role" } }, @@ -15574,10 +15811,10 @@ }, { "constant": false, - "id": 1141, + "id": 1156, "name": "account", "nodeType": "VariableDeclaration", - "scope": 1160, + "scope": 1175, "src": "757:15:8", "stateVariable": false, "storageLocation": "default", @@ -15586,7 +15823,7 @@ "typeString": "address" }, "typeName": { - "id": 1140, + "id": 1155, "name": "address", "nodeType": "ElementaryTypeName", "src": "757:7:8", @@ -15603,15 +15840,15 @@ }, "payable": false, "returnParameters": { - "id": 1145, + "id": 1160, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1144, + "id": 1159, "name": "", "nodeType": "VariableDeclaration", - "scope": 1160, + "scope": 1175, "src": "809:4:8", "stateVariable": false, "storageLocation": "default", @@ -15620,7 +15857,7 @@ "typeString": "bool" }, "typeName": { - "id": 1143, + "id": 1158, "name": "bool", "nodeType": "ElementaryTypeName", "src": "809:4:8", @@ -15635,14 +15872,14 @@ ], "src": "808:6:8" }, - "scope": 1161, + "scope": 1176, "src": "725:166:8", "stateMutability": "view", "superFunction": null, "visibility": "internal" } ], - "scope": 1162, + "scope": 1177, "src": "109:784:8" } ], @@ -15655,14 +15892,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": [ - 1289 + 1304 ] }, - "id": 1290, + "id": 1305, "nodeType": "SourceUnit", "nodes": [ { - "id": 1163, + "id": 1178, "literals": [ "solidity", "^", @@ -15678,16 +15915,16 @@ "contractKind": "library", "documentation": "@title SafeMath\n@dev Math operations with safety checks that revert on error", "fullyImplemented": true, - "id": 1289, + "id": 1304, "linearizedBaseContracts": [ - 1289 + 1304 ], "name": "SafeMath", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1195, + "id": 1210, "nodeType": "Block", "src": "271:314:9", "statements": [ @@ -15698,18 +15935,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1174, + "id": 1189, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1172, + "id": 1187, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1165, + "referencedDeclaration": 1180, "src": "486:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -15721,7 +15958,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1173, + "id": 1188, "isConstant": false, "isLValue": false, "isPure": true, @@ -15743,11 +15980,11 @@ } }, "falseBody": null, - "id": 1178, + "id": 1193, "nodeType": "IfStatement", "src": "482:35:9", "trueBody": { - "id": 1177, + "id": 1192, "nodeType": "Block", "src": "494:23:9", "statements": [ @@ -15755,7 +15992,7 @@ "expression": { "argumentTypes": null, "hexValue": "30", - "id": 1175, + "id": 1190, "isConstant": false, "isLValue": false, "isPure": true, @@ -15770,8 +16007,8 @@ }, "value": "0" }, - "functionReturnParameters": 1171, - "id": 1176, + "functionReturnParameters": 1186, + "id": 1191, "nodeType": "Return", "src": "502:8:9" } @@ -15780,15 +16017,15 @@ }, { "assignments": [ - 1180 + 1195 ], "declarations": [ { "constant": false, - "id": 1180, + "id": 1195, "name": "c", "nodeType": "VariableDeclaration", - "scope": 1196, + "scope": 1211, "src": "523:9:9", "stateVariable": false, "storageLocation": "default", @@ -15797,7 +16034,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1179, + "id": 1194, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "523:7:9", @@ -15810,25 +16047,25 @@ "visibility": "internal" } ], - "id": 1184, + "id": 1199, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1183, + "id": 1198, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1181, + "id": 1196, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1165, + "referencedDeclaration": 1180, "src": "535:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -15839,11 +16076,11 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 1182, + "id": 1197, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1167, + "referencedDeclaration": 1182, "src": "539:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -15869,7 +16106,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1190, + "id": 1205, "isConstant": false, "isLValue": false, "isPure": false, @@ -15880,18 +16117,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1188, + "id": 1203, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1186, + "id": 1201, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1180, + "referencedDeclaration": 1195, "src": "554:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -15902,11 +16139,11 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 1187, + "id": 1202, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1165, + "referencedDeclaration": 1180, "src": "558:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -15923,11 +16160,11 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1189, + "id": 1204, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1167, + "referencedDeclaration": 1182, "src": "563:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -15948,21 +16185,21 @@ "typeString": "bool" } ], - "id": 1185, + "id": 1200, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, + "referencedDeclaration": 1535, "src": "546:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1191, + "id": 1206, "isConstant": false, "isLValue": false, "isPure": false, @@ -15976,33 +16213,33 @@ "typeString": "tuple()" } }, - "id": 1192, + "id": 1207, "nodeType": "ExpressionStatement", "src": "546:19:9" }, { "expression": { "argumentTypes": null, - "id": 1193, + "id": 1208, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1180, + "referencedDeclaration": 1195, "src": "579:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1171, - "id": 1194, + "functionReturnParameters": 1186, + "id": 1209, "nodeType": "Return", "src": "572:8:9" } ] }, "documentation": "@dev Multiplies two numbers, reverts on overflow.", - "id": 1196, + "id": 1211, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -16010,15 +16247,15 @@ "name": "mul", "nodeType": "FunctionDefinition", "parameters": { - "id": 1168, + "id": 1183, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1165, + "id": 1180, "name": "a", "nodeType": "VariableDeclaration", - "scope": 1196, + "scope": 1211, "src": "217:9:9", "stateVariable": false, "storageLocation": "default", @@ -16027,7 +16264,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1164, + "id": 1179, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "217:7:9", @@ -16041,10 +16278,10 @@ }, { "constant": false, - "id": 1167, + "id": 1182, "name": "b", "nodeType": "VariableDeclaration", - "scope": 1196, + "scope": 1211, "src": "228:9:9", "stateVariable": false, "storageLocation": "default", @@ -16053,7 +16290,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1166, + "id": 1181, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "228:7:9", @@ -16070,15 +16307,15 @@ }, "payable": false, "returnParameters": { - "id": 1171, + "id": 1186, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1170, + "id": 1185, "name": "", "nodeType": "VariableDeclaration", - "scope": 1196, + "scope": 1211, "src": "262:7:9", "stateVariable": false, "storageLocation": "default", @@ -16087,7 +16324,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1169, + "id": 1184, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "262:7:9", @@ -16102,7 +16339,7 @@ ], "src": "261:9:9" }, - "scope": 1289, + "scope": 1304, "src": "204:381:9", "stateMutability": "pure", "superFunction": null, @@ -16110,7 +16347,7 @@ }, { "body": { - "id": 1219, + "id": 1234, "nodeType": "Block", "src": "762:203:9", "statements": [ @@ -16124,18 +16361,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1208, + "id": 1223, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1206, + "id": 1221, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1200, + "referencedDeclaration": 1215, "src": "776:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -16147,7 +16384,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1207, + "id": 1222, "isConstant": false, "isLValue": false, "isPure": true, @@ -16176,21 +16413,21 @@ "typeString": "bool" } ], - "id": 1205, + "id": 1220, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, + "referencedDeclaration": 1535, "src": "768:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1209, + "id": 1224, "isConstant": false, "isLValue": false, "isPure": false, @@ -16204,21 +16441,21 @@ "typeString": "tuple()" } }, - "id": 1210, + "id": 1225, "nodeType": "ExpressionStatement", "src": "768:14:9" }, { "assignments": [ - 1212 + 1227 ], "declarations": [ { "constant": false, - "id": 1212, + "id": 1227, "name": "c", "nodeType": "VariableDeclaration", - "scope": 1220, + "scope": 1235, "src": "846:9:9", "stateVariable": false, "storageLocation": "default", @@ -16227,7 +16464,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1211, + "id": 1226, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "846:7:9", @@ -16240,25 +16477,25 @@ "visibility": "internal" } ], - "id": 1216, + "id": 1231, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1215, + "id": 1230, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1213, + "id": 1228, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1198, + "referencedDeclaration": 1213, "src": "858:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -16269,11 +16506,11 @@ "operator": "/", "rightExpression": { "argumentTypes": null, - "id": 1214, + "id": 1229, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1200, + "referencedDeclaration": 1215, "src": "862:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -16292,26 +16529,26 @@ { "expression": { "argumentTypes": null, - "id": 1217, + "id": 1232, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1212, + "referencedDeclaration": 1227, "src": "959:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1204, - "id": 1218, + "functionReturnParameters": 1219, + "id": 1233, "nodeType": "Return", "src": "952:8:9" } ] }, "documentation": "@dev Integer division of two numbers truncating the quotient, reverts on division by zero.", - "id": 1220, + "id": 1235, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -16319,15 +16556,15 @@ "name": "div", "nodeType": "FunctionDefinition", "parameters": { - "id": 1201, + "id": 1216, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1198, + "id": 1213, "name": "a", "nodeType": "VariableDeclaration", - "scope": 1220, + "scope": 1235, "src": "708:9:9", "stateVariable": false, "storageLocation": "default", @@ -16336,7 +16573,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1197, + "id": 1212, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "708:7:9", @@ -16350,10 +16587,10 @@ }, { "constant": false, - "id": 1200, + "id": 1215, "name": "b", "nodeType": "VariableDeclaration", - "scope": 1220, + "scope": 1235, "src": "719:9:9", "stateVariable": false, "storageLocation": "default", @@ -16362,7 +16599,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1199, + "id": 1214, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "719:7:9", @@ -16379,15 +16616,15 @@ }, "payable": false, "returnParameters": { - "id": 1204, + "id": 1219, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1203, + "id": 1218, "name": "", "nodeType": "VariableDeclaration", - "scope": 1220, + "scope": 1235, "src": "753:7:9", "stateVariable": false, "storageLocation": "default", @@ -16396,7 +16633,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1202, + "id": 1217, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "753:7:9", @@ -16411,7 +16648,7 @@ ], "src": "752:9:9" }, - "scope": 1289, + "scope": 1304, "src": "695:270:9", "stateMutability": "pure", "superFunction": null, @@ -16419,7 +16656,7 @@ }, { "body": { - "id": 1243, + "id": 1258, "nodeType": "Block", "src": "1145:64:9", "statements": [ @@ -16433,18 +16670,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1232, + "id": 1247, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1230, + "id": 1245, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1239, "src": "1159:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -16455,11 +16692,11 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 1231, + "id": 1246, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1222, + "referencedDeclaration": 1237, "src": "1164:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -16480,21 +16717,21 @@ "typeString": "bool" } ], - "id": 1229, + "id": 1244, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, + "referencedDeclaration": 1535, "src": "1151:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1233, + "id": 1248, "isConstant": false, "isLValue": false, "isPure": false, @@ -16508,21 +16745,21 @@ "typeString": "tuple()" } }, - "id": 1234, + "id": 1249, "nodeType": "ExpressionStatement", "src": "1151:15:9" }, { "assignments": [ - 1236 + 1251 ], "declarations": [ { "constant": false, - "id": 1236, + "id": 1251, "name": "c", "nodeType": "VariableDeclaration", - "scope": 1244, + "scope": 1259, "src": "1172:9:9", "stateVariable": false, "storageLocation": "default", @@ -16531,7 +16768,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1235, + "id": 1250, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1172:7:9", @@ -16544,25 +16781,25 @@ "visibility": "internal" } ], - "id": 1240, + "id": 1255, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1239, + "id": 1254, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1237, + "id": 1252, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1222, + "referencedDeclaration": 1237, "src": "1184:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -16573,11 +16810,11 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 1238, + "id": 1253, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1224, + "referencedDeclaration": 1239, "src": "1188:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -16596,26 +16833,26 @@ { "expression": { "argumentTypes": null, - "id": 1241, + "id": 1256, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1236, + "referencedDeclaration": 1251, "src": "1203:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1228, - "id": 1242, + "functionReturnParameters": 1243, + "id": 1257, "nodeType": "Return", "src": "1196:8:9" } ] }, "documentation": "@dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend).", - "id": 1244, + "id": 1259, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -16623,15 +16860,15 @@ "name": "sub", "nodeType": "FunctionDefinition", "parameters": { - "id": 1225, + "id": 1240, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1222, + "id": 1237, "name": "a", "nodeType": "VariableDeclaration", - "scope": 1244, + "scope": 1259, "src": "1091:9:9", "stateVariable": false, "storageLocation": "default", @@ -16640,7 +16877,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1221, + "id": 1236, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1091:7:9", @@ -16654,10 +16891,10 @@ }, { "constant": false, - "id": 1224, + "id": 1239, "name": "b", "nodeType": "VariableDeclaration", - "scope": 1244, + "scope": 1259, "src": "1102:9:9", "stateVariable": false, "storageLocation": "default", @@ -16666,7 +16903,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1223, + "id": 1238, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1102:7:9", @@ -16683,15 +16920,15 @@ }, "payable": false, "returnParameters": { - "id": 1228, + "id": 1243, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1227, + "id": 1242, "name": "", "nodeType": "VariableDeclaration", - "scope": 1244, + "scope": 1259, "src": "1136:7:9", "stateVariable": false, "storageLocation": "default", @@ -16700,7 +16937,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1226, + "id": 1241, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1136:7:9", @@ -16715,7 +16952,7 @@ ], "src": "1135:9:9" }, - "scope": 1289, + "scope": 1304, "src": "1078:131:9", "stateMutability": "pure", "superFunction": null, @@ -16723,21 +16960,21 @@ }, { "body": { - "id": 1267, + "id": 1282, "nodeType": "Block", "src": "1339:64:9", "statements": [ { "assignments": [ - 1254 + 1269 ], "declarations": [ { "constant": false, - "id": 1254, + "id": 1269, "name": "c", "nodeType": "VariableDeclaration", - "scope": 1268, + "scope": 1283, "src": "1345:9:9", "stateVariable": false, "storageLocation": "default", @@ -16746,7 +16983,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1253, + "id": 1268, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1345:7:9", @@ -16759,25 +16996,25 @@ "visibility": "internal" } ], - "id": 1258, + "id": 1273, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1257, + "id": 1272, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1255, + "id": 1270, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1246, + "referencedDeclaration": 1261, "src": "1357:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -16788,11 +17025,11 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 1256, + "id": 1271, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1248, + "referencedDeclaration": 1263, "src": "1361:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -16818,18 +17055,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1262, + "id": 1277, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1260, + "id": 1275, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1254, + "referencedDeclaration": 1269, "src": "1376:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -16840,11 +17077,11 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 1261, + "id": 1276, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1246, + "referencedDeclaration": 1261, "src": "1381:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -16865,21 +17102,21 @@ "typeString": "bool" } ], - "id": 1259, + "id": 1274, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, + "referencedDeclaration": 1535, "src": "1368:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1263, + "id": 1278, "isConstant": false, "isLValue": false, "isPure": false, @@ -16893,33 +17130,33 @@ "typeString": "tuple()" } }, - "id": 1264, + "id": 1279, "nodeType": "ExpressionStatement", "src": "1368:15:9" }, { "expression": { "argumentTypes": null, - "id": 1265, + "id": 1280, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1254, + "referencedDeclaration": 1269, "src": "1397:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1252, - "id": 1266, + "functionReturnParameters": 1267, + "id": 1281, "nodeType": "Return", "src": "1390:8:9" } ] }, "documentation": "@dev Adds two numbers, reverts on overflow.", - "id": 1268, + "id": 1283, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -16927,15 +17164,15 @@ "name": "add", "nodeType": "FunctionDefinition", "parameters": { - "id": 1249, + "id": 1264, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1246, + "id": 1261, "name": "a", "nodeType": "VariableDeclaration", - "scope": 1268, + "scope": 1283, "src": "1285:9:9", "stateVariable": false, "storageLocation": "default", @@ -16944,7 +17181,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1245, + "id": 1260, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1285:7:9", @@ -16958,10 +17195,10 @@ }, { "constant": false, - "id": 1248, + "id": 1263, "name": "b", "nodeType": "VariableDeclaration", - "scope": 1268, + "scope": 1283, "src": "1296:9:9", "stateVariable": false, "storageLocation": "default", @@ -16970,7 +17207,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1247, + "id": 1262, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1296:7:9", @@ -16987,15 +17224,15 @@ }, "payable": false, "returnParameters": { - "id": 1252, + "id": 1267, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1251, + "id": 1266, "name": "", "nodeType": "VariableDeclaration", - "scope": 1268, + "scope": 1283, "src": "1330:7:9", "stateVariable": false, "storageLocation": "default", @@ -17004,7 +17241,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1250, + "id": 1265, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1330:7:9", @@ -17019,7 +17256,7 @@ ], "src": "1329:9:9" }, - "scope": 1289, + "scope": 1304, "src": "1272:131:9", "stateMutability": "pure", "superFunction": null, @@ -17027,7 +17264,7 @@ }, { "body": { - "id": 1287, + "id": 1302, "nodeType": "Block", "src": "1602:44:9", "statements": [ @@ -17041,18 +17278,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1280, + "id": 1295, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1278, + "id": 1293, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1272, + "referencedDeclaration": 1287, "src": "1616:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -17064,7 +17301,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1279, + "id": 1294, "isConstant": false, "isLValue": false, "isPure": true, @@ -17093,21 +17330,21 @@ "typeString": "bool" } ], - "id": 1277, + "id": 1292, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, + "referencedDeclaration": 1535, "src": "1608:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1281, + "id": 1296, "isConstant": false, "isLValue": false, "isPure": false, @@ -17121,7 +17358,7 @@ "typeString": "tuple()" } }, - "id": 1282, + "id": 1297, "nodeType": "ExpressionStatement", "src": "1608:15:9" }, @@ -17132,18 +17369,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1285, + "id": 1300, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1283, + "id": 1298, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1270, + "referencedDeclaration": 1285, "src": "1636:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -17154,11 +17391,11 @@ "operator": "%", "rightExpression": { "argumentTypes": null, - "id": 1284, + "id": 1299, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1272, + "referencedDeclaration": 1287, "src": "1640:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -17171,15 +17408,15 @@ "typeString": "uint256" } }, - "functionReturnParameters": 1276, - "id": 1286, + "functionReturnParameters": 1291, + "id": 1301, "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, + "id": 1303, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -17187,15 +17424,15 @@ "name": "mod", "nodeType": "FunctionDefinition", "parameters": { - "id": 1273, + "id": 1288, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1270, + "id": 1285, "name": "a", "nodeType": "VariableDeclaration", - "scope": 1288, + "scope": 1303, "src": "1548:9:9", "stateVariable": false, "storageLocation": "default", @@ -17204,7 +17441,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1269, + "id": 1284, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1548:7:9", @@ -17218,10 +17455,10 @@ }, { "constant": false, - "id": 1272, + "id": 1287, "name": "b", "nodeType": "VariableDeclaration", - "scope": 1288, + "scope": 1303, "src": "1559:9:9", "stateVariable": false, "storageLocation": "default", @@ -17230,7 +17467,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1271, + "id": 1286, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1559:7:9", @@ -17247,15 +17484,15 @@ }, "payable": false, "returnParameters": { - "id": 1276, + "id": 1291, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1275, + "id": 1290, "name": "", "nodeType": "VariableDeclaration", - "scope": 1288, + "scope": 1303, "src": "1593:7:9", "stateVariable": false, "storageLocation": "default", @@ -17264,7 +17501,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1274, + "id": 1289, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1593:7:9", @@ -17279,14 +17516,14 @@ ], "src": "1592:9:9" }, - "scope": 1289, + "scope": 1304, "src": "1535:111:9", "stateMutability": "pure", "superFunction": null, "visibility": "internal" } ], - "scope": 1290, + "scope": 1305, "src": "117:1531:9" } ], @@ -17299,14 +17536,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": [ - 1358 + 1373 ] }, - "id": 1359, + "id": 1374, "nodeType": "SourceUnit", "nodes": [ { - "id": 1291, + "id": 1306, "literals": [ "solidity", "^", @@ -17322,9 +17559,9 @@ "contractKind": "interface", "documentation": "@title ERC20 interface\n@dev see https://github.com/ethereum/EIPs/issues/20", "fullyImplemented": false, - "id": 1358, + "id": 1373, "linearizedBaseContracts": [ - 1358 + 1373 ], "name": "IERC20", "nodeType": "ContractDefinition", @@ -17332,7 +17569,7 @@ { "body": null, "documentation": null, - "id": 1296, + "id": 1311, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -17340,22 +17577,22 @@ "name": "totalSupply", "nodeType": "FunctionDefinition", "parameters": { - "id": 1292, + "id": 1307, "nodeType": "ParameterList", "parameters": [], "src": "156:2:10" }, "payable": false, "returnParameters": { - "id": 1295, + "id": 1310, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1294, + "id": 1309, "name": "", "nodeType": "VariableDeclaration", - "scope": 1296, + "scope": 1311, "src": "182:7:10", "stateVariable": false, "storageLocation": "default", @@ -17364,7 +17601,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1293, + "id": 1308, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "182:7:10", @@ -17379,7 +17616,7 @@ ], "src": "181:9:10" }, - "scope": 1358, + "scope": 1373, "src": "136:55:10", "stateMutability": "view", "superFunction": null, @@ -17388,7 +17625,7 @@ { "body": null, "documentation": null, - "id": 1303, + "id": 1318, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -17396,15 +17633,15 @@ "name": "balanceOf", "nodeType": "FunctionDefinition", "parameters": { - "id": 1299, + "id": 1314, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1298, + "id": 1313, "name": "who", "nodeType": "VariableDeclaration", - "scope": 1303, + "scope": 1318, "src": "214:11:10", "stateVariable": false, "storageLocation": "default", @@ -17413,7 +17650,7 @@ "typeString": "address" }, "typeName": { - "id": 1297, + "id": 1312, "name": "address", "nodeType": "ElementaryTypeName", "src": "214:7:10", @@ -17430,15 +17667,15 @@ }, "payable": false, "returnParameters": { - "id": 1302, + "id": 1317, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1301, + "id": 1316, "name": "", "nodeType": "VariableDeclaration", - "scope": 1303, + "scope": 1318, "src": "250:7:10", "stateVariable": false, "storageLocation": "default", @@ -17447,7 +17684,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1300, + "id": 1315, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "250:7:10", @@ -17462,7 +17699,7 @@ ], "src": "249:9:10" }, - "scope": 1358, + "scope": 1373, "src": "195:64:10", "stateMutability": "view", "superFunction": null, @@ -17471,7 +17708,7 @@ { "body": null, "documentation": null, - "id": 1312, + "id": 1327, "implemented": false, "isConstructor": false, "isDeclaredConst": true, @@ -17479,15 +17716,15 @@ "name": "allowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 1308, + "id": 1323, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1305, + "id": 1320, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1312, + "scope": 1327, "src": "282:13:10", "stateVariable": false, "storageLocation": "default", @@ -17496,7 +17733,7 @@ "typeString": "address" }, "typeName": { - "id": 1304, + "id": 1319, "name": "address", "nodeType": "ElementaryTypeName", "src": "282:7:10", @@ -17510,10 +17747,10 @@ }, { "constant": false, - "id": 1307, + "id": 1322, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1312, + "scope": 1327, "src": "297:15:10", "stateVariable": false, "storageLocation": "default", @@ -17522,7 +17759,7 @@ "typeString": "address" }, "typeName": { - "id": 1306, + "id": 1321, "name": "address", "nodeType": "ElementaryTypeName", "src": "297:7:10", @@ -17539,15 +17776,15 @@ }, "payable": false, "returnParameters": { - "id": 1311, + "id": 1326, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1310, + "id": 1325, "name": "", "nodeType": "VariableDeclaration", - "scope": 1312, + "scope": 1327, "src": "341:7:10", "stateVariable": false, "storageLocation": "default", @@ -17556,7 +17793,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1309, + "id": 1324, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "341:7:10", @@ -17571,7 +17808,7 @@ ], "src": "340:9:10" }, - "scope": 1358, + "scope": 1373, "src": "263:87:10", "stateMutability": "view", "superFunction": null, @@ -17580,7 +17817,7 @@ { "body": null, "documentation": null, - "id": 1321, + "id": 1336, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -17588,15 +17825,15 @@ "name": "transfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 1317, + "id": 1332, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1314, + "id": 1329, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1321, + "scope": 1336, "src": "372:10:10", "stateVariable": false, "storageLocation": "default", @@ -17605,7 +17842,7 @@ "typeString": "address" }, "typeName": { - "id": 1313, + "id": 1328, "name": "address", "nodeType": "ElementaryTypeName", "src": "372:7:10", @@ -17619,10 +17856,10 @@ }, { "constant": false, - "id": 1316, + "id": 1331, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1321, + "scope": 1336, "src": "384:13:10", "stateVariable": false, "storageLocation": "default", @@ -17631,7 +17868,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1315, + "id": 1330, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "384:7:10", @@ -17648,15 +17885,15 @@ }, "payable": false, "returnParameters": { - "id": 1320, + "id": 1335, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1319, + "id": 1334, "name": "", "nodeType": "VariableDeclaration", - "scope": 1321, + "scope": 1336, "src": "417:4:10", "stateVariable": false, "storageLocation": "default", @@ -17665,7 +17902,7 @@ "typeString": "bool" }, "typeName": { - "id": 1318, + "id": 1333, "name": "bool", "nodeType": "ElementaryTypeName", "src": "417:4:10", @@ -17680,7 +17917,7 @@ ], "src": "416:6:10" }, - "scope": 1358, + "scope": 1373, "src": "354:69:10", "stateMutability": "nonpayable", "superFunction": null, @@ -17689,7 +17926,7 @@ { "body": null, "documentation": null, - "id": 1330, + "id": 1345, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -17697,15 +17934,15 @@ "name": "approve", "nodeType": "FunctionDefinition", "parameters": { - "id": 1326, + "id": 1341, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1323, + "id": 1338, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1330, + "scope": 1345, "src": "444:15:10", "stateVariable": false, "storageLocation": "default", @@ -17714,7 +17951,7 @@ "typeString": "address" }, "typeName": { - "id": 1322, + "id": 1337, "name": "address", "nodeType": "ElementaryTypeName", "src": "444:7:10", @@ -17728,10 +17965,10 @@ }, { "constant": false, - "id": 1325, + "id": 1340, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1330, + "scope": 1345, "src": "461:13:10", "stateVariable": false, "storageLocation": "default", @@ -17740,7 +17977,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1324, + "id": 1339, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "461:7:10", @@ -17757,15 +17994,15 @@ }, "payable": false, "returnParameters": { - "id": 1329, + "id": 1344, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1328, + "id": 1343, "name": "", "nodeType": "VariableDeclaration", - "scope": 1330, + "scope": 1345, "src": "498:4:10", "stateVariable": false, "storageLocation": "default", @@ -17774,7 +18011,7 @@ "typeString": "bool" }, "typeName": { - "id": 1327, + "id": 1342, "name": "bool", "nodeType": "ElementaryTypeName", "src": "498:4:10", @@ -17789,7 +18026,7 @@ ], "src": "497:6:10" }, - "scope": 1358, + "scope": 1373, "src": "427:77:10", "stateMutability": "nonpayable", "superFunction": null, @@ -17798,7 +18035,7 @@ { "body": null, "documentation": null, - "id": 1341, + "id": 1356, "implemented": false, "isConstructor": false, "isDeclaredConst": false, @@ -17806,15 +18043,15 @@ "name": "transferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 1337, + "id": 1352, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1332, + "id": 1347, "name": "from", "nodeType": "VariableDeclaration", - "scope": 1341, + "scope": 1356, "src": "530:12:10", "stateVariable": false, "storageLocation": "default", @@ -17823,7 +18060,7 @@ "typeString": "address" }, "typeName": { - "id": 1331, + "id": 1346, "name": "address", "nodeType": "ElementaryTypeName", "src": "530:7:10", @@ -17837,10 +18074,10 @@ }, { "constant": false, - "id": 1334, + "id": 1349, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1341, + "scope": 1356, "src": "544:10:10", "stateVariable": false, "storageLocation": "default", @@ -17849,7 +18086,7 @@ "typeString": "address" }, "typeName": { - "id": 1333, + "id": 1348, "name": "address", "nodeType": "ElementaryTypeName", "src": "544:7:10", @@ -17863,10 +18100,10 @@ }, { "constant": false, - "id": 1336, + "id": 1351, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1341, + "scope": 1356, "src": "556:13:10", "stateVariable": false, "storageLocation": "default", @@ -17875,7 +18112,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1335, + "id": 1350, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "556:7:10", @@ -17892,15 +18129,15 @@ }, "payable": false, "returnParameters": { - "id": 1340, + "id": 1355, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1339, + "id": 1354, "name": "", "nodeType": "VariableDeclaration", - "scope": 1341, + "scope": 1356, "src": "593:4:10", "stateVariable": false, "storageLocation": "default", @@ -17909,7 +18146,7 @@ "typeString": "bool" }, "typeName": { - "id": 1338, + "id": 1353, "name": "bool", "nodeType": "ElementaryTypeName", "src": "593:4:10", @@ -17924,7 +18161,7 @@ ], "src": "592:6:10" }, - "scope": 1358, + "scope": 1373, "src": "508:91:10", "stateMutability": "nonpayable", "superFunction": null, @@ -17933,20 +18170,20 @@ { "anonymous": false, "documentation": null, - "id": 1349, + "id": 1364, "name": "Transfer", "nodeType": "EventDefinition", "parameters": { - "id": 1348, + "id": 1363, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1343, + "id": 1358, "indexed": true, "name": "from", "nodeType": "VariableDeclaration", - "scope": 1349, + "scope": 1364, "src": "623:20:10", "stateVariable": false, "storageLocation": "default", @@ -17955,7 +18192,7 @@ "typeString": "address" }, "typeName": { - "id": 1342, + "id": 1357, "name": "address", "nodeType": "ElementaryTypeName", "src": "623:7:10", @@ -17969,11 +18206,11 @@ }, { "constant": false, - "id": 1345, + "id": 1360, "indexed": true, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1349, + "scope": 1364, "src": "649:18:10", "stateVariable": false, "storageLocation": "default", @@ -17982,7 +18219,7 @@ "typeString": "address" }, "typeName": { - "id": 1344, + "id": 1359, "name": "address", "nodeType": "ElementaryTypeName", "src": "649:7:10", @@ -17996,11 +18233,11 @@ }, { "constant": false, - "id": 1347, + "id": 1362, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1349, + "scope": 1364, "src": "673:13:10", "stateVariable": false, "storageLocation": "default", @@ -18009,7 +18246,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1346, + "id": 1361, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "673:7:10", @@ -18029,20 +18266,20 @@ { "anonymous": false, "documentation": null, - "id": 1357, + "id": 1372, "name": "Approval", "nodeType": "EventDefinition", "parameters": { - "id": 1356, + "id": 1371, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1351, + "id": 1366, "indexed": true, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1357, + "scope": 1372, "src": "715:21:10", "stateVariable": false, "storageLocation": "default", @@ -18051,7 +18288,7 @@ "typeString": "address" }, "typeName": { - "id": 1350, + "id": 1365, "name": "address", "nodeType": "ElementaryTypeName", "src": "715:7:10", @@ -18065,11 +18302,11 @@ }, { "constant": false, - "id": 1353, + "id": 1368, "indexed": true, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1357, + "scope": 1372, "src": "742:23:10", "stateVariable": false, "storageLocation": "default", @@ -18078,7 +18315,7 @@ "typeString": "address" }, "typeName": { - "id": 1352, + "id": 1367, "name": "address", "nodeType": "ElementaryTypeName", "src": "742:7:10", @@ -18092,11 +18329,11 @@ }, { "constant": false, - "id": 1355, + "id": 1370, "indexed": false, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1357, + "scope": 1372, "src": "771:13:10", "stateVariable": false, "storageLocation": "default", @@ -18105,7 +18342,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1354, + "id": 1369, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "771:7:10", @@ -18123,7 +18360,7 @@ "src": "695:94:10" } ], - "scope": 1359, + "scope": 1374, "src": "115:676:10" } ], @@ -18136,14 +18373,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": [ - 1502 + 1517 ] }, - "id": 1503, + "id": 1518, "nodeType": "SourceUnit", "nodes": [ { - "id": 1360, + "id": 1375, "literals": [ "solidity", "^", @@ -18156,10 +18393,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": 1361, + "id": 1376, "nodeType": "ImportDirective", - "scope": 1503, - "sourceUnit": 1359, + "scope": 1518, + "sourceUnit": 1374, "src": "26:22:11", "symbolAliases": [], "unitAlias": "" @@ -18167,10 +18404,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": 1362, + "id": 1377, "nodeType": "ImportDirective", - "scope": 1503, - "sourceUnit": 1290, + "scope": 1518, + "sourceUnit": 1305, "src": "49:33:11", "symbolAliases": [], "unitAlias": "" @@ -18181,31 +18418,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": 1502, + "id": 1517, "linearizedBaseContracts": [ - 1502 + 1517 ], "name": "SafeERC20", "nodeType": "ContractDefinition", "nodes": [ { - "id": 1365, + "id": 1380, "libraryName": { "contractScope": null, - "id": 1363, + "id": 1378, "name": "SafeMath", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1289, + "referencedDeclaration": 1304, "src": "382:8:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1289", + "typeIdentifier": "t_contract$_SafeMath_$1304", "typeString": "library SafeMath" } }, "nodeType": "UsingForDirective", "src": "376:27:11", "typeName": { - "id": 1364, + "id": 1379, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "395:7:11", @@ -18217,7 +18454,7 @@ }, { "body": { - "id": 1382, + "id": 1397, "nodeType": "Block", "src": "501:45:11", "statements": [ @@ -18230,11 +18467,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1377, + "id": 1392, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1369, + "referencedDeclaration": 1384, "src": "530:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -18243,11 +18480,11 @@ }, { "argumentTypes": null, - "id": 1378, + "id": 1393, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1371, + "referencedDeclaration": 1386, "src": "534:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -18268,32 +18505,32 @@ ], "expression": { "argumentTypes": null, - "id": 1375, + "id": 1390, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1367, + "referencedDeclaration": 1382, "src": "515:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } }, - "id": 1376, + "id": 1391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 1321, + "referencedDeclaration": 1336, "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": 1379, + "id": 1394, "isConstant": false, "isLValue": false, "isPure": false, @@ -18315,21 +18552,21 @@ "typeString": "bool" } ], - "id": 1374, + "id": 1389, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, + "referencedDeclaration": 1535, "src": "507:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1380, + "id": 1395, "isConstant": false, "isLValue": false, "isPure": false, @@ -18343,14 +18580,14 @@ "typeString": "tuple()" } }, - "id": 1381, + "id": 1396, "nodeType": "ExpressionStatement", "src": "507:34:11" } ] }, "documentation": null, - "id": 1383, + "id": 1398, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -18358,31 +18595,31 @@ "name": "safeTransfer", "nodeType": "FunctionDefinition", "parameters": { - "id": 1372, + "id": 1387, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1367, + "id": 1382, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1383, + "scope": 1398, "src": "434:12:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 1366, + "id": 1381, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1358, + "referencedDeclaration": 1373, "src": "434:6:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } }, @@ -18391,10 +18628,10 @@ }, { "constant": false, - "id": 1369, + "id": 1384, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1383, + "scope": 1398, "src": "452:10:11", "stateVariable": false, "storageLocation": "default", @@ -18403,7 +18640,7 @@ "typeString": "address" }, "typeName": { - "id": 1368, + "id": 1383, "name": "address", "nodeType": "ElementaryTypeName", "src": "452:7:11", @@ -18417,10 +18654,10 @@ }, { "constant": false, - "id": 1371, + "id": 1386, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1383, + "scope": 1398, "src": "468:13:11", "stateVariable": false, "storageLocation": "default", @@ -18429,7 +18666,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1370, + "id": 1385, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "468:7:11", @@ -18446,12 +18683,12 @@ }, "payable": false, "returnParameters": { - "id": 1373, + "id": 1388, "nodeType": "ParameterList", "parameters": [], "src": "501:0:11" }, - "scope": 1502, + "scope": 1517, "src": "407:139:11", "stateMutability": "nonpayable", "superFunction": null, @@ -18459,7 +18696,7 @@ }, { "body": { - "id": 1403, + "id": 1418, "nodeType": "Block", "src": "666:55:11", "statements": [ @@ -18472,11 +18709,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1397, + "id": 1412, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1387, + "referencedDeclaration": 1402, "src": "699:4:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -18485,11 +18722,11 @@ }, { "argumentTypes": null, - "id": 1398, + "id": 1413, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1389, + "referencedDeclaration": 1404, "src": "705:2:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -18498,11 +18735,11 @@ }, { "argumentTypes": null, - "id": 1399, + "id": 1414, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1391, + "referencedDeclaration": 1406, "src": "709:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -18527,32 +18764,32 @@ ], "expression": { "argumentTypes": null, - "id": 1395, + "id": 1410, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1385, + "referencedDeclaration": 1400, "src": "680:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } }, - "id": 1396, + "id": 1411, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 1341, + "referencedDeclaration": 1356, "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": 1400, + "id": 1415, "isConstant": false, "isLValue": false, "isPure": false, @@ -18574,21 +18811,21 @@ "typeString": "bool" } ], - "id": 1394, + "id": 1409, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, + "referencedDeclaration": 1535, "src": "672:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1401, + "id": 1416, "isConstant": false, "isLValue": false, "isPure": false, @@ -18602,14 +18839,14 @@ "typeString": "tuple()" } }, - "id": 1402, + "id": 1417, "nodeType": "ExpressionStatement", "src": "672:44:11" } ] }, "documentation": null, - "id": 1404, + "id": 1419, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -18617,31 +18854,31 @@ "name": "safeTransferFrom", "nodeType": "FunctionDefinition", "parameters": { - "id": 1392, + "id": 1407, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1385, + "id": 1400, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1404, + "scope": 1419, "src": "581:12:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 1384, + "id": 1399, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1358, + "referencedDeclaration": 1373, "src": "581:6:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } }, @@ -18650,10 +18887,10 @@ }, { "constant": false, - "id": 1387, + "id": 1402, "name": "from", "nodeType": "VariableDeclaration", - "scope": 1404, + "scope": 1419, "src": "599:12:11", "stateVariable": false, "storageLocation": "default", @@ -18662,7 +18899,7 @@ "typeString": "address" }, "typeName": { - "id": 1386, + "id": 1401, "name": "address", "nodeType": "ElementaryTypeName", "src": "599:7:11", @@ -18676,10 +18913,10 @@ }, { "constant": false, - "id": 1389, + "id": 1404, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1404, + "scope": 1419, "src": "617:10:11", "stateVariable": false, "storageLocation": "default", @@ -18688,7 +18925,7 @@ "typeString": "address" }, "typeName": { - "id": 1388, + "id": 1403, "name": "address", "nodeType": "ElementaryTypeName", "src": "617:7:11", @@ -18702,10 +18939,10 @@ }, { "constant": false, - "id": 1391, + "id": 1406, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1404, + "scope": 1419, "src": "633:13:11", "stateVariable": false, "storageLocation": "default", @@ -18714,7 +18951,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1390, + "id": 1405, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "633:7:11", @@ -18731,12 +18968,12 @@ }, "payable": false, "returnParameters": { - "id": 1393, + "id": 1408, "nodeType": "ParameterList", "parameters": [], "src": "666:0:11" }, - "scope": 1502, + "scope": 1517, "src": "550:171:11", "stateMutability": "nonpayable", "superFunction": null, @@ -18744,7 +18981,7 @@ }, { "body": { - "id": 1438, + "id": 1453, "nodeType": "Block", "src": "823:330:11", "statements": [ @@ -18758,7 +18995,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1427, + "id": 1442, "isConstant": false, "isLValue": false, "isPure": false, @@ -18772,18 +19009,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1416, + "id": 1431, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1414, + "id": 1429, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1410, + "referencedDeclaration": 1425, "src": "1045:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -18795,7 +19032,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1415, + "id": 1430, "isConstant": false, "isLValue": false, "isPure": true, @@ -18817,7 +19054,7 @@ } } ], - "id": 1417, + "id": 1432, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -18841,7 +19078,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1425, + "id": 1440, "isConstant": false, "isLValue": false, "isPure": false, @@ -18853,18 +19090,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1420, + "id": 1435, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1517, + "referencedDeclaration": 1532, "src": "1077:3:11", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1421, + "id": 1436, "isConstant": false, "isLValue": false, "isPure": false, @@ -18880,11 +19117,11 @@ }, { "argumentTypes": null, - "id": 1422, + "id": 1437, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1408, + "referencedDeclaration": 1423, "src": "1089:7:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -18905,32 +19142,32 @@ ], "expression": { "argumentTypes": null, - "id": 1418, + "id": 1433, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1406, + "referencedDeclaration": 1421, "src": "1061:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } }, - "id": 1419, + "id": 1434, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 1312, + "referencedDeclaration": 1327, "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": 1423, + "id": 1438, "isConstant": false, "isLValue": false, "isPure": false, @@ -18949,7 +19186,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1424, + "id": 1439, "isConstant": false, "isLValue": false, "isPure": true, @@ -18971,7 +19208,7 @@ } } ], - "id": 1426, + "id": 1441, "isConstant": false, "isInlineArray": false, "isLValue": false, @@ -18998,21 +19235,21 @@ "typeString": "bool" } ], - "id": 1413, + "id": 1428, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, + "referencedDeclaration": 1535, "src": "1036:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1428, + "id": 1443, "isConstant": false, "isLValue": false, "isPure": false, @@ -19026,7 +19263,7 @@ "typeString": "tuple()" } }, - "id": 1429, + "id": 1444, "nodeType": "ExpressionStatement", "src": "1036:68:11" }, @@ -19039,11 +19276,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1433, + "id": 1448, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1408, + "referencedDeclaration": 1423, "src": "1132:7:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -19052,11 +19289,11 @@ }, { "argumentTypes": null, - "id": 1434, + "id": 1449, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1410, + "referencedDeclaration": 1425, "src": "1141:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -19077,32 +19314,32 @@ ], "expression": { "argumentTypes": null, - "id": 1431, + "id": 1446, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1406, + "referencedDeclaration": 1421, "src": "1118:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } }, - "id": 1432, + "id": 1447, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "approve", "nodeType": "MemberAccess", - "referencedDeclaration": 1330, + "referencedDeclaration": 1345, "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": 1435, + "id": 1450, "isConstant": false, "isLValue": false, "isPure": false, @@ -19124,21 +19361,21 @@ "typeString": "bool" } ], - "id": 1430, + "id": 1445, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, + "referencedDeclaration": 1535, "src": "1110:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1436, + "id": 1451, "isConstant": false, "isLValue": false, "isPure": false, @@ -19152,14 +19389,14 @@ "typeString": "tuple()" } }, - "id": 1437, + "id": 1452, "nodeType": "ExpressionStatement", "src": "1110:38:11" } ] }, "documentation": null, - "id": 1439, + "id": 1454, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -19167,31 +19404,31 @@ "name": "safeApprove", "nodeType": "FunctionDefinition", "parameters": { - "id": 1411, + "id": 1426, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1406, + "id": 1421, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1439, + "scope": 1454, "src": "751:12:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 1405, + "id": 1420, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1358, + "referencedDeclaration": 1373, "src": "751:6:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } }, @@ -19200,10 +19437,10 @@ }, { "constant": false, - "id": 1408, + "id": 1423, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1439, + "scope": 1454, "src": "769:15:11", "stateVariable": false, "storageLocation": "default", @@ -19212,7 +19449,7 @@ "typeString": "address" }, "typeName": { - "id": 1407, + "id": 1422, "name": "address", "nodeType": "ElementaryTypeName", "src": "769:7:11", @@ -19226,10 +19463,10 @@ }, { "constant": false, - "id": 1410, + "id": 1425, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1439, + "scope": 1454, "src": "790:13:11", "stateVariable": false, "storageLocation": "default", @@ -19238,7 +19475,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1409, + "id": 1424, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "790:7:11", @@ -19255,12 +19492,12 @@ }, "payable": false, "returnParameters": { - "id": 1412, + "id": 1427, "nodeType": "ParameterList", "parameters": [], "src": "823:0:11" }, - "scope": 1502, + "scope": 1517, "src": "725:428:11", "stateMutability": "nonpayable", "superFunction": null, @@ -19268,21 +19505,21 @@ }, { "body": { - "id": 1469, + "id": 1484, "nodeType": "Block", "src": "1265:135:11", "statements": [ { "assignments": [ - 1449 + 1464 ], "declarations": [ { "constant": false, - "id": 1449, + "id": 1464, "name": "newAllowance", "nodeType": "VariableDeclaration", - "scope": 1470, + "scope": 1485, "src": "1271:20:11", "stateVariable": false, "storageLocation": "default", @@ -19291,7 +19528,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1448, + "id": 1463, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1271:7:11", @@ -19304,17 +19541,17 @@ "visibility": "internal" } ], - "id": 1460, + "id": 1475, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1458, + "id": 1473, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1445, + "referencedDeclaration": 1460, "src": "1338:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -19337,14 +19574,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1453, + "id": 1468, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1540, + "referencedDeclaration": 1555, "src": "1318:4:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$1502", + "typeIdentifier": "t_contract$_SafeERC20_$1517", "typeString": "library SafeERC20" } } @@ -19352,11 +19589,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_SafeERC20_$1502", + "typeIdentifier": "t_contract$_SafeERC20_$1517", "typeString": "library SafeERC20" } ], - "id": 1452, + "id": 1467, "isConstant": false, "isLValue": false, "isPure": true, @@ -19369,7 +19606,7 @@ }, "typeName": "address" }, - "id": 1454, + "id": 1469, "isConstant": false, "isLValue": false, "isPure": false, @@ -19385,11 +19622,11 @@ }, { "argumentTypes": null, - "id": 1455, + "id": 1470, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1443, + "referencedDeclaration": 1458, "src": "1325:7:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -19410,32 +19647,32 @@ ], "expression": { "argumentTypes": null, - "id": 1450, + "id": 1465, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1441, + "referencedDeclaration": 1456, "src": "1294:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } }, - "id": 1451, + "id": 1466, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 1312, + "referencedDeclaration": 1327, "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": 1456, + "id": 1471, "isConstant": false, "isLValue": false, "isPure": false, @@ -19449,21 +19686,21 @@ "typeString": "uint256" } }, - "id": 1457, + "id": 1472, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "add", "nodeType": "MemberAccess", - "referencedDeclaration": 1268, + "referencedDeclaration": 1283, "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": 1459, + "id": 1474, "isConstant": false, "isLValue": false, "isPure": false, @@ -19489,11 +19726,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1464, + "id": 1479, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1443, + "referencedDeclaration": 1458, "src": "1372:7:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -19502,11 +19739,11 @@ }, { "argumentTypes": null, - "id": 1465, + "id": 1480, "name": "newAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1449, + "referencedDeclaration": 1464, "src": "1381:12:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -19527,32 +19764,32 @@ ], "expression": { "argumentTypes": null, - "id": 1462, + "id": 1477, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1441, + "referencedDeclaration": 1456, "src": "1358:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } }, - "id": 1463, + "id": 1478, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "approve", "nodeType": "MemberAccess", - "referencedDeclaration": 1330, + "referencedDeclaration": 1345, "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": 1466, + "id": 1481, "isConstant": false, "isLValue": false, "isPure": false, @@ -19574,21 +19811,21 @@ "typeString": "bool" } ], - "id": 1461, + "id": 1476, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, + "referencedDeclaration": 1535, "src": "1350:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1467, + "id": 1482, "isConstant": false, "isLValue": false, "isPure": false, @@ -19602,14 +19839,14 @@ "typeString": "tuple()" } }, - "id": 1468, + "id": 1483, "nodeType": "ExpressionStatement", "src": "1350:45:11" } ] }, "documentation": null, - "id": 1470, + "id": 1485, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -19617,31 +19854,31 @@ "name": "safeIncreaseAllowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 1446, + "id": 1461, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1441, + "id": 1456, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1470, + "scope": 1485, "src": "1193:12:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 1440, + "id": 1455, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1358, + "referencedDeclaration": 1373, "src": "1193:6:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } }, @@ -19650,10 +19887,10 @@ }, { "constant": false, - "id": 1443, + "id": 1458, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1470, + "scope": 1485, "src": "1211:15:11", "stateVariable": false, "storageLocation": "default", @@ -19662,7 +19899,7 @@ "typeString": "address" }, "typeName": { - "id": 1442, + "id": 1457, "name": "address", "nodeType": "ElementaryTypeName", "src": "1211:7:11", @@ -19676,10 +19913,10 @@ }, { "constant": false, - "id": 1445, + "id": 1460, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1470, + "scope": 1485, "src": "1232:13:11", "stateVariable": false, "storageLocation": "default", @@ -19688,7 +19925,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1444, + "id": 1459, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1232:7:11", @@ -19705,12 +19942,12 @@ }, "payable": false, "returnParameters": { - "id": 1447, + "id": 1462, "nodeType": "ParameterList", "parameters": [], "src": "1265:0:11" }, - "scope": 1502, + "scope": 1517, "src": "1157:243:11", "stateMutability": "nonpayable", "superFunction": null, @@ -19718,21 +19955,21 @@ }, { "body": { - "id": 1500, + "id": 1515, "nodeType": "Block", "src": "1512:135:11", "statements": [ { "assignments": [ - 1480 + 1495 ], "declarations": [ { "constant": false, - "id": 1480, + "id": 1495, "name": "newAllowance", "nodeType": "VariableDeclaration", - "scope": 1501, + "scope": 1516, "src": "1518:20:11", "stateVariable": false, "storageLocation": "default", @@ -19741,7 +19978,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1479, + "id": 1494, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1518:7:11", @@ -19754,17 +19991,17 @@ "visibility": "internal" } ], - "id": 1491, + "id": 1506, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1489, + "id": 1504, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1476, + "referencedDeclaration": 1491, "src": "1585:5:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -19787,14 +20024,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1484, + "id": 1499, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1540, + "referencedDeclaration": 1555, "src": "1565:4:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$1502", + "typeIdentifier": "t_contract$_SafeERC20_$1517", "typeString": "library SafeERC20" } } @@ -19802,11 +20039,11 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_SafeERC20_$1502", + "typeIdentifier": "t_contract$_SafeERC20_$1517", "typeString": "library SafeERC20" } ], - "id": 1483, + "id": 1498, "isConstant": false, "isLValue": false, "isPure": true, @@ -19819,7 +20056,7 @@ }, "typeName": "address" }, - "id": 1485, + "id": 1500, "isConstant": false, "isLValue": false, "isPure": false, @@ -19835,11 +20072,11 @@ }, { "argumentTypes": null, - "id": 1486, + "id": 1501, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1474, + "referencedDeclaration": 1489, "src": "1572:7:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -19860,32 +20097,32 @@ ], "expression": { "argumentTypes": null, - "id": 1481, + "id": 1496, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1472, + "referencedDeclaration": 1487, "src": "1541:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } }, - "id": 1482, + "id": 1497, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "allowance", "nodeType": "MemberAccess", - "referencedDeclaration": 1312, + "referencedDeclaration": 1327, "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": 1487, + "id": 1502, "isConstant": false, "isLValue": false, "isPure": false, @@ -19899,21 +20136,21 @@ "typeString": "uint256" } }, - "id": 1488, + "id": 1503, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sub", "nodeType": "MemberAccess", - "referencedDeclaration": 1244, + "referencedDeclaration": 1259, "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": 1490, + "id": 1505, "isConstant": false, "isLValue": false, "isPure": false, @@ -19939,11 +20176,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1495, + "id": 1510, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1474, + "referencedDeclaration": 1489, "src": "1619:7:11", "typeDescriptions": { "typeIdentifier": "t_address", @@ -19952,11 +20189,11 @@ }, { "argumentTypes": null, - "id": 1496, + "id": 1511, "name": "newAllowance", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1480, + "referencedDeclaration": 1495, "src": "1628:12:11", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -19977,32 +20214,32 @@ ], "expression": { "argumentTypes": null, - "id": 1493, + "id": 1508, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1472, + "referencedDeclaration": 1487, "src": "1605:5:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } }, - "id": 1494, + "id": 1509, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "approve", "nodeType": "MemberAccess", - "referencedDeclaration": 1330, + "referencedDeclaration": 1345, "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": 1497, + "id": 1512, "isConstant": false, "isLValue": false, "isPure": false, @@ -20024,21 +20261,21 @@ "typeString": "bool" } ], - "id": 1492, + "id": 1507, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1520, - 1521 + 1535, + 1536 ], - "referencedDeclaration": 1520, + "referencedDeclaration": 1535, "src": "1597:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1498, + "id": 1513, "isConstant": false, "isLValue": false, "isPure": false, @@ -20052,14 +20289,14 @@ "typeString": "tuple()" } }, - "id": 1499, + "id": 1514, "nodeType": "ExpressionStatement", "src": "1597:45:11" } ] }, "documentation": null, - "id": 1501, + "id": 1516, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -20067,31 +20304,31 @@ "name": "safeDecreaseAllowance", "nodeType": "FunctionDefinition", "parameters": { - "id": 1477, + "id": 1492, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1472, + "id": 1487, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1501, + "scope": 1516, "src": "1440:12:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" }, "typeName": { "contractScope": null, - "id": 1471, + "id": 1486, "name": "IERC20", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1358, + "referencedDeclaration": 1373, "src": "1440:6:11", "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$1358", + "typeIdentifier": "t_contract$_IERC20_$1373", "typeString": "contract IERC20" } }, @@ -20100,10 +20337,10 @@ }, { "constant": false, - "id": 1474, + "id": 1489, "name": "spender", "nodeType": "VariableDeclaration", - "scope": 1501, + "scope": 1516, "src": "1458:15:11", "stateVariable": false, "storageLocation": "default", @@ -20112,7 +20349,7 @@ "typeString": "address" }, "typeName": { - "id": 1473, + "id": 1488, "name": "address", "nodeType": "ElementaryTypeName", "src": "1458:7:11", @@ -20126,10 +20363,10 @@ }, { "constant": false, - "id": 1476, + "id": 1491, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1501, + "scope": 1516, "src": "1479:13:11", "stateVariable": false, "storageLocation": "default", @@ -20138,7 +20375,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1475, + "id": 1490, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1479:7:11", @@ -20155,19 +20392,19 @@ }, "payable": false, "returnParameters": { - "id": 1478, + "id": 1493, "nodeType": "ParameterList", "parameters": [], "src": "1512:0:11" }, - "scope": 1502, + "scope": 1517, "src": "1404:243:11", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 1503, + "scope": 1518, "src": "353:1296:11" } ], 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 b6225eb89..1b1c9971d 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 @@ -60806040523480156200001157600080fd5b5060405160a080620014c7833981016040908152815160208301519183015160608401516080909401516000805433600160a060020a0319918216811760a060020a60ff02191690925560018054909116600160a060020a0384161790559294919262000087906401000000006200014c810204565b6200009b336401000000006200016a810204565b620000af3364010000000062000185810204565b60008460ff1610158015620000c8575060058460ff1611155b1515620000d457600080fd5b6005805486919060ff191660018381811115620000ed57fe5b0217905550506005805461ff00191661010060ff9590951694909402939093176201000060b060020a03191662010000600160a060020a03938416021790925560068054600160a060020a031916929091169190911790555062000233565b62000167600282640100000000620011be620001a082021704565b50565b62000167600382640100000000620011be620001a082021704565b62000167600482640100000000620011be620001a082021704565b600160a060020a0381161515620001b657600080fd5b620001cb8282640100000000620001fb810204565b15620001d657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a03821615156200021357600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61128480620002436000396000f30060806040526004361061017f5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630c08bf888114610184578063162f986d1461019b5780631777fb4b146101b057806319a74ab3146101d957806321b79d98146101ee578063231d4e2a1461020357806329d10b6e146102245780632e6b684914610245578063302c11ca14610266578063329b1c921461029757806334cdcf26146102ac578063363aa6c7146102cd5780633e6968b6146102e2578063427534a41461030e5780634969ae7014610323578063608d3d3d1461034e57806374be75921461036f57806380258e471461039057806381a24459146103a55780638329138f146103c657806399f4b251146103ed5780639e614ca014610402578063b2a32cd514610417578063be9524941461042c578063c6846ef814610441578063cdfd0f6414610468578063ce41607a1461047d578063d43acc7914610492578063da408679146104a7578063e9d61859146104bc575b600080fd5b34801561019057600080fd5b506101996104d1565b005b3480156101a757600080fd5b506101996104ef565b3480156101bc57600080fd5b506101c561055e565b604080519115158252519081900360200190f35b3480156101e557600080fd5b506101c5610563565b3480156101fa57600080fd5b5061019961059a565b34801561020f57600080fd5b50610199600160a060020a0360043516610630565b34801561023057600080fd5b50610199600160a060020a036004351661071c565b34801561025157600080fd5b50610199600160a060020a0360043516610739565b34801561027257600080fd5b5061027b610756565b60408051600160a060020a039092168252519081900360200190f35b3480156102a357600080fd5b5061027b61076b565b3480156102b857600080fd5b506101c5600160a060020a036004351661077a565b3480156102d957600080fd5b50610199610795565b3480156102ee57600080fd5b506102f7610846565b6040805161ffff9092168252519081900360200190f35b34801561031a57600080fd5b50610199610857565b34801561032f57600080fd5b506103386108c3565b6040805160ff9092168252519081900360200190f35b34801561035a57600080fd5b506101c5600160a060020a03600435166108d7565b34801561037b57600080fd5b50610199600160a060020a03600435166108ea565b34801561039c57600080fd5b50610338610907565b3480156103b157600080fd5b506101c5600160a060020a0360043516610915565b3480156103d257600080fd5b50610199600160a060020a0360043581169060243516610928565b3480156103f957600080fd5b506101996109db565b34801561040e57600080fd5b50610199610c2e565b34801561042357600080fd5b50610199610c9f565b34801561043857600080fd5b50610199610dfd565b34801561044d57600080fd5b50610456610e06565b60408051918252519081900360200190f35b34801561047457600080fd5b50610456610e0c565b34801561048957600080fd5b50610338610e12565b34801561049e57600080fd5b50610199610e35565b3480156104b357600080fd5b50610199610e3e565b3480156104c857600080fd5b50610199610ecf565b6104da336108d7565b15156104e557600080fd5b6104ed610ed8565b565b60005460a060020a900460ff161561050657600080fd5b61050f33610915565b151561051a57600080fd5b600160065460a060020a900460ff16600381111561053457fe5b1461053e57600080fd5b600680546002919060a060020a60ff02191660a060020a835b0217905550565b600190565b6000600160065460a060020a900460ff16600381111561057f57fe5b148015610595575060065460a860020a900460ff165b905090565b60005460a060020a900460ff16156105b157600080fd5b600554620100009004600160a060020a031633146105ce57600080fd5b600160065460a060020a900460ff1660038111156105e857fe5b146105f257600080fd5b60065460a860020a900460ff161561060957600080fd5b6006805475ff000000000000000000000000000000000000000000191660a860020a179055565b610639336108d7565b151561064457600080fd5b600060065460a060020a900460ff16600381111561065e57fe5b1461066857600080fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051610719928492600160a060020a03909116916370a08231916024808201926020929091908290030181600087803b1580156106d457600080fd5b505af11580156106e8573d6000803e3d6000fd5b505050506040513d60208110156106fe57600080fd5b5051600154600160a060020a0316919063ffffffff610f9f16565b50565b61072533610915565b151561073057600080fd5b61071981611057565b610742336108d7565b151561074d57600080fd5b61071981611068565b600554620100009004600160a060020a031690565b600654600160a060020a031690565b600061078d60028363ffffffff61107916565b90505b919050565b60005460a060020a900460ff16156107ac57600080fd5b6107b533610915565b15156107c057600080fd5b600360065460a060020a900460ff1660038111156107da57fe5b14156107e557600080fd5b600680546005805475ffffffffffffffffffffffffffffffffffffffff00001916905560a060020a60ff021916740300000000000000000000000000000000000000001775ff00ffffffffffffffffffffffffffffffffffffffff19169055565b60065460b860020a900461ffff1690565b60005460a060020a900460ff161561086e57600080fd5b61087733610915565b151561088257600080fd5b600260065460a060020a900460ff16600381111561089c57fe5b146108a657600080fd5b600680546001919060a060020a60ff02191660a060020a83610557565b60055460009060ff16600181111561059557fe5b600061078d60038363ffffffff61107916565b6108f33361077a565b15156108fe57600080fd5b610719816110b0565b600554610100900460ff1690565b600061078d60048363ffffffff61107916565b60005460a060020a900460ff161561093f57600080fd5b61094833610915565b151561095357600080fd5b600360065460a060020a900460ff16600381111561096d57fe5b1461097757600080fd5b600680546005805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a039687160217905560a060020a60ff02191660a060020a1773ffffffffffffffffffffffffffffffffffffffff191691909216179055565b60008054819060a060020a900460ff16156109f557600080fd5b6109fe3361077a565b1515610a0957600080fd5b600060055460ff166001811115610a1c57fe5b14610a2657600080fd5b600160065460a060020a900460ff166003811115610a4057fe5b14610a4a57600080fd5b60065460a860020a900460ff161515610a6257600080fd5b60065460b860020a900461ffff161515610ad8576006805478ffff00000000000000000000000000000000000000000000001976ff0000000000000000000000000000000000000000000019909116760100000000000000000000000000000000000000000000171660b860020a179055610ba0565b60068054600161ffff60b860020a8084048216929092018116820278ffff00000000000000000000000000000000000000000000001990931692909217928390559091041661016e1415610ba0576006805478ffff000000000000000000000000000000000000000000000019600160ff760100000000000000000000000000000000000000000000808504821692909201160276ff0000000000000000000000000000000000000000000019909216919091171660b860020a179055600754600290046007555b60075461016d9004915060008211610bb757600080fd5b600554600154610be191600160a060020a039182169162010000909104168463ffffffff610f9f16565b600654600160a060020a031615610c2a57506064600a82020460008111610c0757600080fd5b600654600154610c2a91600160a060020a0391821691168363ffffffff610f9f16565b5050565b60005460a060020a900460ff1615610c4557600080fd5b610c4e336108d7565b1515610c5957600080fd5b600060065460a060020a900460ff166003811115610c7357fe5b1415610c7e57600080fd5b6006805475ffff000000000000000000000000000000000000000019169055565b600080548190819060a060020a900460ff1615610cbb57600080fd5b610cc4336108d7565b1515610ccf57600080fd5b600060065460a060020a900460ff166003811115610ce957fe5b14610cf357600080fd5b600060055460ff166001811115610d0657fe5b148015610d135750600754155b15610de257600554610d2c90610100900460ff166110c1565b92506064600a8402600154604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290519390920486019450600160a060020a0316916370a08231916024808201926020929091908290030181600087803b158015610da057600080fd5b505af1158015610db4573d6000803e3d6000fd5b505050506040513d6020811015610dca57600080fd5b50519050818114610dda57600080fd5b600283046007555b50506006805460a060020a60ff02191660a060020a17905550565b6104ed33611173565b61016d81565b60075490565b600654760100000000000000000000000000000000000000000000900460ff1690565b6104ed33611184565b60005460a060020a900460ff1615610e5557600080fd5b600554620100009004600160a060020a03163314610e7257600080fd5b600160065460a060020a900460ff166003811115610e8c57fe5b14610e9657600080fd5b60065460a860020a900460ff161515610eae57600080fd5b6006805475ff00000000000000000000000000000000000000000019169055565b6104ed33611195565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b158015610f3d57600080fd5b505af1158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b505190506000811115610f9757600054600154610f9791600160a060020a0391821691168363ffffffff610f9f16565b6107196111a6565b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561101b57600080fd5b505af115801561102f573d6000803e3d6000fd5b505050506040513d602081101561104557600080fd5b5051151561105257600080fd5b505050565b61071960048263ffffffff6111be16565b61071960038263ffffffff6111be16565b6000600160a060020a038216151561109057600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61071960028263ffffffff6111be16565b600060ff821615156110de575069152d02c7e14af6800000610790565b8160ff16600114156110fb575069d3c21bcecceda1000000610790565b8160ff166002141561111957506a01a784379d99db42000000610790565b8160ff166003141561113757506a027b46536c66c8e3000000610790565b8160ff166004141561115557506a034f086f3b33b684000000610790565b8160ff166005141561079057506a0422ca8b0a00a425000000610790565b61071960048263ffffffff61120c16565b61071960038263ffffffff61120c16565b61071960028263ffffffff61120c16565b6000805460a060020a60ff02191660a060020a179055565b600160a060020a03811615156111d357600080fd5b6111dd8282611079565b156111e757600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038116151561122157600080fd5b61122b8282611079565b151561123657600080fd5b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a72305820d37bea8cf990d36f43cc5b4af261b636128105f981b5fa7014ca1bf22a0030880029 \ No newline at end of file +60806040523480156200001157600080fd5b5060405160a080620014f7833981016040908152815160208301519183015160608401516080909401516000805433600160a060020a0319918216811760a060020a60ff02191690925560018054909116600160a060020a0384161790559294919262000087906401000000006200018e810204565b6200009b33640100000000620001ac810204565b620000af33640100000000620001c7810204565b60008460ff1610158015620000c8575060058460ff1611155b1515620000d457600080fd5b600160a060020a0383161515620000ea57600080fd5b6000856001811115620000f957fe5b14156200011657600160a060020a03821615156200011657600080fd5b6005805486919060ff1916600183818111156200012f57fe5b0217905550506005805461ff00191661010060ff9590951694909402939093176201000060b060020a03191662010000600160a060020a03938416021790925560068054600160a060020a031916929091169190911790555062000275565b620001a9600282640100000000620011ac620001e282021704565b50565b620001a9600382640100000000620011ac620001e282021704565b620001a9600482640100000000620011ac620001e282021704565b600160a060020a0381161515620001f857600080fd5b6200020d82826401000000006200023d810204565b156200021857600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a03821615156200025557600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61127280620002856000396000f30060806040526004361061017f5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630c08bf888114610184578063162f986d1461019b5780631777fb4b146101b057806319a74ab3146101d957806321b79d98146101ee578063231d4e2a1461020357806329d10b6e146102245780632e6b684914610245578063302c11ca14610266578063329b1c921461029757806334cdcf26146102ac578063363aa6c7146102cd5780633e6968b6146102e2578063427534a41461030e5780634969ae7014610323578063608d3d3d1461034e57806374be75921461036f57806380258e471461039057806381a24459146103a55780638329138f146103c657806399f4b251146103ed5780639e614ca014610402578063b2a32cd514610417578063be9524941461042c578063c6846ef814610441578063cdfd0f6414610468578063ce41607a1461047d578063d43acc7914610492578063da408679146104a7578063e9d61859146104bc575b600080fd5b34801561019057600080fd5b506101996104d1565b005b3480156101a757600080fd5b506101996104ef565b3480156101bc57600080fd5b506101c561055e565b604080519115158252519081900360200190f35b3480156101e557600080fd5b506101c5610563565b3480156101fa57600080fd5b5061019961059a565b34801561020f57600080fd5b50610199600160a060020a0360043516610630565b34801561023057600080fd5b50610199600160a060020a036004351661071c565b34801561025157600080fd5b50610199600160a060020a0360043516610739565b34801561027257600080fd5b5061027b610756565b60408051600160a060020a039092168252519081900360200190f35b3480156102a357600080fd5b5061027b61076b565b3480156102b857600080fd5b506101c5600160a060020a036004351661077a565b3480156102d957600080fd5b50610199610795565b3480156102ee57600080fd5b506102f7610846565b6040805161ffff9092168252519081900360200190f35b34801561031a57600080fd5b50610199610857565b34801561032f57600080fd5b506103386108c3565b6040805160ff9092168252519081900360200190f35b34801561035a57600080fd5b506101c5600160a060020a03600435166108d7565b34801561037b57600080fd5b50610199600160a060020a03600435166108ea565b34801561039c57600080fd5b50610338610907565b3480156103b157600080fd5b506101c5600160a060020a0360043516610915565b3480156103d257600080fd5b50610199600160a060020a0360043581169060243516610928565b3480156103f957600080fd5b506101996109db565b34801561040e57600080fd5b50610199610c1c565b34801561042357600080fd5b50610199610c8d565b34801561043857600080fd5b50610199610deb565b34801561044d57600080fd5b50610456610df4565b60408051918252519081900360200190f35b34801561047457600080fd5b50610456610dfa565b34801561048957600080fd5b50610338610e00565b34801561049e57600080fd5b50610199610e23565b3480156104b357600080fd5b50610199610e2c565b3480156104c857600080fd5b50610199610ebd565b6104da336108d7565b15156104e557600080fd5b6104ed610ec6565b565b60005460a060020a900460ff161561050657600080fd5b61050f33610915565b151561051a57600080fd5b600160065460a060020a900460ff16600381111561053457fe5b1461053e57600080fd5b600680546002919060a060020a60ff02191660a060020a835b0217905550565b600190565b6000600160065460a060020a900460ff16600381111561057f57fe5b148015610595575060065460a860020a900460ff165b905090565b60005460a060020a900460ff16156105b157600080fd5b600554620100009004600160a060020a031633146105ce57600080fd5b600160065460a060020a900460ff1660038111156105e857fe5b146105f257600080fd5b60065460a860020a900460ff161561060957600080fd5b6006805475ff000000000000000000000000000000000000000000191660a860020a179055565b610639336108d7565b151561064457600080fd5b600060065460a060020a900460ff16600381111561065e57fe5b1461066857600080fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051610719928492600160a060020a03909116916370a08231916024808201926020929091908290030181600087803b1580156106d457600080fd5b505af11580156106e8573d6000803e3d6000fd5b505050506040513d60208110156106fe57600080fd5b5051600154600160a060020a0316919063ffffffff610f8d16565b50565b61072533610915565b151561073057600080fd5b61071981611045565b610742336108d7565b151561074d57600080fd5b61071981611056565b600554620100009004600160a060020a031690565b600654600160a060020a031690565b600061078d60028363ffffffff61106716565b90505b919050565b60005460a060020a900460ff16156107ac57600080fd5b6107b533610915565b15156107c057600080fd5b600360065460a060020a900460ff1660038111156107da57fe5b14156107e557600080fd5b600680546005805475ffffffffffffffffffffffffffffffffffffffff00001916905560a060020a60ff021916740300000000000000000000000000000000000000001775ff00ffffffffffffffffffffffffffffffffffffffff19169055565b60065460b860020a900461ffff1690565b60005460a060020a900460ff161561086e57600080fd5b61087733610915565b151561088257600080fd5b600260065460a060020a900460ff16600381111561089c57fe5b146108a657600080fd5b600680546001919060a060020a60ff02191660a060020a83610557565b60055460009060ff16600181111561059557fe5b600061078d60038363ffffffff61106716565b6108f33361077a565b15156108fe57600080fd5b6107198161109e565b600554610100900460ff1690565b600061078d60048363ffffffff61106716565b60005460a060020a900460ff161561093f57600080fd5b61094833610915565b151561095357600080fd5b600360065460a060020a900460ff16600381111561096d57fe5b1461097757600080fd5b600680546005805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a039687160217905560a060020a60ff02191660a060020a1773ffffffffffffffffffffffffffffffffffffffff191691909216179055565b60008054819060a060020a900460ff16156109f557600080fd5b6109fe3361077a565b1515610a0957600080fd5b600060055460ff166001811115610a1c57fe5b14610a2657600080fd5b600160065460a060020a900460ff166003811115610a4057fe5b14610a4a57600080fd5b60065460a860020a900460ff161515610a6257600080fd5b60065460b860020a900461ffff161515610ad8576006805478ffff00000000000000000000000000000000000000000000001976ff0000000000000000000000000000000000000000000019909116760100000000000000000000000000000000000000000000171660b860020a179055610ba0565b60068054600161ffff60b860020a8084048216929092018116820278ffff00000000000000000000000000000000000000000000001990931692909217928390559091041661016e1415610ba0576006805478ffff000000000000000000000000000000000000000000000019600160ff760100000000000000000000000000000000000000000000808504821692909201160276ff0000000000000000000000000000000000000000000019909216919091171660b860020a179055600754600290046007555b505060075461016d90046064600a82020460008211610bbe57600080fd5b60008111610bcb57600080fd5b600554600154610bf591600160a060020a039182169162010000909104168463ffffffff610f8d16565b600654600154610c1891600160a060020a0391821691168363ffffffff610f8d16565b5050565b60005460a060020a900460ff1615610c3357600080fd5b610c3c336108d7565b1515610c4757600080fd5b600060065460a060020a900460ff166003811115610c6157fe5b1415610c6c57600080fd5b6006805475ffff000000000000000000000000000000000000000019169055565b600080548190819060a060020a900460ff1615610ca957600080fd5b610cb2336108d7565b1515610cbd57600080fd5b600060065460a060020a900460ff166003811115610cd757fe5b14610ce157600080fd5b600060055460ff166001811115610cf457fe5b148015610d015750600754155b15610dd057600554610d1a90610100900460ff166110af565b92506064600a8402600154604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290519390920486019450600160a060020a0316916370a08231916024808201926020929091908290030181600087803b158015610d8e57600080fd5b505af1158015610da2573d6000803e3d6000fd5b505050506040513d6020811015610db857600080fd5b50519050818114610dc857600080fd5b600283046007555b50506006805460a060020a60ff02191660a060020a17905550565b6104ed33611161565b61016d81565b60075490565b600654760100000000000000000000000000000000000000000000900460ff1690565b6104ed33611172565b60005460a060020a900460ff1615610e4357600080fd5b600554620100009004600160a060020a03163314610e6057600080fd5b600160065460a060020a900460ff166003811115610e7a57fe5b14610e8457600080fd5b60065460a860020a900460ff161515610e9c57600080fd5b6006805475ff00000000000000000000000000000000000000000019169055565b6104ed33611183565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b158015610f2b57600080fd5b505af1158015610f3f573d6000803e3d6000fd5b505050506040513d6020811015610f5557600080fd5b505190506000811115610f8557600054600154610f8591600160a060020a0391821691168363ffffffff610f8d16565b610719611194565b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561100957600080fd5b505af115801561101d573d6000803e3d6000fd5b505050506040513d602081101561103357600080fd5b5051151561104057600080fd5b505050565b61071960048263ffffffff6111ac16565b61071960038263ffffffff6111ac16565b6000600160a060020a038216151561107e57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61071960028263ffffffff6111ac16565b600060ff821615156110cc575069152d02c7e14af6800000610790565b8160ff16600114156110e9575069d3c21bcecceda1000000610790565b8160ff166002141561110757506a01a784379d99db42000000610790565b8160ff166003141561112557506a027b46536c66c8e3000000610790565b8160ff166004141561114357506a034f086f3b33b684000000610790565b8160ff166005141561079057506a0422ca8b0a00a425000000610790565b61071960048263ffffffff6111fa16565b61071960038263ffffffff6111fa16565b61071960028263ffffffff6111fa16565b6000805460a060020a60ff02191660a060020a179055565b600160a060020a03811615156111c157600080fd5b6111cb8282611067565b156111d557600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038116151561120f57600080fd5b6112198282611067565b151561122457600080fd5b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a723058205f527260d789022d74031e68eb390ff4f3057e6fce4f2adde7c12af38948fde60029 \ 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 c1eec1c76..dd71448e2 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 @@ -407,7 +407,7 @@ "type": "constructor" } ], - "bytecode": "60806040523480156200001157600080fd5b5060405160a080620014c7833981016040908152815160208301519183015160608401516080909401516000805433600160a060020a0319918216811760a060020a60ff02191690925560018054909116600160a060020a0384161790559294919262000087906401000000006200014c810204565b6200009b336401000000006200016a810204565b620000af3364010000000062000185810204565b60008460ff1610158015620000c8575060058460ff1611155b1515620000d457600080fd5b6005805486919060ff191660018381811115620000ed57fe5b0217905550506005805461ff00191661010060ff9590951694909402939093176201000060b060020a03191662010000600160a060020a03938416021790925560068054600160a060020a031916929091169190911790555062000233565b62000167600282640100000000620011be620001a082021704565b50565b62000167600382640100000000620011be620001a082021704565b62000167600482640100000000620011be620001a082021704565b600160a060020a0381161515620001b657600080fd5b620001cb8282640100000000620001fb810204565b15620001d657600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a03821615156200021357600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61128480620002436000396000f30060806040526004361061017f5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630c08bf888114610184578063162f986d1461019b5780631777fb4b146101b057806319a74ab3146101d957806321b79d98146101ee578063231d4e2a1461020357806329d10b6e146102245780632e6b684914610245578063302c11ca14610266578063329b1c921461029757806334cdcf26146102ac578063363aa6c7146102cd5780633e6968b6146102e2578063427534a41461030e5780634969ae7014610323578063608d3d3d1461034e57806374be75921461036f57806380258e471461039057806381a24459146103a55780638329138f146103c657806399f4b251146103ed5780639e614ca014610402578063b2a32cd514610417578063be9524941461042c578063c6846ef814610441578063cdfd0f6414610468578063ce41607a1461047d578063d43acc7914610492578063da408679146104a7578063e9d61859146104bc575b600080fd5b34801561019057600080fd5b506101996104d1565b005b3480156101a757600080fd5b506101996104ef565b3480156101bc57600080fd5b506101c561055e565b604080519115158252519081900360200190f35b3480156101e557600080fd5b506101c5610563565b3480156101fa57600080fd5b5061019961059a565b34801561020f57600080fd5b50610199600160a060020a0360043516610630565b34801561023057600080fd5b50610199600160a060020a036004351661071c565b34801561025157600080fd5b50610199600160a060020a0360043516610739565b34801561027257600080fd5b5061027b610756565b60408051600160a060020a039092168252519081900360200190f35b3480156102a357600080fd5b5061027b61076b565b3480156102b857600080fd5b506101c5600160a060020a036004351661077a565b3480156102d957600080fd5b50610199610795565b3480156102ee57600080fd5b506102f7610846565b6040805161ffff9092168252519081900360200190f35b34801561031a57600080fd5b50610199610857565b34801561032f57600080fd5b506103386108c3565b6040805160ff9092168252519081900360200190f35b34801561035a57600080fd5b506101c5600160a060020a03600435166108d7565b34801561037b57600080fd5b50610199600160a060020a03600435166108ea565b34801561039c57600080fd5b50610338610907565b3480156103b157600080fd5b506101c5600160a060020a0360043516610915565b3480156103d257600080fd5b50610199600160a060020a0360043581169060243516610928565b3480156103f957600080fd5b506101996109db565b34801561040e57600080fd5b50610199610c2e565b34801561042357600080fd5b50610199610c9f565b34801561043857600080fd5b50610199610dfd565b34801561044d57600080fd5b50610456610e06565b60408051918252519081900360200190f35b34801561047457600080fd5b50610456610e0c565b34801561048957600080fd5b50610338610e12565b34801561049e57600080fd5b50610199610e35565b3480156104b357600080fd5b50610199610e3e565b3480156104c857600080fd5b50610199610ecf565b6104da336108d7565b15156104e557600080fd5b6104ed610ed8565b565b60005460a060020a900460ff161561050657600080fd5b61050f33610915565b151561051a57600080fd5b600160065460a060020a900460ff16600381111561053457fe5b1461053e57600080fd5b600680546002919060a060020a60ff02191660a060020a835b0217905550565b600190565b6000600160065460a060020a900460ff16600381111561057f57fe5b148015610595575060065460a860020a900460ff165b905090565b60005460a060020a900460ff16156105b157600080fd5b600554620100009004600160a060020a031633146105ce57600080fd5b600160065460a060020a900460ff1660038111156105e857fe5b146105f257600080fd5b60065460a860020a900460ff161561060957600080fd5b6006805475ff000000000000000000000000000000000000000000191660a860020a179055565b610639336108d7565b151561064457600080fd5b600060065460a060020a900460ff16600381111561065e57fe5b1461066857600080fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051610719928492600160a060020a03909116916370a08231916024808201926020929091908290030181600087803b1580156106d457600080fd5b505af11580156106e8573d6000803e3d6000fd5b505050506040513d60208110156106fe57600080fd5b5051600154600160a060020a0316919063ffffffff610f9f16565b50565b61072533610915565b151561073057600080fd5b61071981611057565b610742336108d7565b151561074d57600080fd5b61071981611068565b600554620100009004600160a060020a031690565b600654600160a060020a031690565b600061078d60028363ffffffff61107916565b90505b919050565b60005460a060020a900460ff16156107ac57600080fd5b6107b533610915565b15156107c057600080fd5b600360065460a060020a900460ff1660038111156107da57fe5b14156107e557600080fd5b600680546005805475ffffffffffffffffffffffffffffffffffffffff00001916905560a060020a60ff021916740300000000000000000000000000000000000000001775ff00ffffffffffffffffffffffffffffffffffffffff19169055565b60065460b860020a900461ffff1690565b60005460a060020a900460ff161561086e57600080fd5b61087733610915565b151561088257600080fd5b600260065460a060020a900460ff16600381111561089c57fe5b146108a657600080fd5b600680546001919060a060020a60ff02191660a060020a83610557565b60055460009060ff16600181111561059557fe5b600061078d60038363ffffffff61107916565b6108f33361077a565b15156108fe57600080fd5b610719816110b0565b600554610100900460ff1690565b600061078d60048363ffffffff61107916565b60005460a060020a900460ff161561093f57600080fd5b61094833610915565b151561095357600080fd5b600360065460a060020a900460ff16600381111561096d57fe5b1461097757600080fd5b600680546005805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a039687160217905560a060020a60ff02191660a060020a1773ffffffffffffffffffffffffffffffffffffffff191691909216179055565b60008054819060a060020a900460ff16156109f557600080fd5b6109fe3361077a565b1515610a0957600080fd5b600060055460ff166001811115610a1c57fe5b14610a2657600080fd5b600160065460a060020a900460ff166003811115610a4057fe5b14610a4a57600080fd5b60065460a860020a900460ff161515610a6257600080fd5b60065460b860020a900461ffff161515610ad8576006805478ffff00000000000000000000000000000000000000000000001976ff0000000000000000000000000000000000000000000019909116760100000000000000000000000000000000000000000000171660b860020a179055610ba0565b60068054600161ffff60b860020a8084048216929092018116820278ffff00000000000000000000000000000000000000000000001990931692909217928390559091041661016e1415610ba0576006805478ffff000000000000000000000000000000000000000000000019600160ff760100000000000000000000000000000000000000000000808504821692909201160276ff0000000000000000000000000000000000000000000019909216919091171660b860020a179055600754600290046007555b60075461016d9004915060008211610bb757600080fd5b600554600154610be191600160a060020a039182169162010000909104168463ffffffff610f9f16565b600654600160a060020a031615610c2a57506064600a82020460008111610c0757600080fd5b600654600154610c2a91600160a060020a0391821691168363ffffffff610f9f16565b5050565b60005460a060020a900460ff1615610c4557600080fd5b610c4e336108d7565b1515610c5957600080fd5b600060065460a060020a900460ff166003811115610c7357fe5b1415610c7e57600080fd5b6006805475ffff000000000000000000000000000000000000000019169055565b600080548190819060a060020a900460ff1615610cbb57600080fd5b610cc4336108d7565b1515610ccf57600080fd5b600060065460a060020a900460ff166003811115610ce957fe5b14610cf357600080fd5b600060055460ff166001811115610d0657fe5b148015610d135750600754155b15610de257600554610d2c90610100900460ff166110c1565b92506064600a8402600154604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290519390920486019450600160a060020a0316916370a08231916024808201926020929091908290030181600087803b158015610da057600080fd5b505af1158015610db4573d6000803e3d6000fd5b505050506040513d6020811015610dca57600080fd5b50519050818114610dda57600080fd5b600283046007555b50506006805460a060020a60ff02191660a060020a17905550565b6104ed33611173565b61016d81565b60075490565b600654760100000000000000000000000000000000000000000000900460ff1690565b6104ed33611184565b60005460a060020a900460ff1615610e5557600080fd5b600554620100009004600160a060020a03163314610e7257600080fd5b600160065460a060020a900460ff166003811115610e8c57fe5b14610e9657600080fd5b60065460a860020a900460ff161515610eae57600080fd5b6006805475ff00000000000000000000000000000000000000000019169055565b6104ed33611195565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b158015610f3d57600080fd5b505af1158015610f51573d6000803e3d6000fd5b505050506040513d6020811015610f6757600080fd5b505190506000811115610f9757600054600154610f9791600160a060020a0391821691168363ffffffff610f9f16565b6107196111a6565b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561101b57600080fd5b505af115801561102f573d6000803e3d6000fd5b505050506040513d602081101561104557600080fd5b5051151561105257600080fd5b505050565b61071960048263ffffffff6111be16565b61071960038263ffffffff6111be16565b6000600160a060020a038216151561109057600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61071960028263ffffffff6111be16565b600060ff821615156110de575069152d02c7e14af6800000610790565b8160ff16600114156110fb575069d3c21bcecceda1000000610790565b8160ff166002141561111957506a01a784379d99db42000000610790565b8160ff166003141561113757506a027b46536c66c8e3000000610790565b8160ff166004141561115557506a034f086f3b33b684000000610790565b8160ff166005141561079057506a0422ca8b0a00a425000000610790565b61071960048263ffffffff61120c16565b61071960038263ffffffff61120c16565b61071960028263ffffffff61120c16565b6000805460a060020a60ff02191660a060020a179055565b600160a060020a03811615156111d357600080fd5b6111dd8282611079565b156111e757600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038116151561122157600080fd5b61122b8282611079565b151561123657600080fd5b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a72305820d37bea8cf990d36f43cc5b4af261b636128105f981b5fa7014ca1bf22a0030880029", + "bytecode": "60806040523480156200001157600080fd5b5060405160a080620014f7833981016040908152815160208301519183015160608401516080909401516000805433600160a060020a0319918216811760a060020a60ff02191690925560018054909116600160a060020a0384161790559294919262000087906401000000006200018e810204565b6200009b33640100000000620001ac810204565b620000af33640100000000620001c7810204565b60008460ff1610158015620000c8575060058460ff1611155b1515620000d457600080fd5b600160a060020a0383161515620000ea57600080fd5b6000856001811115620000f957fe5b14156200011657600160a060020a03821615156200011657600080fd5b6005805486919060ff1916600183818111156200012f57fe5b0217905550506005805461ff00191661010060ff9590951694909402939093176201000060b060020a03191662010000600160a060020a03938416021790925560068054600160a060020a031916929091169190911790555062000275565b620001a9600282640100000000620011ac620001e282021704565b50565b620001a9600382640100000000620011ac620001e282021704565b620001a9600482640100000000620011ac620001e282021704565b600160a060020a0381161515620001f857600080fd5b6200020d82826401000000006200023d810204565b156200021857600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b6000600160a060020a03821615156200025557600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61127280620002856000396000f30060806040526004361061017f5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630c08bf888114610184578063162f986d1461019b5780631777fb4b146101b057806319a74ab3146101d957806321b79d98146101ee578063231d4e2a1461020357806329d10b6e146102245780632e6b684914610245578063302c11ca14610266578063329b1c921461029757806334cdcf26146102ac578063363aa6c7146102cd5780633e6968b6146102e2578063427534a41461030e5780634969ae7014610323578063608d3d3d1461034e57806374be75921461036f57806380258e471461039057806381a24459146103a55780638329138f146103c657806399f4b251146103ed5780639e614ca014610402578063b2a32cd514610417578063be9524941461042c578063c6846ef814610441578063cdfd0f6414610468578063ce41607a1461047d578063d43acc7914610492578063da408679146104a7578063e9d61859146104bc575b600080fd5b34801561019057600080fd5b506101996104d1565b005b3480156101a757600080fd5b506101996104ef565b3480156101bc57600080fd5b506101c561055e565b604080519115158252519081900360200190f35b3480156101e557600080fd5b506101c5610563565b3480156101fa57600080fd5b5061019961059a565b34801561020f57600080fd5b50610199600160a060020a0360043516610630565b34801561023057600080fd5b50610199600160a060020a036004351661071c565b34801561025157600080fd5b50610199600160a060020a0360043516610739565b34801561027257600080fd5b5061027b610756565b60408051600160a060020a039092168252519081900360200190f35b3480156102a357600080fd5b5061027b61076b565b3480156102b857600080fd5b506101c5600160a060020a036004351661077a565b3480156102d957600080fd5b50610199610795565b3480156102ee57600080fd5b506102f7610846565b6040805161ffff9092168252519081900360200190f35b34801561031a57600080fd5b50610199610857565b34801561032f57600080fd5b506103386108c3565b6040805160ff9092168252519081900360200190f35b34801561035a57600080fd5b506101c5600160a060020a03600435166108d7565b34801561037b57600080fd5b50610199600160a060020a03600435166108ea565b34801561039c57600080fd5b50610338610907565b3480156103b157600080fd5b506101c5600160a060020a0360043516610915565b3480156103d257600080fd5b50610199600160a060020a0360043581169060243516610928565b3480156103f957600080fd5b506101996109db565b34801561040e57600080fd5b50610199610c1c565b34801561042357600080fd5b50610199610c8d565b34801561043857600080fd5b50610199610deb565b34801561044d57600080fd5b50610456610df4565b60408051918252519081900360200190f35b34801561047457600080fd5b50610456610dfa565b34801561048957600080fd5b50610338610e00565b34801561049e57600080fd5b50610199610e23565b3480156104b357600080fd5b50610199610e2c565b3480156104c857600080fd5b50610199610ebd565b6104da336108d7565b15156104e557600080fd5b6104ed610ec6565b565b60005460a060020a900460ff161561050657600080fd5b61050f33610915565b151561051a57600080fd5b600160065460a060020a900460ff16600381111561053457fe5b1461053e57600080fd5b600680546002919060a060020a60ff02191660a060020a835b0217905550565b600190565b6000600160065460a060020a900460ff16600381111561057f57fe5b148015610595575060065460a860020a900460ff165b905090565b60005460a060020a900460ff16156105b157600080fd5b600554620100009004600160a060020a031633146105ce57600080fd5b600160065460a060020a900460ff1660038111156105e857fe5b146105f257600080fd5b60065460a860020a900460ff161561060957600080fd5b6006805475ff000000000000000000000000000000000000000000191660a860020a179055565b610639336108d7565b151561064457600080fd5b600060065460a060020a900460ff16600381111561065e57fe5b1461066857600080fd5b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051610719928492600160a060020a03909116916370a08231916024808201926020929091908290030181600087803b1580156106d457600080fd5b505af11580156106e8573d6000803e3d6000fd5b505050506040513d60208110156106fe57600080fd5b5051600154600160a060020a0316919063ffffffff610f8d16565b50565b61072533610915565b151561073057600080fd5b61071981611045565b610742336108d7565b151561074d57600080fd5b61071981611056565b600554620100009004600160a060020a031690565b600654600160a060020a031690565b600061078d60028363ffffffff61106716565b90505b919050565b60005460a060020a900460ff16156107ac57600080fd5b6107b533610915565b15156107c057600080fd5b600360065460a060020a900460ff1660038111156107da57fe5b14156107e557600080fd5b600680546005805475ffffffffffffffffffffffffffffffffffffffff00001916905560a060020a60ff021916740300000000000000000000000000000000000000001775ff00ffffffffffffffffffffffffffffffffffffffff19169055565b60065460b860020a900461ffff1690565b60005460a060020a900460ff161561086e57600080fd5b61087733610915565b151561088257600080fd5b600260065460a060020a900460ff16600381111561089c57fe5b146108a657600080fd5b600680546001919060a060020a60ff02191660a060020a83610557565b60055460009060ff16600181111561059557fe5b600061078d60038363ffffffff61106716565b6108f33361077a565b15156108fe57600080fd5b6107198161109e565b600554610100900460ff1690565b600061078d60048363ffffffff61106716565b60005460a060020a900460ff161561093f57600080fd5b61094833610915565b151561095357600080fd5b600360065460a060020a900460ff16600381111561096d57fe5b1461097757600080fd5b600680546005805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a039687160217905560a060020a60ff02191660a060020a1773ffffffffffffffffffffffffffffffffffffffff191691909216179055565b60008054819060a060020a900460ff16156109f557600080fd5b6109fe3361077a565b1515610a0957600080fd5b600060055460ff166001811115610a1c57fe5b14610a2657600080fd5b600160065460a060020a900460ff166003811115610a4057fe5b14610a4a57600080fd5b60065460a860020a900460ff161515610a6257600080fd5b60065460b860020a900461ffff161515610ad8576006805478ffff00000000000000000000000000000000000000000000001976ff0000000000000000000000000000000000000000000019909116760100000000000000000000000000000000000000000000171660b860020a179055610ba0565b60068054600161ffff60b860020a8084048216929092018116820278ffff00000000000000000000000000000000000000000000001990931692909217928390559091041661016e1415610ba0576006805478ffff000000000000000000000000000000000000000000000019600160ff760100000000000000000000000000000000000000000000808504821692909201160276ff0000000000000000000000000000000000000000000019909216919091171660b860020a179055600754600290046007555b505060075461016d90046064600a82020460008211610bbe57600080fd5b60008111610bcb57600080fd5b600554600154610bf591600160a060020a039182169162010000909104168463ffffffff610f8d16565b600654600154610c1891600160a060020a0391821691168363ffffffff610f8d16565b5050565b60005460a060020a900460ff1615610c3357600080fd5b610c3c336108d7565b1515610c4757600080fd5b600060065460a060020a900460ff166003811115610c6157fe5b1415610c6c57600080fd5b6006805475ffff000000000000000000000000000000000000000019169055565b600080548190819060a060020a900460ff1615610ca957600080fd5b610cb2336108d7565b1515610cbd57600080fd5b600060065460a060020a900460ff166003811115610cd757fe5b14610ce157600080fd5b600060055460ff166001811115610cf457fe5b148015610d015750600754155b15610dd057600554610d1a90610100900460ff166110af565b92506064600a8402600154604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290519390920486019450600160a060020a0316916370a08231916024808201926020929091908290030181600087803b158015610d8e57600080fd5b505af1158015610da2573d6000803e3d6000fd5b505050506040513d6020811015610db857600080fd5b50519050818114610dc857600080fd5b600283046007555b50506006805460a060020a60ff02191660a060020a17905550565b6104ed33611161565b61016d81565b60075490565b600654760100000000000000000000000000000000000000000000900460ff1690565b6104ed33611172565b60005460a060020a900460ff1615610e4357600080fd5b600554620100009004600160a060020a03163314610e6057600080fd5b600160065460a060020a900460ff166003811115610e7a57fe5b14610e8457600080fd5b60065460a860020a900460ff161515610e9c57600080fd5b6006805475ff00000000000000000000000000000000000000000019169055565b6104ed33611183565b600154604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b158015610f2b57600080fd5b505af1158015610f3f573d6000803e3d6000fd5b505050506040513d6020811015610f5557600080fd5b505190506000811115610f8557600054600154610f8591600160a060020a0391821691168363ffffffff610f8d16565b610719611194565b82600160a060020a031663a9059cbb83836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561100957600080fd5b505af115801561101d573d6000803e3d6000fd5b505050506040513d602081101561103357600080fd5b5051151561104057600080fd5b505050565b61071960048263ffffffff6111ac16565b61071960038263ffffffff6111ac16565b6000600160a060020a038216151561107e57600080fd5b50600160a060020a03166000908152602091909152604090205460ff1690565b61071960028263ffffffff6111ac16565b600060ff821615156110cc575069152d02c7e14af6800000610790565b8160ff16600114156110e9575069d3c21bcecceda1000000610790565b8160ff166002141561110757506a01a784379d99db42000000610790565b8160ff166003141561112557506a027b46536c66c8e3000000610790565b8160ff166004141561114357506a034f086f3b33b684000000610790565b8160ff166005141561079057506a0422ca8b0a00a425000000610790565b61071960048263ffffffff6111fa16565b61071960038263ffffffff6111fa16565b61071960028263ffffffff6111fa16565b6000805460a060020a60ff02191660a060020a179055565b600160a060020a03811615156111c157600080fd5b6111cb8282611067565b156111d557600080fd5b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600160a060020a038116151561120f57600080fd5b6112198282611067565b151561122457600080fd5b600160a060020a0316600090815260209190915260409020805460ff191690555600a165627a7a723058205f527260d789022d74031e68eb390ff4f3057e6fce4f2adde7c12af38948fde60029", "functionHashes": { "DAYS_PER_YEAR()": "c6846ef8", "activateMiner()": "b2a32cd5", @@ -442,7 +442,7 @@ }, "gasEstimates": { "creation": { - "codeDepositCost": "948000", + "codeDepositCost": "944400", "executionCost": "infinite", "totalCost": "infinite" }, 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 dc87e1df0..56bbafc40 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 @@ -117,16 +117,6 @@ 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); @@ -149,13 +139,9 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests referralAccounts[i] = EthAccountFactory.Create(); await EthNetwork.Instance.RefillAsync(minerAccounts[i]); - // Create the miner... + // Create the miner as "NonPoolBased" so it can be activated... 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 some tokens to the miner so it can be activated... - await pool1.TrasferToMinerAsync(miners[i].ContractAddress); - await pool2.TrasferToMinerAsync(miners[i].ContractAddress); + await miners[i].DeployAsync(1, i, minerAccounts[i].Address, referralAccounts[i].Address, token.ContractAddress); // Activate the miner... await miners[i].ActivateMinerAsync(); @@ -191,5 +177,43 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests Assert.Equal(40.Algo(), balance4); Assert.Equal(50.Algo(), balance5); } + + [Fact] + public async Task TerminateTest() + { + EthNetwork.UseGanacheTestNet(); + + var prefundedAccount = new Account(EthNetwork.Instance.PrefundedPrivateKey); + + var tokenOwnerAccount = EthAccountFactory.Create(); + var coreTeamAccount = EthAccountFactory.Create(); + + 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(); + + // Store the current balance of the token owner... + var tokenOwnerAccountBalance = await token.BalanceOfAsync(tokenOwnerAccount.Address); + + // Create a fees... + var fees1 = new AlgoFees(EthNetwork.Instance.GetWeb3(coreTeamAccount), EthNetwork.Instance.GasPriceProvider); + await fees1.DeployAsync(token.ContractAddress); + + // Transfer some tokens to the fees... + await token.TransferAsync(fees1.ContractAddress, 100.Algo()); + + // Ensure the receiver got the tokens... + Assert.Equal(100.Algo(), await token.BalanceOfAsync(fees1.ContractAddress)); + + // Terminate the contract. + await fees1.TerminateAsync(); + + // Ensure the contract returned all the tokens... + Assert.Equal(0, await token.BalanceOfAsync(fees1.ContractAddress)); + Assert.Equal(100.Algo(), await token.BalanceOfAsync(coreTeamAccount.Address)); + } } } 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 08b622946..223858c99 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 @@ -111,5 +111,45 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests Assert.Equal(expectedMinerBalance, await token.BalanceOfAsync(minerAccount.Address)); Assert.Equal(expectedReferralBalance, await token.BalanceOfAsync(referralAccount.Address)); } + + [Fact] + public async Task TerminateTest() + { + EthNetwork.UseGanacheTestNet(); + + var prefundedAccount = new Account(EthNetwork.Instance.PrefundedPrivateKey); + + var tokenOwnerAccount = EthAccountFactory.Create(); + var coreTeamAccount = EthAccountFactory.Create(); + var minerAccount = EthAccountFactory.Create(); + var referralAccount = EthAccountFactory.Create(); + + 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(); + + // Store the current balance of the token owner... + var tokenOwnerAccountBalance = await token.BalanceOfAsync(tokenOwnerAccount.Address); + + // Create a miner... + var miner1 = new AlgoMiner(EthNetwork.Instance.GetWeb3(coreTeamAccount), EthNetwork.Instance.GasPriceProvider); + await miner1.DeployAsync(0, 2, minerAccount.Address, referralAccount.Address, token.ContractAddress); + + // Transfer some tokens to the miner... + await token.TransferAsync(miner1.ContractAddress, 100.Algo()); + + // Ensure the receiver got the tokens... + Assert.Equal(100.Algo(), await token.BalanceOfAsync(miner1.ContractAddress)); + + // Terminate the contract. + await miner1.TerminateAsync(); + + // Ensure the contract returned all the tokens... + Assert.Equal(0, await token.BalanceOfAsync(miner1.ContractAddress)); + Assert.Equal(100.Algo(), await token.BalanceOfAsync(coreTeamAccount.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 b80e7c0dd..608366c24 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 @@ -123,5 +123,43 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenDistribution.IntegrationTests Assert.Equal(4.MAlgo() * 10 / 100, await token.BalanceOfAsync(miners[4].ContractAddress)); Assert.Equal(5.MAlgo() * 10 / 100, await token.BalanceOfAsync(miners[5].ContractAddress)); } + + [Fact] + public async Task TerminateTest() + { + EthNetwork.UseGanacheTestNet(); + + var prefundedAccount = new Account(EthNetwork.Instance.PrefundedPrivateKey); + + var tokenOwnerAccount = EthAccountFactory.Create(); + var coreTeamAccount = EthAccountFactory.Create(); + + 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(); + + // Store the current balance of the token owner... + var tokenOwnerAccountBalance = await token.BalanceOfAsync(tokenOwnerAccount.Address); + + // Create a pool... + var pool1 = new AlgoPool(EthNetwork.Instance.GetWeb3(coreTeamAccount), EthNetwork.Instance.GasPriceProvider); + await pool1.DeployAsync(0, token.ContractAddress); + + // Transfer some tokens to the pool... + await token.TransferAsync(pool1.ContractAddress, 100.Algo()); + + // Ensure the receiver got the tokens... + Assert.Equal(100.Algo(), await token.BalanceOfAsync(pool1.ContractAddress)); + + // Terminate the contract. + await pool1.TerminateAsync(); + + // Ensure the contract returned all the tokens... + Assert.Equal(0, await token.BalanceOfAsync(pool1.ContractAddress)); + Assert.Equal(100.Algo(), await token.BalanceOfAsync(coreTeamAccount.Address)); + } } } diff --git a/labs/algo-token-playground/README.md b/labs/algo-token-playground/README.md index dc2ff3370..48c75a8b1 100644 --- a/labs/algo-token-playground/README.md +++ b/labs/algo-token-playground/README.md @@ -200,7 +200,7 @@ 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 (uint8: 0 = PoolType, 1 = ReferralPool) +* `poolType`: the type of pool (uint8: 0 = MinerPool, 1 = ReferralPool) * `tokenAddress`: the address of the AlgoToken contract >Example: `deploy-algopool 0 token -n dev_pool` @@ -214,6 +214,14 @@ Transfer tokens from the AlgoPool balance to the AlgoMiner balance. The amount o >Example: `dev_pool.algopool-trasfertominer miner_1` +#### algopool-terminate + +`.algopool-terminate` + +Terminates the contract and return its balance to the creator. + +>Example: `dev_pool.algopool-terminate` + ### AlgoMiner The following commands are supported for the `AlgoMiner` contract: @@ -314,6 +322,14 @@ This operation is executed by the system to request a payment from the AlgoMiner >Example: `miner_1.algominer-mine` +#### algominer-terminate + +`.algominer-terminate` + +Terminates the contract and return its balance to the creator. + +>Example: `miner_1.algominer-terminate` + #### algominer-addsystem `.algominer-addsystem ` @@ -341,6 +357,61 @@ Adds the specified account to the "Supervisor" role. >Example: `miner_1.algominer-addsupervisor 0x862f8938949e4A1aA82Cd427d87E4fc76940e7a1` +### AlgoFees + +The following commands are supported for the `AlgoFees` contract: + +#### deploy-algofees + +`deploy-algofees [-n ]` + +Creates a new instance of the `AlgoFees` contract. +* `tokenAddress`: the address of the AlgoToken contract + +>Example: `deploy-algofees token -n fees1` + +#### algofees-registerminer + +`.algofees-registerminer ` + +Registers a miner with the AlgoFees. +* `minerAddress`: the address of the AlgoMiner contract + +>Example: `fees1.algofees-registerminer miner_0` + +#### algofees-unregisterminer + +`.algofees-unregisterminer ` + +Unregisters a miner from the AlgoFees. +* `minerAddress`: the address of the AlgoMiner contract + +>Example: `fees1.algofees-unregisterminer miner_0` + +#### algofees-mine + +`.algofees-mine` + +This operation is executed by the system to request a payment from the AlgoFees to registered miners. The amount to pay is computed using the rules specified in the "Smart Contracts Requirements / Specifications" document. + +>Example: `fees1.algofees-mine` + +#### algominer-terminate + +`.algofees-terminate` + +Terminates the contract and return its balance to the creator. + +>Example: `algofees.algofees-terminate` + +### System commands + +#### reset + +Resets the current playground instance, removing all aliases created. + +>Example: `reset` + ### Notes * Reserved chars: the following chars are reserved chars and cannot be used in identifiers or strings not enclosed in quotes: "space" ":" "/" "-" "." "," diff --git a/labs/algo-token-playground/algofees-script.txt b/labs/algo-token-playground/algofees-script.txt index 6763e8f6e..732121402 100644 --- a/labs/algo-token-playground/algofees-script.txt +++ b/labs/algo-token-playground/algofees-script.txt @@ -24,22 +24,6 @@ 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/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/AlgoFeesContract/AlgoFeesTerminateCommand.cs b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/AlgoFeesContract/AlgoFeesTerminateCommand.cs new file mode 100644 index 000000000..c5ae0f464 --- /dev/null +++ b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/AlgoFeesContract/AlgoFeesTerminateCommand.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Numerics; +using System.Text; +using System.Threading.Tasks; +using AdvancedAlgos.AlgoToken.AlgoTokenDistribution; +using AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Commands.ContractManagement; +using AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Runtime; +using Nethereum.RPC.Eth.DTOs; +using Nethereum.Web3; + +namespace AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Commands.AlgoFeesContract +{ + public class AlgoFeesTerminateCommand : EthInvokeTransactionalFunctionCommand + { + protected override async Task ExecuteAsync(RuntimeContext context, string contractAddress, Web3 web3) + { + var algoFees = new AlgoFees(contractAddress, web3, context.GasPriceProvider); + + return await algoFees.TerminateAsync(); + } + } +} diff --git a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/AlgoMinerContract/AlgoMinerTerminateCommand.cs b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/AlgoMinerContract/AlgoMinerTerminateCommand.cs new file mode 100644 index 000000000..b1efd4602 --- /dev/null +++ b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/AlgoMinerContract/AlgoMinerTerminateCommand.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Numerics; +using System.Text; +using System.Threading.Tasks; +using AdvancedAlgos.AlgoToken.AlgoTokenDistribution; +using AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Commands.ContractManagement; +using AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Runtime; +using Nethereum.RPC.Eth.DTOs; +using Nethereum.Web3; + +namespace AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Commands.AlgoMinerContract +{ + public class AlgoMinerTerminateCommand : EthInvokeTransactionalFunctionCommand + { + protected override async Task ExecuteAsync(RuntimeContext context, string contractAddress, Web3 web3) + { + var algoMiner = new AlgoMiner(contractAddress, web3, context.GasPriceProvider); + + return await algoMiner.TerminateAsync(); + } + } +} diff --git a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/AlgoPoolContract/AlgoPoolTerminateCommand.cs b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/AlgoPoolContract/AlgoPoolTerminateCommand.cs new file mode 100644 index 000000000..c75efbd37 --- /dev/null +++ b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/AlgoPoolContract/AlgoPoolTerminateCommand.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Numerics; +using System.Text; +using System.Threading.Tasks; +using AdvancedAlgos.AlgoToken.AlgoTokenDistribution; +using AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Commands.ContractManagement; +using AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Runtime; +using Nethereum.RPC.Eth.DTOs; +using Nethereum.Web3; + +namespace AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Commands.AlgoPoolContract +{ + public class AlgoPoolTerminateCommand : EthInvokeTransactionalFunctionCommand + { + protected override async Task ExecuteAsync(RuntimeContext context, string contractAddress, Web3 web3) + { + var algoPool = new AlgoPool(contractAddress, web3, context.GasPriceProvider); + + return await algoPool.TerminateAsync(); + } + } +} diff --git a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/EthNetwork/ListEnvironmentCommand.cs b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/System/ListEnvironmentCommand.cs similarity index 90% rename from labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/EthNetwork/ListEnvironmentCommand.cs rename to labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/System/ListEnvironmentCommand.cs index b269fccfd..c63db111f 100644 --- a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/EthNetwork/ListEnvironmentCommand.cs +++ b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/System/ListEnvironmentCommand.cs @@ -7,7 +7,7 @@ using AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Runtime; using AdvancedAlgos.AlgoToken.Framework.Ethereum; using Nethereum.Util; -namespace AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Commands.EthNetwork +namespace AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Commands.System { public class ListEnvironmentCommand : ICommand { diff --git a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/System/ResetCommand.cs b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/System/ResetCommand.cs new file mode 100644 index 000000000..1c3722ec1 --- /dev/null +++ b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Commands/System/ResetCommand.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Numerics; +using System.Text; +using System.Threading.Tasks; +using AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Runtime; +using AdvancedAlgos.AlgoToken.Framework.Ethereum; +using Nethereum.Util; + +namespace AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Commands.System +{ + public class ResetCommand : ICommand + { + public Task ExecuteAsync(RuntimeContext context) + { + context.Reset(); + + Console.WriteLine("Done."); + + return Task.CompletedTask; + } + } +} diff --git a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Parsers/AlgoFeesParsers.cs b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Parsers/AlgoFeesParsers.cs index 297204777..937a68fa4 100644 --- a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Parsers/AlgoFeesParsers.cs +++ b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Parsers/AlgoFeesParsers.cs @@ -40,6 +40,12 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Parsers { ContractReference = contractReference }).Register(); + + (from contractReference in CommonParsers.Invoke("algofees-terminate") + select new AlgoFeesTerminateCommand + { + ContractReference = contractReference + }).Register(); } } } 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 1b857c43b..582d714a8 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 @@ -93,6 +93,12 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Parsers ContractReference = contractReference, }).Register(); + (from contractReference in CommonParsers.Invoke("algominer-terminate") + select new AlgoMinerTerminateCommand + { + ContractReference = contractReference + }).Register(); + (from contractReference in CommonParsers.Invoke("algominer-addsystem") from account in CommonParsers.StringValue select new AlgoMinerAddSystemCommand 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 487b903ba..30d00ca8c 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 @@ -28,6 +28,12 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Parsers ContractReference = contractReference, MinerAddress = minerAddress }).Register(); + + (from contractReference in CommonParsers.Invoke("algopool-terminate") + select new AlgoPoolTerminateCommand + { + ContractReference = contractReference + }).Register(); } } } diff --git a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Parsers/EthNetworkParsers.cs b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Parsers/EthNetworkParsers.cs index 822ea6f46..3021a0fd9 100644 --- a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Parsers/EthNetworkParsers.cs +++ b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Parsers/EthNetworkParsers.cs @@ -23,10 +23,6 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Parsers { GasPrice = gasPrice }).Register(); - - (from command in CommonParsers.Token("list-env") - select new ListEnvironmentCommand() - ).Register(); } } } diff --git a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Parsers/SystemParsers.cs b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Parsers/SystemParsers.cs new file mode 100644 index 000000000..72f6bfb8c --- /dev/null +++ b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/Parsers/SystemParsers.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Text; +using AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Commands.System; +using Sprache; + +namespace AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Parsers +{ + public static class SystemParsers + { + public static void Register() + { + (from command in CommonParsers.Token("reset") + select new ResetCommand() + ).Register(); + + (from command in CommonParsers.Token("list-env") + select new ListEnvironmentCommand() + ).Register(); + } + } +} diff --git a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/REPL.cs b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/REPL.cs index f1a593477..a4f253be0 100644 --- a/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/REPL.cs +++ b/labs/algo-token-playground/src/AdvancedAlgos.AlgoToken.AlgoTokenPlayground/REPL.cs @@ -20,6 +20,7 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenPlayground static REPL() { + SystemParsers.Register(); EthNetworkParsers.Register(); EthTransactionsParsers.Register(); AccountManagementParsers.Register(); 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 adaf9a5d4..cca9d97a7 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 @@ -12,10 +12,16 @@ namespace AdvancedAlgos.AlgoToken.AlgoTokenPlayground.Runtime public string EthNetworkUrl { get; set; } = LOCAL_NETWORK_URL; public EthAccountDescriptor CurrentAccount { get; set; } - public Dictionary Accounts { get; } = new Dictionary(StringComparer.OrdinalIgnoreCase); - public Dictionary Contracts { get; } = new Dictionary(StringComparer.OrdinalIgnoreCase); + public Dictionary Accounts { get; private set; } = new Dictionary(StringComparer.OrdinalIgnoreCase); + public Dictionary Contracts { get; private set; } = new Dictionary(StringComparer.OrdinalIgnoreCase); public StaticGasPriceProvider GasPriceProvider { get; } = new StaticGasPriceProvider(); + public void Reset() + { + Accounts = new Dictionary(StringComparer.OrdinalIgnoreCase); + Contracts = new Dictionary(StringComparer.OrdinalIgnoreCase); + } + public string ResolveAccountReference(string reference) { if (string.IsNullOrWhiteSpace(reference) || string.Equals(reference, "0x0", StringComparison.OrdinalIgnoreCase)) return "0x0"; diff --git a/labs/algo-token-playground/terminate-script.txt b/labs/algo-token-playground/terminate-script.txt new file mode 100644 index 000000000..83d82ea65 --- /dev/null +++ b/labs/algo-token-playground/terminate-script.txt @@ -0,0 +1,29 @@ +new-account -n miner_1_account +new-account -n ref_1_account +import-account 0936af475d2701538aad321f87e0a51f2b297634653393e8cab7290a674009a5 -n prefunded + +deploy-algotoken -n token + +token.algotoken-balanceof prefunded +deploy-algopool 0 token -n dev_pool +token.algotoken-transfer dev_pool 100m +token.algotoken-balanceof dev_pool +dev_pool.algopool-terminate +token.algotoken-balanceof dev_pool +token.algotoken-balanceof prefunded + +token.algotoken-balanceof prefunded +deploy-algofees token -n fees1 +token.algotoken-transfer fees1 100m +token.algotoken-balanceof fees1 +fees1.algofees-terminate +token.algotoken-balanceof fees1 +token.algotoken-balanceof prefunded + +token.algotoken-balanceof prefunded +deploy-algominer 0 2 miner_1_account ref_1_account token -n miner_1 +token.algotoken-transfer miner_1 100m +token.algotoken-balanceof miner_1 +miner_1.algominer-terminate +token.algotoken-balanceof miner_1 +token.algotoken-balanceof prefunded